@@ -2,9 +2,11 @@ plugins {
22 id ' com.android.application'
33 id ' kotlin-android'
44 id ' kotlin-kapt'
5+ id ' kotlin-parcelize'
6+ id ' kotlinx-serialization'
57 id ' dagger.hilt.android.plugin'
68 id ' com.google.gms.google-services'
7- id ' kotlin-parcelize '
9+ id ' com.google.firebase.crashlytics '
810}
911
1012android {
@@ -13,14 +15,14 @@ android {
1315
1416 defaultConfig {
1517 applicationId " com.github.muneebwanee.dash"
16- minSdk 24
18+ minSdk 26
1719 targetSdk 34
18- versionCode 1
20+ versionCode 2
1921 versionName " 3.0.0"
2022 multiDexEnabled true
2123 testInstrumentationRunner " androidx.test.runner.AndroidJUnitRunner"
2224
23- // Secure API key management
25+ // Secure configuration
2426 Properties properties = new Properties ()
2527 if (rootProject. file(" local.properties" ). exists()) {
2628 properties. load(rootProject. file(" local.properties" ). newDataInputStream())
@@ -42,32 +44,41 @@ android {
4244 buildTypes {
4345 release {
4446 minifyEnabled true
47+ shrinkResources true
4548 proguardFiles getDefaultProguardFile(' proguard-android-optimize.txt' ), ' proguard-rules.pro'
4649 }
4750 debug {
4851 applicationIdSuffix " .debug"
4952 debuggable true
53+ minifyEnabled false
5054 }
5155 }
5256
5357 compileOptions {
54- sourceCompatibility JavaVersion . VERSION_1_8
55- targetCompatibility JavaVersion . VERSION_1_8
58+ sourceCompatibility JavaVersion . VERSION_17
59+ targetCompatibility JavaVersion . VERSION_17
5660 }
5761
5862 kotlinOptions {
59- jvmTarget = ' 1.8 '
63+ jvmTarget = ' 17 '
6064 freeCompilerArgs + = [
6165 " -opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi" ,
62- " -opt-in=androidx.compose.material3.ExperimentalMaterial3Api"
66+ " -opt-in=androidx.compose.material3.ExperimentalMaterial3Api" ,
67+ " -opt-in=kotlinx.serialization.ExperimentalSerializationApi"
6368 ]
6469 }
6570
6671 packagingOptions {
6772 resources {
68- excludes + = ' /META-INF/{AL2.0,LGPL2.1}'
73+ excludes + = [ ' /META-INF/{AL2.0,LGPL2.1}' , ' /META-INF/gradle/incremental.annotation.processors ' ]
6974 }
7075 }
76+
77+ lint {
78+ checkReleaseBuilds false
79+ abortOnError false
80+ disable ' MissingTranslation'
81+ }
7182}
7283
7384dependencies {
@@ -78,6 +89,7 @@ dependencies {
7889 implementation ' androidx.fragment:fragment-ktx:1.6.2'
7990 implementation ' androidx.constraintlayout:constraintlayout:2.1.4'
8091 implementation ' androidx.multidex:multidex:2.0.1'
92+ implementation ' androidx.startup:startup-runtime:1.1.1'
8193
8294 // Material Design 3
8395 implementation ' com.google.android.material:material:1.11.0'
@@ -87,6 +99,7 @@ dependencies {
8799 implementation ' androidx.compose.ui:ui'
88100 implementation ' androidx.compose.ui:ui-tooling-preview'
89101 implementation ' androidx.compose.material3:material3'
102+ implementation ' androidx.compose.material:material-icons-extended'
90103 implementation ' androidx.activity:activity-compose:1.8.2'
91104 implementation ' androidx.lifecycle:lifecycle-viewmodel-compose:2.7.0'
92105 implementation ' androidx.navigation:navigation-compose:2.7.5'
@@ -96,6 +109,7 @@ dependencies {
96109 implementation ' androidx.lifecycle:lifecycle-livedata-ktx:2.7.0'
97110 implementation ' androidx.lifecycle:lifecycle-runtime-ktx:2.7.0'
98111 implementation ' androidx.lifecycle:lifecycle-runtime-compose:2.7.0'
112+ implementation ' androidx.lifecycle:lifecycle-process:2.7.0'
99113
100114 // Navigation
101115 implementation ' androidx.navigation:navigation-fragment-ktx:2.7.5'
@@ -111,6 +125,7 @@ dependencies {
111125
112126 // DataStore (modern SharedPreferences)
113127 implementation ' androidx.datastore:datastore-preferences:1.0.0'
128+ implementation ' androidx.datastore:datastore-core:1.0.0'
114129
115130 // Firebase BOM for version management
116131 implementation platform(' com.google.firebase:firebase-bom:32.7.0' )
@@ -119,43 +134,41 @@ dependencies {
119134 implementation ' com.google.firebase:firebase-storage'
120135 implementation ' com.google.firebase:firebase-analytics'
121136 implementation ' com.google.firebase:firebase-crashlytics'
137+ implementation ' com.google.firebase:firebase-messaging'
122138
123139 // Google Play Services
124140 implementation ' com.google.android.gms:play-services-maps:18.2.0'
125141 implementation ' com.google.android.gms:play-services-location:21.0.1'
142+ implementation ' com.google.android.gms:play-services-auth:20.7.0'
126143
127144 // Dependency Injection - Hilt
128- implementation " com.google.dagger:hilt-android:$h ilt_version "
145+ implementation ' com.google.dagger:hilt-android:2.48.1 '
129146 implementation ' androidx.hilt:hilt-work:1.1.0'
130147 implementation ' androidx.hilt:hilt-navigation-compose:1.1.0'
131- kapt " com.google.dagger:hilt-compiler:$h ilt_version "
148+ kapt ' com.google.dagger:hilt-compiler:2.48.1 '
132149 kapt ' androidx.hilt:hilt-compiler:1.1.0'
133150
134151 // Coroutines & Flow
135152 implementation ' org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3'
136153 implementation ' org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.7.3'
137154
138- // RxJava3 (for legacy compatibility)
139- implementation ' io.reactivex.rxjava3:rxjava:3.1.8'
140- implementation ' io.reactivex.rxjava3:rxandroid:3.0.2'
141- implementation ' io.reactivex.rxjava3:rxkotlin:3.0.1'
142-
143155 // Networking & Serialization
144156 implementation ' com.squareup.retrofit2:retrofit:2.9.0'
145157 implementation ' com.squareup.retrofit2:converter-gson:2.9.0'
146158 implementation ' com.squareup.okhttp3:logging-interceptor:4.12.0'
147159 implementation ' org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.0'
148160
149161 // Image Loading
150- implementation " com.github.bumptech.glide:glide:$g lide_version "
162+ implementation ' com.github.bumptech.glide:glide:4.16.0 '
151163 implementation ' io.coil-kt:coil-compose:2.5.0'
152- kapt " com.github.bumptech.glide:compiler:$g lide_version "
164+ kapt ' com.github.bumptech.glide:compiler:4.16.0 '
153165
154166 // Camera
155167 implementation ' androidx.camera:camera-core:1.3.1'
156168 implementation ' androidx.camera:camera-camera2:1.3.1'
157169 implementation ' androidx.camera:camera-lifecycle:1.3.1'
158170 implementation ' androidx.camera:camera-view:1.3.1'
171+ implementation ' androidx.camera:camera-extensions:1.3.1'
159172
160173 // Permissions
161174 implementation ' com.google.accompanist:accompanist-permissions:0.32.0'
@@ -165,13 +178,19 @@ dependencies {
165178 implementation ' com.airbnb.android:lottie:6.2.0'
166179 implementation ' com.github.PhilJay:MPAndroidChart:v3.1.0'
167180
168- // Security
181+ // Security & Encryption
169182 implementation ' androidx.security:security-crypto:1.1.0-alpha06'
183+ implementation ' androidx.biometric:biometric:1.1.0'
184+
185+ // Modern replacements for old libraries
186+ implementation ' com.jakewharton.timber:timber:5.0.1'
187+ implementation ' androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
170188
171189 // Testing
172190 testImplementation ' junit:junit:4.13.2'
173191 testImplementation ' org.mockito:mockito-core:5.7.0'
174192 testImplementation ' org.jetbrains.kotlinx:kotlinx-coroutines-test:1.7.3'
193+ testImplementation ' androidx.arch.core:core-testing:2.2.0'
175194 androidTestImplementation ' androidx.test.ext:junit:1.1.5'
176195 androidTestImplementation ' androidx.test.espresso:espresso-core:3.5.1'
177196 androidTestImplementation ' androidx.compose.ui:ui-test-junit4'
0 commit comments