Qr scan fix; VisitType
This commit is contained in:
parent
5d31ab0c42
commit
3d9d7fa508
82
.kotlin/errors/errors-1740053542742.log
Normal file
82
.kotlin/errors/errors-1740053542742.log
Normal file
@ -0,0 +1,82 @@
|
||||
kotlin version: 2.1.10
|
||||
error message: Daemon compilation failed: null
|
||||
java.lang.Exception
|
||||
at org.jetbrains.kotlin.daemon.common.CompileService$CallResult$Error.get(CompileService.kt:69)
|
||||
at org.jetbrains.kotlin.daemon.common.CompileService$CallResult$Error.get(CompileService.kt:65)
|
||||
at org.jetbrains.kotlin.compilerRunner.GradleKotlinCompilerWork.compileWithDaemon(GradleKotlinCompilerWork.kt:240)
|
||||
at org.jetbrains.kotlin.compilerRunner.GradleKotlinCompilerWork.compileWithDaemonOrFallbackImpl(GradleKotlinCompilerWork.kt:159)
|
||||
at org.jetbrains.kotlin.compilerRunner.GradleKotlinCompilerWork.run(GradleKotlinCompilerWork.kt:111)
|
||||
at org.jetbrains.kotlin.compilerRunner.GradleCompilerRunnerWithWorkers$GradleKotlinCompilerWorkAction.execute(GradleCompilerRunnerWithWorkers.kt:76)
|
||||
at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63)
|
||||
at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:66)
|
||||
at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:62)
|
||||
at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:100)
|
||||
at org.gradle.workers.internal.NoIsolationWorkerFactory$1.lambda$execute$0(NoIsolationWorkerFactory.java:62)
|
||||
at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:44)
|
||||
at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:41)
|
||||
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)
|
||||
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
|
||||
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
|
||||
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
|
||||
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)
|
||||
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
|
||||
at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
|
||||
at org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41)
|
||||
at org.gradle.workers.internal.NoIsolationWorkerFactory$1.execute(NoIsolationWorkerFactory.java:59)
|
||||
at org.gradle.workers.internal.DefaultWorkerExecutor.lambda$submitWork$0(DefaultWorkerExecutor.java:174)
|
||||
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
|
||||
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:194)
|
||||
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.access$700(DefaultConditionalExecutionQueue.java:127)
|
||||
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner$1.run(DefaultConditionalExecutionQueue.java:169)
|
||||
at org.gradle.internal.Factories$1.create(Factories.java:31)
|
||||
at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:263)
|
||||
at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:127)
|
||||
at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:132)
|
||||
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:164)
|
||||
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:133)
|
||||
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
|
||||
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
|
||||
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
|
||||
at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:48)
|
||||
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
|
||||
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
|
||||
at java.base/java.lang.Thread.run(Unknown Source)
|
||||
Caused by: java.nio.file.DirectoryNotEmptyException: C:\Users\User\AppData\Local\Temp\kotlin-backups9385457661688728923
|
||||
at java.base/sun.nio.fs.WindowsFileSystemProvider.implDelete(Unknown Source)
|
||||
at java.base/sun.nio.fs.AbstractFileSystemProvider.delete(Unknown Source)
|
||||
at java.base/java.nio.file.Files.delete(Unknown Source)
|
||||
at org.jetbrains.kotlin.incremental.RecoverableCompilationTransaction$cleanupStash$2$1$1.invoke(CompilationTransaction.kt:244)
|
||||
at org.jetbrains.kotlin.incremental.RecoverableCompilationTransaction$cleanupStash$2$1$1.invoke(CompilationTransaction.kt:244)
|
||||
at org.jetbrains.kotlin.incremental.RecoverableCompilationTransaction.cleanupStash$lambda$11$lambda$10$lambda$9(CompilationTransaction.kt:244)
|
||||
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source)
|
||||
at java.base/java.util.ArrayList.forEach(Unknown Source)
|
||||
at java.base/java.util.stream.SortedOps$RefSortingSink.end(Unknown Source)
|
||||
at java.base/java.util.stream.Sink$ChainedReference.end(Unknown Source)
|
||||
at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
|
||||
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
|
||||
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source)
|
||||
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source)
|
||||
at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
|
||||
at java.base/java.util.stream.ReferencePipeline.forEach(Unknown Source)
|
||||
at org.jetbrains.kotlin.incremental.RecoverableCompilationTransaction.cleanupStash(CompilationTransaction.kt:244)
|
||||
at org.jetbrains.kotlin.incremental.RecoverableCompilationTransaction.close(CompilationTransaction.kt:254)
|
||||
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.tryCompileIncrementally(IncrementalCompilerRunner.kt:747)
|
||||
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compile(IncrementalCompilerRunner.kt:120)
|
||||
at org.jetbrains.kotlin.daemon.CompileServiceImplBase.execIncrementalCompiler(CompileServiceImpl.kt:683)
|
||||
at org.jetbrains.kotlin.daemon.CompileServiceImplBase.access$execIncrementalCompiler(CompileServiceImpl.kt:91)
|
||||
at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1811)
|
||||
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source)
|
||||
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
|
||||
at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
|
||||
at java.rmi/sun.rmi.transport.Transport$1.run(Unknown Source)
|
||||
at java.rmi/sun.rmi.transport.Transport$1.run(Unknown Source)
|
||||
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
|
||||
at java.rmi/sun.rmi.transport.Transport.serviceCall(Unknown Source)
|
||||
at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
|
||||
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
|
||||
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(Unknown Source)
|
||||
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
|
||||
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
|
||||
... 3 more
|
||||
|
||||
|
@ -25,7 +25,7 @@ class GateRepository {
|
||||
append(HttpHeaders.Authorization, "Bearer $token")
|
||||
}
|
||||
contentType(ContentType.Application.Json)
|
||||
setBody("""{ "code": $code }""")
|
||||
setBody("""{ "code": $code, "visitType": "APP" }""")
|
||||
}
|
||||
if (result.status != HttpStatusCode.OK) {
|
||||
error("Status ${result.status}: ${result.body<String>()}")
|
||||
|
@ -5,14 +5,13 @@ import android.view.ViewGroup
|
||||
import androidx.paging.PagingDataAdapter
|
||||
import androidx.recyclerview.widget.DiffUtil
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.displaynone.acss.R
|
||||
import com.displaynone.acss.components.acs.models.visit.repository.dto.VisitDto
|
||||
import com.displaynone.acss.components.acs.models.visit.repository.dto.VisitType
|
||||
import com.displaynone.acss.databinding.ItemScannerViewBinding
|
||||
import java.text.SimpleDateFormat
|
||||
|
||||
import java.util.Locale
|
||||
|
||||
class VisitAdapter: PagingDataAdapter<VisitDto, VisitAdapter.ViewHolder>(VisitDiff) {
|
||||
class VisitAdapter : PagingDataAdapter<VisitDto, VisitAdapter.ViewHolder>(VisitDiff) {
|
||||
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
|
||||
return ViewHolder(
|
||||
@ -25,26 +24,27 @@ class VisitAdapter: PagingDataAdapter<VisitDto, VisitAdapter.ViewHolder>(VisitDi
|
||||
}
|
||||
|
||||
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
||||
holder.bind(getItem(position) ?:
|
||||
VisitDto(
|
||||
id = -1,
|
||||
userId = -1,
|
||||
gateId = -1,
|
||||
createdAt = "Loading...",
|
||||
)
|
||||
holder.bind(
|
||||
getItem(position) ?: VisitDto(
|
||||
id = -1,
|
||||
userId = -1,
|
||||
gateId = -1,
|
||||
createdAt = "Loading...",
|
||||
visitType = VisitType.APP
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
class ViewHolder(
|
||||
private val binding: ItemScannerViewBinding
|
||||
): RecyclerView.ViewHolder(binding.root) {
|
||||
fun bind(item: VisitDto){
|
||||
) : RecyclerView.ViewHolder(binding.root) {
|
||||
fun bind(item: VisitDto) {
|
||||
binding.scanTime.text = "${formatDate(item.createdAt)}"
|
||||
binding.scannerId.text = "Id - " + item.gateId.toString()
|
||||
binding.scannerId.text = "Id турникета - " + item.gateId.toString()
|
||||
binding.passType.text = "Тип прохода - " + item.visitType.toString()
|
||||
}
|
||||
|
||||
private fun formatDate(inputDate: String): String {
|
||||
private fun formatDate(inputDate: String): String {
|
||||
val inputFormat = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.getDefault())
|
||||
val outputFormat = SimpleDateFormat("d MMMM yyyy 'в' HH:mm", Locale.getDefault())
|
||||
|
||||
@ -53,9 +53,10 @@ class VisitAdapter: PagingDataAdapter<VisitDto, VisitAdapter.ViewHolder>(VisitDi
|
||||
return outputFormat.format(date)
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
return TODO("")
|
||||
}}
|
||||
}
|
||||
}
|
||||
|
||||
object VisitDiff : DiffUtil.ItemCallback<VisitDto>() {
|
||||
override fun areItemsTheSame(oldItem: VisitDto, newItem: VisitDto): Boolean {
|
||||
|
@ -13,5 +13,6 @@ data class VisitDto(
|
||||
val gateId: Long,
|
||||
@SerialName("createdAt")
|
||||
val createdAt: String,
|
||||
) {
|
||||
}
|
||||
@SerialName("visitType")
|
||||
val visitType: VisitType
|
||||
)
|
@ -0,0 +1,6 @@
|
||||
package com.displaynone.acss.components.acs.models.visit.repository.dto;
|
||||
|
||||
public enum VisitType {
|
||||
APP,
|
||||
CARD
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
package com.displaynone.acss.config
|
||||
|
||||
object Constants {
|
||||
const val serverUrl = "http://192.168.56.1:8086"
|
||||
const val serverUrl = "http://192.168.136.38:8086"
|
||||
}
|
||||
|
@ -6,6 +6,7 @@ import android.net.NetworkCapabilities
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import androidx.activity.OnBackPressedCallback
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.navigation.NavController
|
||||
@ -13,6 +14,7 @@ import androidx.navigation.fragment.findNavController
|
||||
import com.displaynone.acss.R
|
||||
import com.displaynone.acss.components.auth.models.user.UserServiceST
|
||||
import com.displaynone.acss.databinding.FragmentInitBinding
|
||||
import com.displaynone.acss.ui.scan.QrScanDestination
|
||||
import com.displaynone.acss.util.collectWithLifecycle
|
||||
import com.displaynone.acss.util.navigateTo
|
||||
|
||||
@ -22,7 +24,6 @@ class InitFragment : Fragment(R.layout.fragment_init) {
|
||||
|
||||
private val viewModel: InitFragmentViewModel by viewModels()
|
||||
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
_binding = FragmentInitBinding.bind(view)
|
||||
@ -34,6 +35,29 @@ class InitFragment : Fragment(R.layout.fragment_init) {
|
||||
}
|
||||
|
||||
pingServer()
|
||||
waitForQRScanResult()
|
||||
}
|
||||
|
||||
private fun waitForQRScanResult() {
|
||||
Log.d("1111", "122ee")
|
||||
requireActivity().onBackPressedDispatcher.addCallback(
|
||||
viewLifecycleOwner,
|
||||
object : OnBackPressedCallback(true) {
|
||||
override fun handleOnBackPressed() {
|
||||
|
||||
}
|
||||
})
|
||||
|
||||
findNavController().currentBackStackEntry?.savedStateHandle?.getLiveData<Bundle>(
|
||||
QrScanDestination.REQUEST_KEY
|
||||
)?.observe(viewLifecycleOwner) { bundle ->
|
||||
val qrCode = bundle.getString("key_qr")
|
||||
|
||||
if (!qrCode.isNullOrEmpty()) view?.let {
|
||||
val newBundle = Bundle().apply { putString("qrCode", qrCode) }
|
||||
navigateTo(it, R.id.action_nav_init_to_qr_result, newBundle)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun pingServer() {
|
||||
|
@ -54,7 +54,7 @@ class ProfileFragment : Fragment(R.layout.fragment_profile) {
|
||||
if (getIsMe()) {
|
||||
refreshData()
|
||||
viewModel.visitListState.collectWithLifecycle(this) { data -> adapter.submitData(data) }
|
||||
waitForQRScanResult()
|
||||
// waitForQRScanResult()
|
||||
} else {
|
||||
showData(getUserDto()!!)
|
||||
Log.d("ProfileFragment", "set login")
|
||||
@ -139,25 +139,28 @@ class ProfileFragment : Fragment(R.layout.fragment_profile) {
|
||||
return arguments?.getBoolean("isMe", true) ?: true
|
||||
}
|
||||
|
||||
private fun waitForQRScanResult() {
|
||||
requireActivity().onBackPressedDispatcher.addCallback(
|
||||
viewLifecycleOwner,
|
||||
object : OnBackPressedCallback(true) {
|
||||
override fun handleOnBackPressed() {
|
||||
|
||||
}
|
||||
})
|
||||
|
||||
findNavController().currentBackStackEntry?.savedStateHandle?.getLiveData<Bundle>(
|
||||
QrScanDestination.REQUEST_KEY
|
||||
)?.observe(viewLifecycleOwner) { bundle ->
|
||||
val qrCode = bundle.getString("key_qr")
|
||||
if (!qrCode.isNullOrEmpty()) view?.let {
|
||||
val newBundle = Bundle().apply { putString("qrCode", qrCode) }
|
||||
navigateTo(it, R.id.action_profileFragment_to_qrResultFragment, newBundle)
|
||||
}
|
||||
}
|
||||
}
|
||||
// private fun waitForQRScanResult() {
|
||||
// Log.d("1111", "122ee")
|
||||
// requireActivity().onBackPressedDispatcher.addCallback(
|
||||
// viewLifecycleOwner,
|
||||
// object : OnBackPressedCallback(true) {
|
||||
// override fun handleOnBackPressed() {
|
||||
//
|
||||
// }
|
||||
// })
|
||||
//
|
||||
// findNavController().currentBackStackEntry?.savedStateHandle?.getLiveData<Bundle>(
|
||||
// QrScanDestination.REQUEST_KEY
|
||||
// )?.observe(viewLifecycleOwner) { bundle ->
|
||||
// val qrCode = bundle.getString("key_qr")
|
||||
// Log.d("1111", qrCode.toString())
|
||||
//
|
||||
// if (!qrCode.isNullOrEmpty()) view?.let {
|
||||
// val newBundle = Bundle().apply { putString("qrCode", qrCode) }
|
||||
// navigateTo(it, R.id.action_profileFragment_to_qrResultFragment, newBundle)
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
private fun logout() {
|
||||
viewModel.logout()
|
||||
|
@ -1,6 +1,7 @@
|
||||
package com.displaynone.acss.ui.scan
|
||||
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.camera.core.ImageAnalysis
|
||||
|
@ -13,6 +13,9 @@
|
||||
<action
|
||||
android:id="@+id/action_nav_init_to_nav_auth"
|
||||
app:destination="@id/nav_auth" />
|
||||
<action
|
||||
android:id="@+id/action_nav_init_to_qr_result"
|
||||
app:destination="@id/qrResultFragment" />
|
||||
</fragment>
|
||||
<fragment
|
||||
android:id="@+id/nav_profile"
|
||||
|
Loading…
x
Reference in New Issue
Block a user