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")
|
append(HttpHeaders.Authorization, "Bearer $token")
|
||||||
}
|
}
|
||||||
contentType(ContentType.Application.Json)
|
contentType(ContentType.Application.Json)
|
||||||
setBody("""{ "code": $code }""")
|
setBody("""{ "code": $code, "visitType": "APP" }""")
|
||||||
}
|
}
|
||||||
if (result.status != HttpStatusCode.OK) {
|
if (result.status != HttpStatusCode.OK) {
|
||||||
error("Status ${result.status}: ${result.body<String>()}")
|
error("Status ${result.status}: ${result.body<String>()}")
|
||||||
|
@ -5,11 +5,10 @@ import android.view.ViewGroup
|
|||||||
import androidx.paging.PagingDataAdapter
|
import androidx.paging.PagingDataAdapter
|
||||||
import androidx.recyclerview.widget.DiffUtil
|
import androidx.recyclerview.widget.DiffUtil
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
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.VisitDto
|
||||||
|
import com.displaynone.acss.components.acs.models.visit.repository.dto.VisitType
|
||||||
import com.displaynone.acss.databinding.ItemScannerViewBinding
|
import com.displaynone.acss.databinding.ItemScannerViewBinding
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
|
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
|
|
||||||
class VisitAdapter : PagingDataAdapter<VisitDto, VisitAdapter.ViewHolder>(VisitDiff) {
|
class VisitAdapter : PagingDataAdapter<VisitDto, VisitAdapter.ViewHolder>(VisitDiff) {
|
||||||
@ -25,23 +24,24 @@ class VisitAdapter: PagingDataAdapter<VisitDto, VisitAdapter.ViewHolder>(VisitDi
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
||||||
holder.bind(getItem(position) ?:
|
holder.bind(
|
||||||
VisitDto(
|
getItem(position) ?: VisitDto(
|
||||||
id = -1,
|
id = -1,
|
||||||
userId = -1,
|
userId = -1,
|
||||||
gateId = -1,
|
gateId = -1,
|
||||||
createdAt = "Loading...",
|
createdAt = "Loading...",
|
||||||
|
visitType = VisitType.APP
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class ViewHolder(
|
class ViewHolder(
|
||||||
private val binding: ItemScannerViewBinding
|
private val binding: ItemScannerViewBinding
|
||||||
) : RecyclerView.ViewHolder(binding.root) {
|
) : RecyclerView.ViewHolder(binding.root) {
|
||||||
fun bind(item: VisitDto) {
|
fun bind(item: VisitDto) {
|
||||||
binding.scanTime.text = "${formatDate(item.createdAt)}"
|
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 {
|
||||||
@ -55,7 +55,8 @@ class VisitAdapter: PagingDataAdapter<VisitDto, VisitAdapter.ViewHolder>(VisitDi
|
|||||||
|
|
||||||
}
|
}
|
||||||
return TODO("")
|
return TODO("")
|
||||||
}}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
object VisitDiff : DiffUtil.ItemCallback<VisitDto>() {
|
object VisitDiff : DiffUtil.ItemCallback<VisitDto>() {
|
||||||
override fun areItemsTheSame(oldItem: VisitDto, newItem: VisitDto): Boolean {
|
override fun areItemsTheSame(oldItem: VisitDto, newItem: VisitDto): Boolean {
|
||||||
|
@ -13,5 +13,6 @@ data class VisitDto(
|
|||||||
val gateId: Long,
|
val gateId: Long,
|
||||||
@SerialName("createdAt")
|
@SerialName("createdAt")
|
||||||
val createdAt: String,
|
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
|
package com.displaynone.acss.config
|
||||||
|
|
||||||
object Constants {
|
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.os.Bundle
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.view.View
|
import android.view.View
|
||||||
|
import androidx.activity.OnBackPressedCallback
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.fragment.app.viewModels
|
import androidx.fragment.app.viewModels
|
||||||
import androidx.navigation.NavController
|
import androidx.navigation.NavController
|
||||||
@ -13,6 +14,7 @@ import androidx.navigation.fragment.findNavController
|
|||||||
import com.displaynone.acss.R
|
import com.displaynone.acss.R
|
||||||
import com.displaynone.acss.components.auth.models.user.UserServiceST
|
import com.displaynone.acss.components.auth.models.user.UserServiceST
|
||||||
import com.displaynone.acss.databinding.FragmentInitBinding
|
import com.displaynone.acss.databinding.FragmentInitBinding
|
||||||
|
import com.displaynone.acss.ui.scan.QrScanDestination
|
||||||
import com.displaynone.acss.util.collectWithLifecycle
|
import com.displaynone.acss.util.collectWithLifecycle
|
||||||
import com.displaynone.acss.util.navigateTo
|
import com.displaynone.acss.util.navigateTo
|
||||||
|
|
||||||
@ -22,7 +24,6 @@ class InitFragment : Fragment(R.layout.fragment_init) {
|
|||||||
|
|
||||||
private val viewModel: InitFragmentViewModel by viewModels()
|
private val viewModel: InitFragmentViewModel by viewModels()
|
||||||
|
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
_binding = FragmentInitBinding.bind(view)
|
_binding = FragmentInitBinding.bind(view)
|
||||||
@ -34,6 +35,29 @@ class InitFragment : Fragment(R.layout.fragment_init) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pingServer()
|
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() {
|
private fun pingServer() {
|
||||||
|
@ -54,7 +54,7 @@ class ProfileFragment : Fragment(R.layout.fragment_profile) {
|
|||||||
if (getIsMe()) {
|
if (getIsMe()) {
|
||||||
refreshData()
|
refreshData()
|
||||||
viewModel.visitListState.collectWithLifecycle(this) { data -> adapter.submitData(data) }
|
viewModel.visitListState.collectWithLifecycle(this) { data -> adapter.submitData(data) }
|
||||||
waitForQRScanResult()
|
// waitForQRScanResult()
|
||||||
} else {
|
} else {
|
||||||
showData(getUserDto()!!)
|
showData(getUserDto()!!)
|
||||||
Log.d("ProfileFragment", "set login")
|
Log.d("ProfileFragment", "set login")
|
||||||
@ -139,25 +139,28 @@ class ProfileFragment : Fragment(R.layout.fragment_profile) {
|
|||||||
return arguments?.getBoolean("isMe", true) ?: true
|
return arguments?.getBoolean("isMe", true) ?: true
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun waitForQRScanResult() {
|
// private fun waitForQRScanResult() {
|
||||||
requireActivity().onBackPressedDispatcher.addCallback(
|
// Log.d("1111", "122ee")
|
||||||
viewLifecycleOwner,
|
// requireActivity().onBackPressedDispatcher.addCallback(
|
||||||
object : OnBackPressedCallback(true) {
|
// viewLifecycleOwner,
|
||||||
override fun handleOnBackPressed() {
|
// object : OnBackPressedCallback(true) {
|
||||||
|
// override fun handleOnBackPressed() {
|
||||||
}
|
//
|
||||||
})
|
// }
|
||||||
|
// })
|
||||||
findNavController().currentBackStackEntry?.savedStateHandle?.getLiveData<Bundle>(
|
//
|
||||||
QrScanDestination.REQUEST_KEY
|
// findNavController().currentBackStackEntry?.savedStateHandle?.getLiveData<Bundle>(
|
||||||
)?.observe(viewLifecycleOwner) { bundle ->
|
// QrScanDestination.REQUEST_KEY
|
||||||
val qrCode = bundle.getString("key_qr")
|
// )?.observe(viewLifecycleOwner) { bundle ->
|
||||||
if (!qrCode.isNullOrEmpty()) view?.let {
|
// val qrCode = bundle.getString("key_qr")
|
||||||
val newBundle = Bundle().apply { putString("qrCode", qrCode) }
|
// Log.d("1111", qrCode.toString())
|
||||||
navigateTo(it, R.id.action_profileFragment_to_qrResultFragment, newBundle)
|
//
|
||||||
}
|
// if (!qrCode.isNullOrEmpty()) view?.let {
|
||||||
}
|
// val newBundle = Bundle().apply { putString("qrCode", qrCode) }
|
||||||
}
|
// navigateTo(it, R.id.action_profileFragment_to_qrResultFragment, newBundle)
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
private fun logout() {
|
private fun logout() {
|
||||||
viewModel.logout()
|
viewModel.logout()
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package com.displaynone.acss.ui.scan
|
package com.displaynone.acss.ui.scan
|
||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.util.Log
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.activity.result.contract.ActivityResultContracts
|
import androidx.activity.result.contract.ActivityResultContracts
|
||||||
import androidx.camera.core.ImageAnalysis
|
import androidx.camera.core.ImageAnalysis
|
||||||
|
@ -13,6 +13,9 @@
|
|||||||
<action
|
<action
|
||||||
android:id="@+id/action_nav_init_to_nav_auth"
|
android:id="@+id/action_nav_init_to_nav_auth"
|
||||||
app:destination="@id/nav_auth" />
|
app:destination="@id/nav_auth" />
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_nav_init_to_qr_result"
|
||||||
|
app:destination="@id/qrResultFragment" />
|
||||||
</fragment>
|
</fragment>
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/nav_profile"
|
android:id="@+id/nav_profile"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user