diff --git a/.gitignore b/.gitignore index 52a910b..16dcd12 100644 --- a/.gitignore +++ b/.gitignore @@ -1,16 +1,33 @@ -*.iml -.gradle -/local.properties -/.idea/caches -/.idea/libraries -/.idea/modules.xml -/.idea/workspace.xml -/.idea/navEditor.xml -/.idea/assetWizardSettings.xml -.DS_Store -/build -/captures -.externalNativeBuild -.cxx +# Gradle files +.gradle/ +build/ + +# Local configuration file (sdk path, etc) local.properties -/.idea/shelf/Uncommitted_changes_before_Update_at_9_11_2024_8_33_AM_[Changes]/shelved.patch + +# Log/OS Files +*.log + +# Android Studio generated files and folders +captures/ +.externalNativeBuild/ +.cxx/ +*.apk +output.json + +# IntelliJ +*.iml +.idea/ +misc.xml +deploymentTargetDropDown.xml +render.experimental.xml + +# Keystore files +*.jks +*.keystore + +# Google Services (e.g. APIs or Firebase) +google-services.json + +# Android Profiling +*.hprof \ No newline at end of file diff --git a/app/build.gradle.kts b/app/build.gradle.kts index be92475..ad3f7d9 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -14,8 +14,8 @@ android { applicationId = "com.d4rk.cleaner" minSdk = 23 targetSdk = 35 - versionCode = 141 - versionName = "3.0.0" + versionCode = 142 + versionName = "3.0.1" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" resourceConfigurations += listOf( "en", @@ -43,19 +43,21 @@ android { buildTypes { release { - multiDexEnabled = true isMinifyEnabled = true isShrinkResources = true isDebuggable = false - proguardFiles( - getDefaultProguardFile(name = "proguard-android-optimize.txt"), "proguard-rules.pro" - ) } debug { - multiDexEnabled = true isDebuggable = true + } + } + + buildTypes.forEach { buildType -> + with (buildType) { + multiDexEnabled = true proguardFiles( - getDefaultProguardFile(name = "proguard-android-optimize.txt"), "proguard-rules.pro" + getDefaultProguardFile(name = "proguard-android-optimize.txt") , + "proguard-rules.pro" ) } } @@ -90,65 +92,65 @@ android { dependencies { //AndroidX - implementation(libs.androidx.core.ktx) - implementation(libs.androidx.appcompat) - implementation(libs.androidx.core.splashscreen) - implementation(libs.androidx.multidex) - implementation(libs.androidx.work.runtime.ktx) + implementation(dependencyNotation = libs.androidx.core.ktx) + implementation(dependencyNotation = libs.androidx.appcompat) + implementation(dependencyNotation = libs.androidx.core.splashscreen) + implementation(dependencyNotation = libs.androidx.multidex) + implementation(dependencyNotation = libs.androidx.work.runtime.ktx) // Compose - implementation(platform(libs.androidx.compose.bom)) - implementation(libs.androidx.ui) - implementation(libs.androidx.activity.compose) - implementation(libs.androidx.constraintlayout.compose) - implementation(libs.androidx.ui.graphics) - implementation(libs.androidx.compose.runtime) - implementation(libs.androidx.runtime.livedata) - implementation(libs.androidx.runtime.rxjava2) - implementation(libs.androidx.ui.tooling.preview) - implementation(libs.androidx.material3) - implementation(libs.androidx.material.icons.extended) - implementation(libs.datastore.preferences) - implementation(libs.androidx.datastore.preferences) - implementation(libs.androidx.foundation) - implementation(libs.androidx.navigation.compose) + implementation(dependencyNotation = platform(libs.androidx.compose.bom)) + implementation(dependencyNotation = libs.androidx.ui) + implementation(dependencyNotation = libs.androidx.activity.compose) + implementation(dependencyNotation = libs.androidx.constraintlayout.compose) + implementation(dependencyNotation = libs.androidx.ui.graphics) + implementation(dependencyNotation = libs.androidx.compose.runtime) + implementation(dependencyNotation = libs.androidx.runtime.livedata) + implementation(dependencyNotation = libs.androidx.runtime.rxjava2) + implementation(dependencyNotation = libs.androidx.ui.tooling.preview) + implementation(dependencyNotation = libs.androidx.material3) + implementation(dependencyNotation = libs.androidx.material.icons.extended) + implementation(dependencyNotation = libs.datastore.preferences) + implementation(dependencyNotation = libs.androidx.datastore.preferences) + implementation(dependencyNotation = libs.androidx.foundation) + implementation(dependencyNotation = libs.androidx.navigation.compose) // Lifecycle - implementation(libs.kotlinx.coroutines.android) - implementation(libs.kotlinx.serialization.json) - implementation(libs.androidx.lifecycle.runtime.ktx) - implementation(libs.androidx.lifecycle.common.java8) - implementation(libs.androidx.lifecycle.livedata.ktx) - implementation(libs.androidx.lifecycle.process) - implementation(libs.androidx.lifecycle.viewmodel.ktx) - implementation(libs.androidx.lifecycle.viewmodel.compose) - implementation(libs.androidx.lifecycle.runtime.compose) + implementation(dependencyNotation = libs.kotlinx.coroutines.android) + implementation(dependencyNotation = libs.kotlinx.serialization.json) + implementation(dependencyNotation = libs.androidx.lifecycle.runtime.ktx) + implementation(dependencyNotation = libs.androidx.lifecycle.common.java8) + implementation(dependencyNotation = libs.androidx.lifecycle.livedata.ktx) + implementation(dependencyNotation = libs.androidx.lifecycle.process) + implementation(dependencyNotation = libs.androidx.lifecycle.viewmodel.ktx) + implementation(dependencyNotation = libs.androidx.lifecycle.viewmodel.compose) + implementation(dependencyNotation = libs.androidx.lifecycle.runtime.compose) // Google - implementation(libs.play.services.ads) - implementation(libs.billing) - implementation(libs.play.services.oss.licenses) - implementation(libs.material) - implementation(libs.app.update.ktx) - implementation(libs.review.ktx) - implementation(libs.volley) + implementation(dependencyNotation = libs.play.services.ads) + implementation(dependencyNotation = libs.billing) + implementation(dependencyNotation = libs.play.services.oss.licenses) + implementation(dependencyNotation = libs.material) + implementation(dependencyNotation = libs.app.update.ktx) + implementation(dependencyNotation = libs.review.ktx) + implementation(dependencyNotation = libs.volley) // Firebase - implementation(platform(libs.firebase.bom)) - implementation(libs.firebase.analytics.ktx) - implementation(libs.firebase.crashlytics.ktx) - implementation(libs.firebase.perf) + implementation(dependencyNotation = platform(libs.firebase.bom)) + implementation(dependencyNotation = libs.firebase.analytics.ktx) + implementation(dependencyNotation = libs.firebase.crashlytics.ktx) + implementation(dependencyNotation = libs.firebase.perf) // Image Compression - implementation(libs.compressor) - implementation(libs.coil.compose) - implementation(libs.coil.video) + implementation(dependencyNotation = libs.compressor) + implementation(dependencyNotation = libs.coil.compose) + implementation(dependencyNotation = libs.coil.video) // Test - testImplementation(libs.junit) - androidTestImplementation(libs.androidx.junit) - androidTestImplementation(libs.androidx.espresso.core) - androidTestImplementation(libs.ui.test.junit4) - debugImplementation(libs.androidx.ui.tooling) - debugImplementation(libs.androidx.ui.test.manifest) + testImplementation(dependencyNotation = libs.junit) + androidTestImplementation(dependencyNotation = libs.androidx.junit) + androidTestImplementation(dependencyNotation = libs.androidx.espresso.core) + androidTestImplementation(dependencyNotation = libs.ui.test.junit4) + debugImplementation(dependencyNotation = libs.androidx.ui.tooling) + debugImplementation(dependencyNotation = libs.androidx.ui.test.manifest) } \ No newline at end of file diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json index dfabfc3..f5b9ba5 100644 --- a/app/release/output-metadata.json +++ b/app/release/output-metadata.json @@ -11,8 +11,8 @@ "type": "SINGLE", "filters": [], "attributes": [], - "versionCode": 97, - "versionName": "2.0.0", + "versionCode": 141, + "versionName": "3.0.0", "outputFile": "app-release.apk" } ], @@ -33,5 +33,5 @@ ] } ], - "minSdkVersionForDexing": 26 + "minSdkVersionForDexing": 23 } \ No newline at end of file diff --git a/app/src/main/kotlin/com/d4rk/cleaner/data/model/ui/screens/UiMainModel.kt b/app/src/main/kotlin/com/d4rk/cleaner/data/model/ui/screens/UiMainModel.kt index c351f7a..8fddd53 100644 --- a/app/src/main/kotlin/com/d4rk/cleaner/data/model/ui/screens/UiMainModel.kt +++ b/app/src/main/kotlin/com/d4rk/cleaner/data/model/ui/screens/UiMainModel.kt @@ -3,7 +3,6 @@ package com.d4rk.cleaner.data.model.ui.screens import com.d4rk.cleaner.data.model.ui.navigation.BottomNavigationScreen data class UiMainModel( - val isNavigationDrawerOpen: Boolean = false, val currentBottomNavigationScreen: BottomNavigationScreen = BottomNavigationScreen.Home, val trashSize: String = "0 KB", ) \ No newline at end of file diff --git a/app/src/main/kotlin/com/d4rk/cleaner/ui/components/navigation/BottomNavigationBar.kt b/app/src/main/kotlin/com/d4rk/cleaner/ui/components/navigation/BottomNavigationBar.kt index 8f865d5..4fce952 100644 --- a/app/src/main/kotlin/com/d4rk/cleaner/ui/components/navigation/BottomNavigationBar.kt +++ b/app/src/main/kotlin/com/d4rk/cleaner/ui/components/navigation/BottomNavigationBar.kt @@ -65,9 +65,13 @@ fun BottomNavigationBar( selected = currentRoute == screen.route, onClick = { view.playSoundEffect(SoundEffectConstants.CLICK) - navController.navigate(screen.route) { - popUpTo(navController.graph.startDestinationId) - launchSingleTop = true + if (currentRoute != screen.route) { + navController.navigate(screen.route) { + popUpTo(navController.graph.startDestinationId) { + saveState = true + } + launchSingleTop = true + } } }) } diff --git a/app/src/main/res/drawable-anydpi/ic_apk_document.xml b/app/src/main/res/drawable-anydpi/ic_apk_document.xml index 32c8e65..40b293a 100644 --- a/app/src/main/res/drawable-anydpi/ic_apk_document.xml +++ b/app/src/main/res/drawable-anydpi/ic_apk_document.xml @@ -1,3 +1,4 @@ + - + \ No newline at end of file diff --git a/app/src/main/res/drawable-anydpi/ic_archive_filter.xml b/app/src/main/res/drawable-anydpi/ic_archive_filter.xml index dc1090e..d811dc3 100644 --- a/app/src/main/res/drawable-anydpi/ic_archive_filter.xml +++ b/app/src/main/res/drawable-anydpi/ic_archive_filter.xml @@ -1,3 +1,4 @@ + diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_shortcut_settings.xml b/app/src/main/res/mipmap-anydpi-v26/ic_shortcut_settings.xml index 902c459..560d844 100644 --- a/app/src/main/res/mipmap-anydpi-v26/ic_shortcut_settings.xml +++ b/app/src/main/res/mipmap-anydpi-v26/ic_shortcut_settings.xml @@ -1,3 +1,4 @@ + diff --git a/app/src/main/res/values-bg-rBG/strings.xml b/app/src/main/res/values-bg-rBG/strings.xml index 1bf4269..b04a68d 100644 --- a/app/src/main/res/values-bg-rBG/strings.xml +++ b/app/src/main/res/values-bg-rBG/strings.xml @@ -1,3 +1,4 @@ + Последният Android Cleaner, от който ще се нуждаете за ежедневна употреба! Достъпна е нова актуализация! diff --git a/app/src/main/res/values-de-rDE/strings.xml b/app/src/main/res/values-de-rDE/strings.xml index ec1386a..bfeac63 100644 --- a/app/src/main/res/values-de-rDE/strings.xml +++ b/app/src/main/res/values-de-rDE/strings.xml @@ -1,3 +1,4 @@ + Der letzte Android-Reiniger, den Sie jemals für den täglichen Gebrauch benötigen werden! Ein neues Update ist verfügbar! diff --git a/app/src/main/res/values-es-rGQ/strings.xml b/app/src/main/res/values-es-rGQ/strings.xml index bf9f5a4..3dd1b06 100644 --- a/app/src/main/res/values-es-rGQ/strings.xml +++ b/app/src/main/res/values-es-rGQ/strings.xml @@ -1,3 +1,4 @@ + ¡El mejor limpiador de Android que jamás necesitarás para el uso diario! ¡Hay una nueva actualización disponible! diff --git a/app/src/main/res/values-fr-rFR/strings.xml b/app/src/main/res/values-fr-rFR/strings.xml index f51e691..c2fc51c 100644 --- a/app/src/main/res/values-fr-rFR/strings.xml +++ b/app/src/main/res/values-fr-rFR/strings.xml @@ -1,3 +1,4 @@ + Le meilleur nettoyeur Android dont vous aurez jamais besoin pour une utilisation quotidienne! Une nouvelle mise à jour est disponible! diff --git a/app/src/main/res/values-hi-rIN/strings.xml b/app/src/main/res/values-hi-rIN/strings.xml index d1908a2..6cf91c0 100644 --- a/app/src/main/res/values-hi-rIN/strings.xml +++ b/app/src/main/res/values-hi-rIN/strings.xml @@ -1,3 +1,4 @@ + हर रोज़ इस्तेमाल के लिए यह आखिरी Android क्लीनर है जिसकी आपको कभी आवश्यकता होगी! नया अपडेट उपलब्ध है! diff --git a/app/src/main/res/values-hu-rHU/strings.xml b/app/src/main/res/values-hu-rHU/strings.xml index 49dc37f..93dc39f 100644 --- a/app/src/main/res/values-hu-rHU/strings.xml +++ b/app/src/main/res/values-hu-rHU/strings.xml @@ -1,3 +1,4 @@ + Az utolsó Android Cleaner, amire valaha szükséged lesz a mindennapi használathoz! Új frissítés érhető el! diff --git a/app/src/main/res/values-in-rID/strings.xml b/app/src/main/res/values-in-rID/strings.xml index 3623e4e..9d9334f 100644 --- a/app/src/main/res/values-in-rID/strings.xml +++ b/app/src/main/res/values-in-rID/strings.xml @@ -1,3 +1,4 @@ + Pembersih Android terakhir yang Anda perlukan untuk penggunaan sehari-hari! Pembaruan baru tersedia! diff --git a/app/src/main/res/values-it-rIT/strings.xml b/app/src/main/res/values-it-rIT/strings.xml index 593fcc9..4c467fa 100644 --- a/app/src/main/res/values-it-rIT/strings.xml +++ b/app/src/main/res/values-it-rIT/strings.xml @@ -1,3 +1,4 @@ + L\'ultimo Android Cleaner di cui avrai bisogno per l\'uso quotidiano! È disponibile un nuovo aggiornamento! diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml index b29f6f4..3659f7a 100644 --- a/app/src/main/res/values-ja-rJP/strings.xml +++ b/app/src/main/res/values-ja-rJP/strings.xml @@ -1,3 +1,4 @@ + 毎日の使用に最適な、これ以上のものはないAndroidクリーナー! 新しいアップデートが利用可能です! diff --git a/app/src/main/res/values-night-v31/colors.xml b/app/src/main/res/values-night-v31/colors.xml index 0a8eaab..ac27e99 100644 --- a/app/src/main/res/values-night-v31/colors.xml +++ b/app/src/main/res/values-night-v31/colors.xml @@ -1,3 +1,4 @@ + @android:color/system_neutral1_800 @android:color/system_accent1_100 diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml index d1b5304..43412f0 100644 --- a/app/src/main/res/values-night/colors.xml +++ b/app/src/main/res/values-night/colors.xml @@ -1,3 +1,4 @@ + #2D2D2D #2E3133 diff --git a/app/src/main/res/values-pl-rPL/strings.xml b/app/src/main/res/values-pl-rPL/strings.xml index 80d67fe..e85aa99 100644 --- a/app/src/main/res/values-pl-rPL/strings.xml +++ b/app/src/main/res/values-pl-rPL/strings.xml @@ -1,3 +1,4 @@ + Ostatni program Android Cleaner, jakiego będziesz potrzebować do codziennego użytku! Dostępna jest nowa aktualizacja! diff --git a/app/src/main/res/values-ro-rRO/strings.xml b/app/src/main/res/values-ro-rRO/strings.xml index c06754c..4346d7a 100644 --- a/app/src/main/res/values-ro-rRO/strings.xml +++ b/app/src/main/res/values-ro-rRO/strings.xml @@ -1,3 +1,4 @@ + Ultima aplicație de curățare Android de care vei avea nevoie vreodată, pentru utilizare zilnică! O nouă actualizare este disponibilă! diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index 5862219..f83ba6b 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -1,3 +1,4 @@ + Последний Android Cleaner, который вам когда-либо понадобится для ежедневного использования! Доступно новое обновление! diff --git a/app/src/main/res/values-sv-rSE/strings.xml b/app/src/main/res/values-sv-rSE/strings.xml index c79a86b..b73203a 100644 --- a/app/src/main/res/values-sv-rSE/strings.xml +++ b/app/src/main/res/values-sv-rSE/strings.xml @@ -1,3 +1,4 @@ + Den enda Android Cleaner du någonsin kommer att behöva för vardagligt bruk! En ny uppdatering är tillgänglig! diff --git a/app/src/main/res/values-tr-rTR/strings.xml b/app/src/main/res/values-tr-rTR/strings.xml index 70bdc03..e855412 100644 --- a/app/src/main/res/values-tr-rTR/strings.xml +++ b/app/src/main/res/values-tr-rTR/strings.xml @@ -1,3 +1,4 @@ + Günlük kullanım için ihtiyacınız olacak son Android Temizleyici! Yeni bir güncelleme mevcut! diff --git a/app/src/main/res/values-uk-rUA/strings.xml b/app/src/main/res/values-uk-rUA/strings.xml index 74b9d36..c104f85 100644 --- a/app/src/main/res/values-uk-rUA/strings.xml +++ b/app/src/main/res/values-uk-rUA/strings.xml @@ -1,3 +1,4 @@ + Останній Android Cleaner, який вам коли-небудь знадобиться для щоденного використання! Доступне нове оновлення! diff --git a/app/src/main/res/values-v31/colors.xml b/app/src/main/res/values-v31/colors.xml index 02d8ab1..2888941 100644 --- a/app/src/main/res/values-v31/colors.xml +++ b/app/src/main/res/values-v31/colors.xml @@ -1,3 +1,4 @@ + @android:color/system_accent1_100 @android:color/system_neutral1_700 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 40a3b3a..16bbf57 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -1,3 +1,4 @@ + 你每天都需要用到的最後一個 Android 清潔工具! 有新更新可用! diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index 94ce013..f2590e1 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -1,3 +1,4 @@ + @string/images diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 4dcb7dd..ddd38cb 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -1,3 +1,4 @@ + #C1E8FF #454749 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 70d3531..c5579ab 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,3 +1,4 @@ + The last Android Cleaner you will ever need for every day use! A new update available! diff --git a/app/src/main/res/values/untranslatable_strings.xml b/app/src/main/res/values/untranslatable_strings.xml index f2a154e..c2062ed 100644 --- a/app/src/main/res/values/untranslatable_strings.xml +++ b/app/src/main/res/values/untranslatable_strings.xml @@ -1,3 +1,4 @@ + Cleaner Cleaner for Android diff --git a/app/src/main/res/xml-v25/shortcuts.xml b/app/src/main/res/xml-v25/shortcuts.xml index d0dbd13..fa2617f 100644 --- a/app/src/main/res/xml-v25/shortcuts.xml +++ b/app/src/main/res/xml-v25/shortcuts.xml @@ -1,3 +1,4 @@ + diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index cf7cd2f..a6a6ae0 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,38 +1,38 @@ [versions] -agp = "8.7.1" +agp = "8.7.2" appcompat = "1.7.0" appUpdateKtx = "2.1.0" billing = "7.1.1" coilCompose = "2.7.0" coilVideo = "2.7.0" -composeBom = "2024.10.00" +composeBom = "2024.10.01" compressor = "3.0.1" -constraintlayoutCompose = "1.0.1" +constraintlayoutCompose = "1.1.0" coreSplashscreen = "1.0.1" datastoreCore = "1.1.1" firebaseBom = "33.5.1" kotlinxSerializationJson = "1.7.3" -lifecycle = "2.8.6" +lifecycle = "2.8.7" volley = "1.2.1" kotlin = "2.0.10" -coreKtx = "1.13.1" +coreKtx = "1.15.0" junit = "4.13.2" junitVersion = "1.2.1" espressoCore = "3.6.1" kotlinxCoroutinesAndroid = "1.9.0" activityCompose = "1.9.3" -composeUi = "1.7.4" -composeMaterial3 = "1.3.0" +composeUi = "1.7.5" +composeMaterial3 = "1.3.1" google-services = "4.4.2" google-oss-services = "0.10.6" google-firebase-crashlytics = "3.0.2" material = "1.12.0" multidex = "2.0.1" navigationCompose = "2.8.3" -playServicesAds = "23.3.0" +playServicesAds = "23.5.0" playServicesOssLicenses = "17.1.0" reviewKtx = "2.0.2" -workRuntimeKtx = "2.9.1" +workRuntimeKtx = "2.10.0" [libraries] androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "appcompat" }