qr-basic-admin-scrollview(mne ploho) stable version

This commit is contained in:
shipovnikaaa 2025-02-20 12:27:36 +03:00
parent 5129a8b3f2
commit 3a791255e5
6 changed files with 138 additions and 53 deletions

View File

@ -42,7 +42,7 @@ class MainFragment: Fragment(R.layout.fragment_main) {
}
}
binding.scan.setOnClickListener {
findNavController().navigate(QrResultDestination(user))
findNavController().navigate(QrResultDestination(user, password))
findNavController().navigate(QrScanDestination)
}
binding.admin.setOnClickListener {

View File

@ -3,4 +3,4 @@ package ru.myitschool.work.ui.qr.result
import kotlinx.serialization.Serializable
@Serializable
data class QrResultDestination(val username: String)
data class QrResultDestination(val username: String, val password: String)

View File

@ -24,16 +24,28 @@ class QrResultFragment: Fragment(R.layout.fragment_qr_result) {
super.onViewCreated(view, savedInstanceState)
_binding = FragmentQrResultBinding.bind(view)
subscribe()
binding.close.setOnClickListener { findNavController().navigateUp() }
findNavController().currentBackStackEntry?.savedStateHandle?.let {
val data = it.get<Bundle>(QrScanDestination.REQUEST_KEY)?.getString("key_qr")
val username = findNavController().currentBackStackEntry?.toRoute<MainDestination>()?.username
username?.let { user ->
val password =
findNavController().currentBackStackEntry?.toRoute<MainDestination>()?.password
password?.let { password ->
binding.close.setOnClickListener {
findNavController().navigate(
MainDestination(
user,
password
)
)
}
viewModel.tryParseData(user, data)
}
}
}
}
private fun subscribe() {
viewModel.result.collectWhenStarted(this) { data ->

View File

@ -20,6 +20,8 @@ import com.google.mlkit.vision.barcode.BarcodeScanning
import com.google.mlkit.vision.barcode.common.Barcode
import ru.myitschool.work.R
import ru.myitschool.work.databinding.FragmentQrScanBinding
import ru.myitschool.work.ui.admin.AdminDestination
import ru.myitschool.work.ui.qr.result.QrResultDestination
import ru.myitschool.work.utils.collectWhenStarted
import ru.myitschool.work.utils.visibleOrGone
@ -118,6 +120,12 @@ class QrScanFragment : Fragment(R.layout.fragment_qr_scan) {
?: requireActivity().onBackPressedDispatcher.onBackPressed()
}
private fun goBack_for_cancel(user:String, password:String) {
// findNavControllerOrNull()?.popBackStack()
// ?: requireActivity().onBackPressedDispatcher.onBackPressed()
findNavController().navigate(QrResultDestination(user, password))
}
private fun sendResult(bundle: Bundle) {
setFragmentResult(
QrScanDestination.REQUEST_KEY,

View File

@ -15,52 +15,18 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.17000002" />
<ImageView
android:id="@+id/photo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/fullname"
tools:srcCompat="@tools:sample/avatars" />
<TextView
android:id="@+id/position"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:textSize="20sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/photo" />
<TextView
android:id="@+id/lastEntry"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:textSize="20sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/position" />
<Button
android:id="@+id/logout"
android:layout_width="256dp"
android:layout_height="48dp"
android:text="LOGOUT"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/lastEntry" />
app:layout_constraintVertical_bias="0.076" />
<Button
android:id="@+id/refresh"
android:layout_width="256dp"
android:layout_height="48dp"
android:layout_margin="10sp"
android:layout_marginTop="4dp"
android:background="@drawable/entry"
android:text="Refresh"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.503"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/logout" />
@ -68,45 +34,143 @@
android:id="@+id/scan"
android:layout_width="256dp"
android:layout_height="48dp"
android:layout_margin="10sp"
android:layout_marginTop="16dp"
android:layout_weight="10"
android:background="@drawable/entry"
android:text="Scan QR"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.503"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/refresh" />
<TextView
android:id="@+id/error"
android:id="@+id/position"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10sp"
android:layout_marginTop="8dp"
android:text="TextView"
android:textSize="20sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.501"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/photo" />
<Button
android:id="@+id/logout"
android:layout_width="256dp"
android:layout_height="48dp"
android:text="TextView"
android:textAlignment="center"
android:layout_margin="10sp"
android:layout_marginTop="4dp"
android:background="@drawable/entry"
android:text="LOGOUT"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.503"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/scan" />
app:layout_constraintTop_toBottomOf="@+id/lastEntry" />
<TextView
android:id="@+id/lastEntry"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10sp"
android:layout_marginTop="8dp"
android:text="TextView"
android:textSize="20sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.501"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/position" />
<Button
android:id="@+id/admin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10sp"
android:background="@drawable/entry"
android:text="admin"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="@+id/photo"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.666"
app:layout_constraintHorizontal_bias="0.603"
app:layout_constraintStart_toEndOf="@+id/photo"
app:layout_constraintTop_toBottomOf="@+id/fullname"
app:layout_constraintVertical_bias="0.489"
tools:visibility="visible" />
<TextView
android:id="@+id/error"
android:layout_width="258dp"
android:layout_height="33dp"
android:layout_margin="10sp"
android:layout_marginTop="15dp"
android:text="TextView"
android:textAlignment="center"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.503"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/scan" />
<TextView
android:id="@+id/textView"
android:layout_width="251dp"
android:layout_height="58dp"
android:layout_marginTop="28dp"
android:background="@drawable/entry"
android:paddingTop="15sp"
android:paddingBottom="15sp"
android:text="Ваши проходы"
android:textAlignment="center"
android:textColor="#FFFFFF"
android:textColorLink="#FFFFFF"
android:textSize="24sp"
android:textStyle="normal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/error" />
<ImageView
android:id="@+id/photo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10sp"
android:layout_marginTop="8dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.501"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/fullname"
tools:srcCompat="@tools:sample/avatars" />
<ScrollView
android:layout_width="409dp"
android:layout_height="337dp"
app:layout_constraintTop_toBottomOf="@+id/error"
tools:layout_editor_absoluteX="1dp">
android:layout_marginTop="20dp"
android:background="@color/app_background"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView"
app:layout_constraintVertical_bias="1.0"
tools:context=".MainActivity" android:layout_height="0sp" android:layout_width="0sp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" />
android:layout_marginTop="10sp"
android:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="240dp"
android:nestedScrollingEnabled="false"
android:overScrollMode="never" />
</LinearLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -7,4 +7,5 @@
<color name="teal_700">#FF018786</color>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
<color name="app_background">#B8DEDEDE</color>
</resources>