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" }