diff --git a/.kotlin/errors/errors-1780384685236.log b/.kotlin/errors/errors-1780384685236.log new file mode 100644 index 0000000..4281fd0 --- /dev/null +++ b/.kotlin/errors/errors-1780384685236.log @@ -0,0 +1,48 @@ +kotlin version: 2.2.10 +error message: java.nio.file.AccessDeniedException: C:\Users\Administrator\AppData\Local\kotlin\daemon\kotlin-daemon-client-tsmarker13521342049877521529.tmp + +error message: Daemon compilation failed: Could not connect to Kotlin compile daemon +java.lang.RuntimeException: Could not connect to Kotlin compile daemon + at org.jetbrains.kotlin.compilerRunner.GradleKotlinCompilerWork.compileWithDaemon(GradleKotlinCompilerWork.kt:214) + 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:74) + at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:68) + at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:64) + at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:61) + at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:102) + at org.gradle.workers.internal.NoIsolationWorkerFactory$1.lambda$execute$0(NoIsolationWorkerFactory.java:61) + 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:58) + at org.gradle.workers.internal.DefaultWorkerExecutor.lambda$submitWork$0(DefaultWorkerExecutor.java:176) + at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) + 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:30) + at org.gradle.internal.work.DefaultWorkerLeaseService.lambda$withLocksAcquired$0(DefaultWorkerLeaseService.java:269) + at org.gradle.internal.work.ResourceLockStatistics$1.measure(ResourceLockStatistics.java:42) + at org.gradle.internal.work.DefaultWorkerLeaseService.withLocksAcquired(DefaultWorkerLeaseService.java:267) + at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:259) + 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(Executors.java:572) + at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) + at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) + at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47) + at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) + at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) + at java.base/java.lang.Thread.run(Thread.java:1583) + + diff --git a/.kotlin/errors/errors-1780384852520.log b/.kotlin/errors/errors-1780384852520.log new file mode 100644 index 0000000..239a219 --- /dev/null +++ b/.kotlin/errors/errors-1780384852520.log @@ -0,0 +1,48 @@ +kotlin version: 2.2.10 +error message: java.nio.file.AccessDeniedException: C:\Users\Administrator\AppData\Local\kotlin\daemon\kotlin-daemon-client-tsmarker7858488327127427935.tmp + +error message: Daemon compilation failed: Could not connect to Kotlin compile daemon +java.lang.RuntimeException: Could not connect to Kotlin compile daemon + at org.jetbrains.kotlin.compilerRunner.GradleKotlinCompilerWork.compileWithDaemon(GradleKotlinCompilerWork.kt:214) + 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:74) + at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:68) + at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:64) + at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:61) + at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:102) + at org.gradle.workers.internal.NoIsolationWorkerFactory$1.lambda$execute$0(NoIsolationWorkerFactory.java:61) + 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:58) + at org.gradle.workers.internal.DefaultWorkerExecutor.lambda$submitWork$0(DefaultWorkerExecutor.java:176) + at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) + 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:30) + at org.gradle.internal.work.DefaultWorkerLeaseService.lambda$withLocksAcquired$0(DefaultWorkerLeaseService.java:269) + at org.gradle.internal.work.ResourceLockStatistics$1.measure(ResourceLockStatistics.java:42) + at org.gradle.internal.work.DefaultWorkerLeaseService.withLocksAcquired(DefaultWorkerLeaseService.java:267) + at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:259) + 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(Executors.java:572) + at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) + at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) + at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47) + at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) + at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) + at java.base/java.lang.Thread.run(Thread.java:1583) + + diff --git a/.kotlin/errors/errors-1780384887923.log b/.kotlin/errors/errors-1780384887923.log new file mode 100644 index 0000000..5d53fcf --- /dev/null +++ b/.kotlin/errors/errors-1780384887923.log @@ -0,0 +1,48 @@ +kotlin version: 2.2.10 +error message: java.nio.file.AccessDeniedException: C:\Users\Administrator\AppData\Local\kotlin\daemon\kotlin-daemon-client-tsmarker4123933203426760146.tmp + +error message: Daemon compilation failed: Could not connect to Kotlin compile daemon +java.lang.RuntimeException: Could not connect to Kotlin compile daemon + at org.jetbrains.kotlin.compilerRunner.GradleKotlinCompilerWork.compileWithDaemon(GradleKotlinCompilerWork.kt:214) + 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:74) + at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:68) + at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:64) + at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:61) + at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:102) + at org.gradle.workers.internal.NoIsolationWorkerFactory$1.lambda$execute$0(NoIsolationWorkerFactory.java:61) + 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:58) + at org.gradle.workers.internal.DefaultWorkerExecutor.lambda$submitWork$0(DefaultWorkerExecutor.java:176) + at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) + 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:30) + at org.gradle.internal.work.DefaultWorkerLeaseService.lambda$withLocksAcquired$0(DefaultWorkerLeaseService.java:269) + at org.gradle.internal.work.ResourceLockStatistics$1.measure(ResourceLockStatistics.java:42) + at org.gradle.internal.work.DefaultWorkerLeaseService.withLocksAcquired(DefaultWorkerLeaseService.java:267) + at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:259) + 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(Executors.java:572) + at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) + at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) + at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47) + at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) + at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) + at java.base/java.lang.Thread.run(Thread.java:1583) + + diff --git a/.kotlin/errors/errors-1780384964383.log b/.kotlin/errors/errors-1780384964383.log new file mode 100644 index 0000000..5aa5546 --- /dev/null +++ b/.kotlin/errors/errors-1780384964383.log @@ -0,0 +1,48 @@ +kotlin version: 2.2.10 +error message: java.nio.file.AccessDeniedException: C:\Users\Administrator\AppData\Local\kotlin\daemon\kotlin-daemon-client-tsmarker7296770195837935349.tmp + +error message: Daemon compilation failed: Could not connect to Kotlin compile daemon +java.lang.RuntimeException: Could not connect to Kotlin compile daemon + at org.jetbrains.kotlin.compilerRunner.GradleKotlinCompilerWork.compileWithDaemon(GradleKotlinCompilerWork.kt:214) + 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:74) + at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:68) + at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:64) + at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:61) + at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:102) + at org.gradle.workers.internal.NoIsolationWorkerFactory$1.lambda$execute$0(NoIsolationWorkerFactory.java:61) + 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:58) + at org.gradle.workers.internal.DefaultWorkerExecutor.lambda$submitWork$0(DefaultWorkerExecutor.java:176) + at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) + 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:30) + at org.gradle.internal.work.DefaultWorkerLeaseService.lambda$withLocksAcquired$0(DefaultWorkerLeaseService.java:269) + at org.gradle.internal.work.ResourceLockStatistics$1.measure(ResourceLockStatistics.java:42) + at org.gradle.internal.work.DefaultWorkerLeaseService.withLocksAcquired(DefaultWorkerLeaseService.java:267) + at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:259) + 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(Executors.java:572) + at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) + at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) + at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47) + at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) + at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) + at java.base/java.lang.Thread.run(Thread.java:1583) + + diff --git a/.kotlin/errors/errors-1780385942943.log b/.kotlin/errors/errors-1780385942943.log new file mode 100644 index 0000000..ac5f4e9 --- /dev/null +++ b/.kotlin/errors/errors-1780385942943.log @@ -0,0 +1,48 @@ +kotlin version: 2.2.10 +error message: java.nio.file.AccessDeniedException: C:\Users\Administrator\AppData\Local\kotlin\daemon\kotlin-daemon-client-tsmarker14985441017732479130.tmp + +error message: Daemon compilation failed: Could not connect to Kotlin compile daemon +java.lang.RuntimeException: Could not connect to Kotlin compile daemon + at org.jetbrains.kotlin.compilerRunner.GradleKotlinCompilerWork.compileWithDaemon(GradleKotlinCompilerWork.kt:214) + 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:74) + at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:68) + at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:64) + at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:61) + at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:102) + at org.gradle.workers.internal.NoIsolationWorkerFactory$1.lambda$execute$0(NoIsolationWorkerFactory.java:61) + 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:58) + at org.gradle.workers.internal.DefaultWorkerExecutor.lambda$submitWork$0(DefaultWorkerExecutor.java:176) + at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) + 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:30) + at org.gradle.internal.work.DefaultWorkerLeaseService.lambda$withLocksAcquired$0(DefaultWorkerLeaseService.java:269) + at org.gradle.internal.work.ResourceLockStatistics$1.measure(ResourceLockStatistics.java:42) + at org.gradle.internal.work.DefaultWorkerLeaseService.withLocksAcquired(DefaultWorkerLeaseService.java:267) + at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:259) + 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(Executors.java:572) + at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) + at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) + at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47) + at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) + at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) + at java.base/java.lang.Thread.run(Thread.java:1583) + + diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 66e4918..8ec58f4 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -104,4 +104,5 @@ dependencies { //基于exoPlayer 自定义播放器 JPlayer支持功能 implementation("com.ycjiang:VideoPlayModule-Lite:2.3.61") + } \ No newline at end of file diff --git a/app/src/main/java/com/example/defenseapplication/liveVideo/AlarmLogActivity.kt b/app/src/main/java/com/example/defenseapplication/liveVideo/AlarmLogActivity.kt index 1690dbe..8bd59b6 100644 --- a/app/src/main/java/com/example/defenseapplication/liveVideo/AlarmLogActivity.kt +++ b/app/src/main/java/com/example/defenseapplication/liveVideo/AlarmLogActivity.kt @@ -6,7 +6,10 @@ import android.os.Bundle import android.util.Log import android.view.View import android.view.ViewGroup +import android.view.WindowManager import android.widget.LinearLayout +import android.widget.SeekBar +import android.widget.TextView import android.widget.Toast import androidx.activity.OnBackPressedCallback import androidx.appcompat.app.AppCompatActivity @@ -16,6 +19,7 @@ import chuangyuan.ycj.videolibrary.listener.VideoInfoListener import chuangyuan.ycj.videolibrary.video.ExoUserPlayer import chuangyuan.ycj.videolibrary.video.VideoPlayerManager import com.google.android.exoplayer2.ui.PlayerView +import com.google.android.exoplayer2.SimpleExoPlayer import com.example.defenseapplication.R import com.example.defenseapplication.adapter.AlarmLogAdapter import com.example.defenseapplication.bean.DeviceAlarmBean @@ -24,6 +28,8 @@ import com.example.defenseapplication.databinding.AlarmLogActivityBinding import com.example.defenseapplication.utils.RetrofitNetwork import com.gyf.immersionbar.ImmersionBar import kotlinx.coroutines.launch +import android.os.Handler +import android.os.Looper import java.text.SimpleDateFormat import java.util.* import com.bigkoo.pickerview.builder.TimePickerBuilder @@ -38,23 +44,38 @@ class AlarmLogActivity : AppCompatActivity() { private val originalAlarmList = mutableListOf() private lateinit var exoPlayerManager: ExoUserPlayer private var isMuted = false - private var isVoiceEnabled = false - private var isLightOn = false + private var isPlaying = false private var deviceId: String? = null private var isLoading = false private var fromLiveVideo = false + private var isFullScreen = false + private var isControlsVisible = false + private val hideDelay = 5000L // 5秒自动隐藏 + private val hideHandler = Handler(Looper.getMainLooper()) + private val hideRunnable = Runnable { + hideControls() + } private var passedVideoUrl: String? = null private var passedSelectedId: String? = null private var passedCreateTime: String? = null + private var totalDuration: Long = 0 + private val progressHandler = Handler(Looper.getMainLooper()) + private val progressRunnable = object : Runnable { + override fun run() { + updateProgress() + progressHandler.postDelayed(this, 1000) + } + } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = AlarmLogActivityBinding.inflate(layoutInflater) setContentView(binding.root) - ImmersionBar.with(this) - .statusBarDarkFont(true) - .transparentStatusBar() - .init() + + window.setFlags( + WindowManager.LayoutParams.FLAG_FULLSCREEN, + WindowManager.LayoutParams.FLAG_FULLSCREEN + ) deviceId = intent.getStringExtra("device_id") fromLiveVideo = intent.getBooleanExtra("from_live_video", false) @@ -68,14 +89,14 @@ class AlarmLogActivity : AppCompatActivity() { fetchAlarmList() initListener() - onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) { - override fun handleOnBackPressed() { - if (exoPlayerManager.onBackPressed()) { - return - } - finish() - } - }) +// onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) { +// override fun handleOnBackPressed() { +// if (exoPlayerManager.onBackPressed()) { +// return +// } +// finish() +// } +// }) } private fun dpToPx(dp: Int): Int { @@ -97,6 +118,9 @@ class AlarmLogActivity : AppCompatActivity() { .addVideoInfoListener(object : VideoInfoListener { override fun onPlayStart(p0: Long) { Log.d("AlarmLogActivity", "视频开始播放") + startProgressUpdate() + showControls() + resetHideTimer() } override fun onLoadingChanged() { @@ -108,9 +132,24 @@ class AlarmLogActivity : AppCompatActivity() { override fun onPlayEnd() { Log.d("AlarmLogActivity", "播放结束") + stopProgressUpdate() + hideControls() } override fun isPlaying(p0: Boolean) { + isPlaying = p0 + if (p0) { + startProgressUpdate() + // 视频开始播放时,如果控制栏可见,启动自动隐藏计时器 + if (isControlsVisible) { + resetHideTimer() + } + } else { + stopProgressUpdate() + // 视频暂停时,取消自动隐藏计时器,保持控制栏显示 + hideHandler.removeCallbacks(hideRunnable) + showControls() + } } fun onRepeatModeChanged(p0: Int) { @@ -121,25 +160,11 @@ class AlarmLogActivity : AppCompatActivity() { exoPlayerManager.startPlayer() setupControllerVisibilityListener() + updateProgress() } private fun setupControllerVisibilityListener() { - binding.exoPlayContextId.post { - val playerView = findPlayerView(binding.exoPlayContextId) - playerView?.setControllerVisibilityListener { visibility -> - if (visibility == View.VISIBLE) { - binding.ivBack.visibility = View.VISIBLE - binding.muteBar.visibility = View.VISIBLE - binding.ivDownload.visibility = View.VISIBLE - binding.ivDelete.visibility = View.VISIBLE - } else { - binding.ivBack.visibility = View.GONE - binding.muteBar.visibility = View.GONE - binding.ivDownload.visibility = View.GONE - binding.ivDelete.visibility = View.GONE - } - } - } + // 移除原来的控制器监听器,改为自定义控制逻辑 } private fun findPlayerView(view: View): PlayerView? { @@ -169,16 +194,19 @@ class AlarmLogActivity : AppCompatActivity() { binding.alarmListRecyclerView.layoutManager = LinearLayoutManager(this) binding.alarmListRecyclerView.adapter = adapter } - + private fun playVideo(videoUrl: String) { exoPlayerManager.onDestroy() - + exoPlayerManager = VideoPlayerManager.Builder(VideoPlayerManager.TYPE_PLAY_GESTURE, binding.exoPlayContextId) .setPlayUri(videoUrl) .setPosition(0) .addVideoInfoListener(object : VideoInfoListener { override fun onPlayStart(p0: Long) { Log.d("AlarmLogActivity", "视频开始播放") + startProgressUpdate() + showControls() + resetHideTimer() } override fun onLoadingChanged() { @@ -190,25 +218,51 @@ class AlarmLogActivity : AppCompatActivity() { override fun onPlayEnd() { Log.d("AlarmLogActivity", "播放结束") + stopProgressUpdate() + hideControls() } override fun isPlaying(p0: Boolean) { + isPlaying = p0 + if (p0) { + startProgressUpdate() + // 视频开始播放时,如果控制栏可见,启动自动隐藏计时器 + if (isControlsVisible) { + resetHideTimer() + } + } else { + stopProgressUpdate() + // 视频暂停时,取消自动隐藏计时器,保持控制栏显示 + hideHandler.removeCallbacks(hideRunnable) + showControls() + } } fun onRepeatModeChanged(p0: Int) { } }) .create() - + exoPlayerManager.startPlayer() + + // 保持当前的静音状态 + if (isMuted) { + try { + val method = exoPlayerManager.javaClass.getMethod("getPlayer") + val player = method.invoke(exoPlayerManager) as? SimpleExoPlayer + player?.volume = 0f + } catch (e: Exception) { + e.printStackTrace() + } + } } private fun fetchAlarmList() { val currentDeviceId = deviceId ?: return - + Log.d("AlarmLogActivity", "=== 开始请求设备告警日志 ===") Log.d("AlarmLogActivity", "请求参数 - deviceId: $currentDeviceId") - + isLoading = true lifecycleScope.launch { try { @@ -218,16 +272,16 @@ class AlarmLogActivity : AppCompatActivity() { pageNum = "1", pageSize = "10" ) - + Log.d("AlarmLogActivity", "请求完成") Log.d("AlarmLogActivity", "总条数: ${response.total}, 当前页数据条数: ${response.rows.size}") - + val newData = response.rows originalAlarmList.clear() originalAlarmList.addAll(newData) filterAlarmListByDate(calendar) Log.d("AlarmLogActivity", "已获取 ${newData.size} 条数据") - + } catch (e: Exception) { Log.e("AlarmLogActivity", "请求异常: ${e.message}", e) } finally { @@ -236,11 +290,21 @@ class AlarmLogActivity : AppCompatActivity() { } } } - + + private fun showEmptyView() { + binding.alarmListRecyclerView.visibility = View.GONE + binding.emptyLayout.visibility = View.VISIBLE + } + + private fun hideEmptyView() { + binding.alarmListRecyclerView.visibility = View.VISIBLE + binding.emptyLayout.visibility = View.GONE + } + private fun filterAlarmListByDate(selectedDate: Calendar) { val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()) val selectedDateStr = dateFormat.format(selectedDate.time) - + alarmList.clear() originalAlarmList.forEach { item -> val itemDateStr = item.createTime.substring(0, 10) @@ -250,6 +314,12 @@ class AlarmLogActivity : AppCompatActivity() { } adapter?.notifyDataSetChanged() Log.d("AlarmLogActivity", "日期筛选完成,筛选后条数: ${alarmList.size}") + + if (alarmList.isEmpty()) { + showEmptyView() + } else { + hideEmptyView() + } } private fun updateDateDisplay() { @@ -258,8 +328,51 @@ class AlarmLogActivity : AppCompatActivity() { binding.tvDate.text = "${month}月${day}日" } + private fun showControls() { + isControlsVisible = true + binding.functionBar.visibility = View.VISIBLE + binding.muteBar.visibility = View.VISIBLE + binding.playBar.visibility = View.VISIBLE + binding.progressBar.visibility = View.VISIBLE + // 只有在视频播放时才启动自动隐藏计时器 + if (isPlaying) { + resetHideTimer() + } + } + + private fun hideControls() { + isControlsVisible = false + binding.functionBar.visibility = View.GONE + binding.muteBar.visibility = View.GONE + binding.playBar.visibility = View.GONE + binding.progressBar.visibility = View.GONE + } + + private fun toggleControls() { + if (isControlsVisible) { + hideControls() + } else { + showControls() + } + } + + private fun resetHideTimer() { + hideHandler.removeCallbacks(hideRunnable) + // 只有在视频播放时才启动自动隐藏计时器 + if (isPlaying) { + hideHandler.postDelayed(hideRunnable, hideDelay) + } + } + private fun initListener() { + // 点击视频区域切换控制栏显示/隐藏 + binding.exoPlayContextId.setOnClickListener { + toggleControls() + } + + // 控制栏上的按钮点击时重置隐藏计时器 binding.ivBack.setOnClickListener { + resetHideTimer() finish() } @@ -268,26 +381,66 @@ class AlarmLogActivity : AppCompatActivity() { } binding.ivMute.setOnClickListener { + resetHideTimer() toggleMute() } binding.ivDownload.setOnClickListener { + resetHideTimer() downloadVideo() } binding.ivDelete.setOnClickListener { + resetHideTimer() deleteVideo() } + + binding.ivFullScreen.setOnClickListener { + resetHideTimer() + toggleFullScreen() + } + + binding.ivPlay.setOnClickListener { + resetHideTimer() + togglePlay() + } + + binding.seekBar.setOnSeekBarChangeListener(object : android.widget.SeekBar.OnSeekBarChangeListener { + override fun onProgressChanged(seekBar: android.widget.SeekBar?, progress: Int, fromUser: Boolean) { + if (fromUser) { + resetHideTimer() + exoPlayerManager.seekTo(progress.toLong() * 1000) + } + } + + override fun onStartTrackingTouch(seekBar: android.widget.SeekBar?) { + resetHideTimer() + } + + override fun onStopTrackingTouch(seekBar: android.widget.SeekBar?) { + } + }) } private fun toggleMute() { isMuted = !isMuted - if (isMuted) { - binding.ivMute.setImageResource(R.drawable.mute) - Toast.makeText(this, R.string.sound_off, Toast.LENGTH_SHORT).show() - } else { - binding.ivMute.setImageResource(R.drawable.voice) - Toast.makeText(this, R.string.sound_on, Toast.LENGTH_SHORT).show() + try { + // 通过反射获取底层的 ExoPlayer 实例 + val method = exoPlayerManager.javaClass.getMethod("getPlayer") + val player = method.invoke(exoPlayerManager) as? SimpleExoPlayer + + if (isMuted) { + binding.ivMute.setImageResource(R.drawable.mute) + player?.volume = 0f + Toast.makeText(this, R.string.sound_off, Toast.LENGTH_SHORT).show() + } else { + binding.ivMute.setImageResource(R.drawable.un_mute) + player?.volume = 1f + Toast.makeText(this, R.string.sound_on, Toast.LENGTH_SHORT).show() + } + } catch (e: Exception) { + e.printStackTrace() + Toast.makeText(this, "音量控制失败", Toast.LENGTH_SHORT).show() } } @@ -299,6 +452,63 @@ class AlarmLogActivity : AppCompatActivity() { Toast.makeText(this, R.string.delete, Toast.LENGTH_SHORT).show() } + private fun updateProgress() { + val currentPosition = exoPlayerManager.getCurrentPosition() + totalDuration = exoPlayerManager.getDuration() + + binding.tvCurrentTime.text = formatTime(currentPosition) + binding.tvTotalTime.text = formatTime(totalDuration) + + if (totalDuration > 0) { + val progress = (currentPosition * 100 / totalDuration).toInt() + binding.seekBar.progress = progress + } + } + + private fun formatTime(milliseconds: Long): String { + val seconds = (milliseconds / 1000).toInt() + val hours = seconds / 3600 + val minutes = (seconds % 3600) / 60 + val secs = seconds % 60 + + return if (hours > 0) { + String.format("%02d:%02d:%02d", hours, minutes, secs) + } else { + String.format("%02d:%02d", minutes, secs) + } + } + + private fun startProgressUpdate() { + stopProgressUpdate() + progressHandler.post(progressRunnable) + } + + private fun stopProgressUpdate() { + progressHandler.removeCallbacks(progressRunnable) + } + + private fun toggleFullScreen() { + isFullScreen = !isFullScreen + if (isFullScreen) { + binding.ivFullScreen.setImageResource(R.drawable.full_screen) + requestedOrientation = android.content.pm.ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE + } else { + binding.ivFullScreen.setImageResource(R.drawable.full_size) + requestedOrientation = android.content.pm.ActivityInfo.SCREEN_ORIENTATION_PORTRAIT + } + } + + private fun togglePlay() { + isPlaying = !isPlaying + if (isPlaying) { + binding.ivPlay.setImageResource(R.drawable.zt) + exoPlayerManager.startPlayer() + } else { + binding.ivPlay.setImageResource(R.drawable.start) + exoPlayerManager.onPause() + } + } + override fun onResume() { super.onResume() exoPlayerManager.onResume() diff --git a/app/src/main/java/com/example/defenseapplication/liveVideo/LiveVideoActivity.kt b/app/src/main/java/com/example/defenseapplication/liveVideo/LiveVideoActivity.kt index e29ccdc..cf740a1 100644 --- a/app/src/main/java/com/example/defenseapplication/liveVideo/LiveVideoActivity.kt +++ b/app/src/main/java/com/example/defenseapplication/liveVideo/LiveVideoActivity.kt @@ -83,14 +83,14 @@ class LiveVideoActivity : BaseActivity() { initAlarmRecyclerView() initListener() fetchAlarmList() - onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) { - override fun handleOnBackPressed() { - if (exoPlayerManager.onBackPressed()) { - return - } - finish() - } - }) +// onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) { +// override fun handleOnBackPressed() { +// if (exoPlayerManager.onBackPressed()) { +// return +// } +// finish() +// } +// }) } private fun initVideoPlayer() { diff --git a/app/src/main/java/com/example/defenseapplication/utils/ApiService.kt b/app/src/main/java/com/example/defenseapplication/utils/ApiService.kt index 7cde3ca..915ce41 100644 --- a/app/src/main/java/com/example/defenseapplication/utils/ApiService.kt +++ b/app/src/main/java/com/example/defenseapplication/utils/ApiService.kt @@ -230,8 +230,6 @@ interface ApiService { @Query("deviceId") deviceId: String, @Query("pageNum") pageNum: String="1", @Query("pageSize") pageSize: String="10", - @Query("startTime") startTime: String? = null, - @Query("endTime") endTime: String? = null ): DeviceAlarmResponse diff --git a/app/src/main/res/drawable/custom_seekbar.xml b/app/src/main/res/drawable/custom_seekbar.xml new file mode 100644 index 0000000..552942a --- /dev/null +++ b/app/src/main/res/drawable/custom_seekbar.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/custom_thumb.xml b/app/src/main/res/drawable/custom_thumb.xml new file mode 100644 index 0000000..e844bcb --- /dev/null +++ b/app/src/main/res/drawable/custom_thumb.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/full_size.png b/app/src/main/res/drawable/full_size.png new file mode 100644 index 0000000..a8122ea Binary files /dev/null and b/app/src/main/res/drawable/full_size.png differ diff --git a/app/src/main/res/drawable/mute.png b/app/src/main/res/drawable/mute.png index a9a43da..e2a00c8 100644 Binary files a/app/src/main/res/drawable/mute.png and b/app/src/main/res/drawable/mute.png differ diff --git a/app/src/main/res/drawable/un_mute.png b/app/src/main/res/drawable/un_mute.png new file mode 100644 index 0000000..8aa85e6 Binary files /dev/null and b/app/src/main/res/drawable/un_mute.png differ diff --git a/app/src/main/res/drawable/zt.png b/app/src/main/res/drawable/zt.png new file mode 100644 index 0000000..d9c209d Binary files /dev/null and b/app/src/main/res/drawable/zt.png differ diff --git a/app/src/main/res/layout/alarm_log_activity.xml b/app/src/main/res/layout/alarm_log_activity.xml index 4d69615..7c0aa6e 100644 --- a/app/src/main/res/layout/alarm_log_activity.xml +++ b/app/src/main/res/layout/alarm_log_activity.xml @@ -2,9 +2,10 @@ @@ -18,11 +19,10 @@ android:layout_width="match_parent" android:layout_height="280dp" android:background="@android:color/transparent" - app:use_controller="true" /> + app:use_controller="false"/> - + + android:orientation="vertical" + android:gravity="center"> + android:src="@drawable/un_mute"/> + + + + + + + + + + + + + + + + + + + + + + + @@ -121,5 +189,21 @@ android:layout_weight="1" android:background="#FFFFFF" /> + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/live_video_activity.xml b/app/src/main/res/layout/live_video_activity.xml index a137a28..1f3e639 100644 --- a/app/src/main/res/layout/live_video_activity.xml +++ b/app/src/main/res/layout/live_video_activity.xml @@ -49,7 +49,7 @@ android:layout_width="match_parent" android:layout_height="250dp" android:background="@android:color/transparent" - app:use_controller="true"/> + app:use_controller="false"/>