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