day3_commit2_qr_mini_fix
This commit is contained in:
parent
cb5fbdd634
commit
e83718bce0
@ -33,6 +33,7 @@
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
</application>
|
||||
|
||||
</manifest>
|
@ -2,7 +2,9 @@ package ru.myitschool.work.ui.main
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import android.widget.Toast
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.setFragmentResultListener
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import kotlinx.coroutines.launch
|
||||
@ -14,6 +16,7 @@ import ru.myitschool.work.databinding.FragmentMainBinding
|
||||
import ru.myitschool.work.SessionManager
|
||||
import retrofit2.Retrofit
|
||||
import retrofit2.converter.gson.GsonConverterFactory
|
||||
import ru.myitschool.work.ui.qr.scan.QrScanDestination
|
||||
|
||||
class MainFragment : Fragment(R.layout.fragment_main) {
|
||||
private var _binding: FragmentMainBinding? = null
|
||||
@ -36,6 +39,23 @@ class MainFragment : Fragment(R.layout.fragment_main) {
|
||||
|
||||
setupUI()
|
||||
fetchUserInfo()
|
||||
|
||||
// Проверяем, есть ли результат QR
|
||||
checkQrResult()
|
||||
}
|
||||
|
||||
private fun checkQrResult() {
|
||||
// Слушаем результат QR сканирования
|
||||
setFragmentResultListener(QrScanDestination.REQUEST_KEY) { _, bundle ->
|
||||
val qrData = QrScanDestination.getDataIfExist(bundle)
|
||||
if (qrData != null) {
|
||||
// Если данные QR есть, переходим на экран с результатом
|
||||
val resultBundle = QrScanDestination.packToBundle(qrData)
|
||||
findNavController().navigate(R.id.qrResultFragment, resultBundle)
|
||||
} else {
|
||||
Toast.makeText(requireContext(), "QR данные не найдены", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun setupUI() {
|
||||
@ -44,7 +64,7 @@ class MainFragment : Fragment(R.layout.fragment_main) {
|
||||
}
|
||||
|
||||
binding.scanQrCode?.setOnClickListener {
|
||||
// Здесь вы можете использовать навигацию для перехода к экрану сканирования QR-кода
|
||||
// Переход к экрану сканирования QR-кода
|
||||
findNavController().navigate(R.id.qrScanFragment) // Убедитесь, что у вас есть правильный ID для навигации
|
||||
}
|
||||
}
|
||||
|
@ -44,4 +44,4 @@ class RootActivity : AppCompatActivity() {
|
||||
}
|
||||
return popBackResult || super.onSupportNavigateUp()
|
||||
}
|
||||
}
|
||||
}
|
@ -5,6 +5,7 @@ import androidx.navigation.fragment.findNavController
|
||||
import ru.myitschool.work.SessionManager
|
||||
import ru.myitschool.work.api.OpenDoorRequest
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
@ -42,7 +43,10 @@ class QrResult : Fragment(R.layout.fragment_qr_scan_result) {
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
// Получаем данные из аргументов
|
||||
val qrData = QrScanDestination.getDataIfExist(requireArguments())
|
||||
Log.d("QrResult", "QR Data: $qrData") // Логируем полученные данные
|
||||
|
||||
if (qrData != null) {
|
||||
binding.result.text = "Результат сканирования: $qrData" // Отображаем результат сканирования
|
||||
sendRequestToServer(qrData)
|
||||
@ -60,18 +64,19 @@ class QrResult : Fragment(R.layout.fragment_qr_scan_result) {
|
||||
try {
|
||||
val login = SessionManager.userLogin
|
||||
if (login != null) {
|
||||
val openDoorRequest = OpenDoorRequest(login, qrData.toLong()) // Преобразуем qrData в Long, если это необходимо
|
||||
val openDoorRequest = OpenDoorRequest(login, qrData.toLong()) // Преобразуем qrData в Long
|
||||
val response = apiService.openDoor(openDoorRequest)
|
||||
if (response.isSuccessful) {
|
||||
binding.result.text = "Успешно/Success"
|
||||
} else {
|
||||
binding.result.text = "Что-то пошло не так/Something wrong"
|
||||
binding.result.text = "Что-то пошло не так/Something went wrong: ${response.message()}"
|
||||
}
|
||||
} else {
|
||||
binding.result.text = "Пользователь не авторизован/Unauthorized user"
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
binding.result.text = "Что-то пошло не так/Something wrong"
|
||||
binding.result.text = "Что-то пошло не так/Something went wrong: ${e.message}"
|
||||
Log.e("QrResult", "Error sending request to server", e)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user