diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 14db2db..667c10e 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -92,8 +92,8 @@ android { applicationId = "com.example.research" minSdk = project.property("minSdk").toString().toInt() targetSdk = project.property("targetSdk").toString().toInt() - versionCode = 4 - versionName = "1.2.0" + versionCode = 5 + versionName = "1.2.1" vectorDrawables { useSupportLibrary = true @@ -114,12 +114,9 @@ android { abiFilters += "arm64-v8a" } - isMinifyEnabled = true - isShrinkResources = true - proguardFiles( - getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" - ) + optimization { + enable = true + } } } diff --git a/app/src/main/java/com/example/research/feature/download/DownloadManager.kt b/app/src/main/java/com/example/research/feature/download/DownloadManager.kt index d32b5b7..4b3ea83 100644 --- a/app/src/main/java/com/example/research/feature/download/DownloadManager.kt +++ b/app/src/main/java/com/example/research/feature/download/DownloadManager.kt @@ -24,6 +24,7 @@ class DownloadManager( mutableDownloadProgressState.asStateFlow() private val mutex = Mutex() private var downloadJob: Job? = null + private var cancelCleanupJob: Job? = null companion object { private const val TAG = "DownloadManager" @@ -44,6 +45,7 @@ class DownloadManager( fun startDownload() { if (downloadState.value is DownloadState.Loading) return if (!downloadScope.isActive) return + cancelCleanupJob = null downloadJob = downloadScope.launch { mutex.withLock { try { @@ -94,7 +96,7 @@ class DownloadManager( } catch (e: Exception) { if (e is CancellationException) { updateDownloadProgressState(DownloadState.Cancelled, 0f) - downloadScope.launch { + cancelCleanupJob = downloadScope.launch { try { dictionaryRepository.deleteUnprocessedFiles() } catch (cleanupException: Exception) { @@ -124,6 +126,7 @@ class DownloadManager( fun startDownloadForSources(sourceUrls: List) { if (downloadState.value is DownloadState.Loading) return if (!downloadScope.isActive) return + cancelCleanupJob = null downloadJob = downloadScope.launch { mutex.withLock { try { @@ -168,7 +171,7 @@ class DownloadManager( } catch (e: Exception) { if (e is CancellationException) { updateDownloadProgressState(DownloadState.Cancelled, 0f) - downloadScope.launch { + cancelCleanupJob = downloadScope.launch { try { dictionaryRepository.deleteUnprocessedFiles() } catch (cleanupException: Exception) { @@ -195,10 +198,12 @@ class DownloadManager( } } fun cancelDownload() { - downloadJob?.cancel() + val jobToCancel = downloadJob + jobToCancel?.cancel() updateDownloadProgressState(DownloadState.Cancelled, 0f) downloadScope.launch { - delay(TERMINAL_STATE_DURATION) + jobToCancel?.join() + cancelCleanupJob?.join() if (downloadState.value == DownloadState.Cancelled) { updateDownloadProgressState(DownloadState.Idle, 0f) } diff --git a/app/proguard-rules.pro b/app/src/release/keepRules/proguard-rules.keep similarity index 100% rename from app/proguard-rules.pro rename to app/src/release/keepRules/proguard-rules.keep diff --git a/fastlane/metadata/android/en-US/changelogs/5.txt b/fastlane/metadata/android/en-US/changelogs/5.txt new file mode 100644 index 0000000..3629ff6 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/5.txt @@ -0,0 +1 @@ +- Fixed the dictionary update card taking too long to reappear after cancelling a download diff --git a/fastlane/metadata/android/ru-RU/changelogs/5.txt b/fastlane/metadata/android/ru-RU/changelogs/5.txt new file mode 100644 index 0000000..08405ba --- /dev/null +++ b/fastlane/metadata/android/ru-RU/changelogs/5.txt @@ -0,0 +1 @@ +- Исправлена лишняя задержка перед повторным появлением карточки обновления словаря после отмены загрузки diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ef9b0e0..c5c06c1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] aboutlibraries = "15.0.4" activity_compose = "1.13.0" -agp = "9.3.0" +agp = "9.3.1" compose_bom = "2026.06.01" core = "1.19.0" datastore_preferences = "1.2.1"