@@ -3,77 +3,92 @@ plugins {
33 alias(libs.plugins.kotlin.android)
44 alias(libs.plugins.ksp)
55 alias(libs.plugins.kotlin.serialization)
6+ id(" io.objectbox" )
7+ id(" io.gitlab.arturbosch.detekt" )
68}
79
810android {
9- namespace ' me.grey.picquery'
10- compileSdk 34
11+ namespace = " me.grey.picquery"
12+ compileSdk = 36
1113
1214 defaultConfig {
13- applicationId " me.grey.picquery"
14- minSdk 29
15- targetSdk 35
16- versionCode 8
17- versionName " 1.2.0"
15+ applicationId = " me.grey.picquery"
16+ minSdk = 29
17+ targetSdk = 35
18+ versionCode = 8
19+ versionName = " 1.2.0"
1820
19- testInstrumentationRunner " androidx.test.runner.AndroidJUnitRunner"
21+ testInstrumentationRunner = " androidx.test.runner.AndroidJUnitRunner"
2022 vectorDrawables {
21- useSupportLibrary true
23+ useSupportLibrary = true
2224 }
2325
2426 ndk {
2527 // noinspection ChromeOsAbiSupport
26- abiFilters ' armeabi-v7a' , ' arm64-v8a'
28+ abiFilters + = listOf ( " armeabi-v7a" , " arm64-v8a" )
2729 }
2830 }
2931
3032 buildTypes {
3133 debug {}
3234
3335 release {
34- minifyEnabled true
35- shrinkResources true
36- proguardFiles getDefaultProguardFile(' proguard-android-optimize.txt' ), ' proguard-rules.pro'
36+ isMinifyEnabled = true
37+ isShrinkResources = true
38+ proguardFiles(
39+ getDefaultProguardFile(" proguard-android-optimize.txt" ),
40+ " proguard-rules.pro"
41+ )
3742 }
3843 }
3944
4045 compileOptions {
41- sourceCompatibility JavaVersion . VERSION_17
42- targetCompatibility JavaVersion . VERSION_17
46+ sourceCompatibility = JavaVersion .VERSION_17
47+ targetCompatibility = JavaVersion .VERSION_17
4348 }
4449 kotlinOptions {
45- jvmTarget = ' 17 '
50+ jvmTarget = " 17 "
4651 }
4752
4853 buildFeatures {
49- compose true
54+ compose = true
5055 }
5156 composeOptions {
52- kotlinCompilerExtensionVersion libs. versions. compose. compiler. get()
57+ kotlinCompilerExtensionVersion = libs.versions.compose.compiler.get()
5358 }
54- packagingOptions {
59+ packaging {
5560 resources {
56- excludes + = ' /META-INF/{AL2.0,LGPL2.1}'
61+ excludes.add( " /META-INF/{AL2.0,LGPL2.1}" )
5762 }
5863 }
59- buildToolsVersion = ' 34.0.0'
64+ buildToolsVersion = " 34.0.0"
6065}
6166
6267dependencies {
63- def composeBom = platform(libs. compose. bom)
64- implementation composeBom
65- androidTestImplementation composeBom
68+ // Bill of Materials
69+ val composeBom = platform(libs.compose.bom)
70+ implementation(composeBom)
71+ androidTestImplementation(composeBom)
72+
73+ // Implementation dependencies
74+ implementation(libs.androidx.core.ktx)
75+ implementation(libs.androidx.lifecycle.runtime)
76+ implementation(libs.androidx.lifecycle.livedata)
77+ implementation(libs.androidx.lifecycle.viewmodel)
78+ implementation(libs.androidx.activity.compose)
79+ implementation(libs.androidx.legacy)
80+ implementation(libs.androidx.datastore)
81+ implementation(libs.androidx.dataStore)
82+ implementation(libs.androidx.work.runtime)
83+ implementation(libs.androidx.navigation.compose)
84+ implementation(libs.androidx.splashscreen)
6685
6786 // Compose
6887 implementation(libs.compose.ui)
6988 implementation(libs.compose.ui.graphics)
7089 implementation(libs.compose.ui.tooling.preview)
7190 implementation(libs.compose.material3)
7291 implementation(libs.compose.material.icons.extended)
73- debugImplementation(libs. compose. ui. tooling)
74-
75- // SplashScreen
76- implementation(libs. androidx. splashscreen)
7792
7893 // Accompanist
7994 implementation(libs.accompanist.systemuicontroller)
@@ -87,61 +102,67 @@ dependencies {
87102 implementation(libs.koin.androidx.compose)
88103 implementation(libs.koin.androidx.compose.navigation)
89104
90- // DataStore
91- implementation(libs. androidx. dataStore)
92-
93105 // Coroutines
94106 implementation(libs.coroutines.core)
95107 implementation(libs.coroutines.android)
96108
97109 // Serialization
98110 implementation(libs.kotlinx.serialization)
99111
100- // AndroidX
101- implementation(libs. androidx. core. ktx)
102- implementation(libs. androidx. lifecycle. runtime)
103- implementation(libs. androidx. activity. compose)
104- implementation(libs. androidx. legacy)
105- implementation(libs. androidx. test. monitor)
106- implementation(libs. androidx. test. ext)
107- implementation(libs. androidx. lifecycle. livedata)
108- implementation(libs. androidx. lifecycle. viewmodel)
109- implementation(libs. androidx. datastore)
110- implementation(libs. androidx. work. runtime)
111- implementation(libs. androidx. navigation. compose)
112-
113112 // Room
114113 implementation(libs.room.runtime)
115114 implementation(libs.room.ktx)
116- ksp(libs. room. compiler)
117115
118116 // Logging
119117 implementation(libs.timber)
120118
121119 // Image Loading
122120 implementation(libs.glide)
123121 implementation(libs.glide.compose)
124- annotationProcessor(libs. glide. compiler)
125122
126123 // Other Libraries
127124 implementation(libs.zoomable)
128125 implementation(libs.permissionx)
126+ implementation(libs.work.runtime)
129127
130128 // AI & ML
131129 implementation(libs.onnx.runtime)
132130 implementation(libs.mlkit.translate)
133131
134- // / LiteRT
135- implementation libs. litert
136- implementation libs. litert. support
137- implementation libs. litert. gpu. api
138- implementation libs. litert. gpu
132+ // LiteRT
133+ implementation(libs.litert)
134+ implementation(libs.litert.support)
135+ implementation(libs.litert.gpu.api)
136+ implementation(libs.litert.gpu)
137+
138+ // Debug implementation
139+ debugImplementation(libs.compose.ui.tooling)
140+
141+ // Annotation processors
142+ annotationProcessor(libs.glide.compiler)
139143
140- // Testing
144+ // KSP
145+ ksp(libs.room.compiler)
146+
147+ // Test implementation
141148 testImplementation(libs.junit)
149+
150+ // Android test implementation
142151 androidTestImplementation(libs.androidx.test.ext)
143152 androidTestImplementation(libs.espresso.core)
153+ androidTestImplementation(libs.androidx.test.monitor)
154+ androidTestImplementation(libs.androidx.test.ext)
155+ }
144156
145- implementation libs. androidx. work. runtime
146- implementation libs. work. runtime
147- }
157+ detekt {
158+ toolVersion = " 1.23.3"
159+ config.setFrom(files(" ${project.rootDir} /config/detekt/detekt.yml" ))
160+ buildUponDefaultConfig = true
161+ autoCorrect = true
162+ parallel = true
163+ ignoreFailures = true // Set to true to make detekt non-blocking
164+ }
165+
166+ tasks.withType< io.gitlab.arturbosch.detekt.Detekt > ().configureEach {
167+ jvmTarget = " 17"
168+ }
0 commit comments