diff --git a/agrilinkvocpro/app/build.gradle.kts b/agrilinkvocpro/app/build.gradle.kts index 717be70..94444cc 100644 --- a/agrilinkvocpro/app/build.gradle.kts +++ b/agrilinkvocpro/app/build.gradle.kts @@ -2,9 +2,7 @@ plugins { alias(libs.plugins.android.application) alias(libs.plugins.kotlin.android) alias(libs.plugins.kotlin.compose) - id("com.google.gms.google-services") - id("com.google.devtools.ksp") - id("com.google.dagger.hilt.android") + alias(libs.plugins.google.services) } android { @@ -15,8 +13,8 @@ android { applicationId = "com.syaroful.agrilinkvocpro" minSdk = 29 targetSdk = 35 - versionCode = 3 - versionName = "1.0.0" + versionCode = 11 + versionName = "1.0.3" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } @@ -31,21 +29,26 @@ android { } } compileOptions { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 } kotlinOptions { - jvmTarget = "1.8" + jvmTarget = "11" } buildFeatures { compose = true } - dynamicFeatures += setOf(":control_feature", ":diseasedetection_feature") + dynamicFeatures += setOf( + ":control_feature", + ":plant_disease_detection_feature", + ":growth_recipe_feature", + ":commodity_price_prediction_feature" + ) } dependencies { -// Android Core and Lifecycle + // Android Core and Lifecycle implementation(libs.androidx.core.ktx) implementation(libs.androidx.lifecycle.runtime.ktx) @@ -72,18 +75,34 @@ dependencies { implementation(platform(libs.firebase.bom)) // BOM for consistent Firebase versions implementation(libs.firebase.database) - // ViewModel - implementation(libs.androidx.lifecycle.viewmodel.compose) + //jwt token + implementation(libs.java.jwt) // Dynamic Feature Modules implementation(libs.feature.delivery) implementation(libs.feature.delivery.ktx) - // Dependency Injection - implementation(libs.hilt.android) - ksp(libs.hilt.android.compiler) - // navigation with compose implementation(libs.androidx.navigation.compose) + // API Request + implementation(libs.retrofit) + implementation(libs.converter.gson) + implementation(libs.retrofit2.kotlinx.serialization.converter) + implementation(libs.okhttp) + implementation(libs.logging.interceptor) + + // preference manager + implementation(libs.androidx.datastore.preferences) + + // Koin Core viewModel + implementation(libs.koin.android) + implementation(libs.koin.androidx.compose) + + // pull to refresh + implementation(libs.accompanist.swiperefresh) + + //graphic chat by Ycharts + implementation(libs.ycharts) + } \ No newline at end of file diff --git a/agrilinkvocpro/app/release/app-release.aab b/agrilinkvocpro/app/release/app-release.aab index a47f002..b6760d2 100644 Binary files a/agrilinkvocpro/app/release/app-release.aab and b/agrilinkvocpro/app/release/app-release.aab differ diff --git a/agrilinkvocpro/build.gradle.kts b/agrilinkvocpro/build.gradle.kts index b27963e..c5f972f 100644 --- a/agrilinkvocpro/build.gradle.kts +++ b/agrilinkvocpro/build.gradle.kts @@ -3,8 +3,8 @@ plugins { alias(libs.plugins.android.application) apply false alias(libs.plugins.kotlin.android) apply false alias(libs.plugins.kotlin.compose) apply false - id("com.google.gms.google-services") version "4.4.2" apply false + alias(libs.plugins.google.services) apply false alias(libs.plugins.android.dynamic.feature) apply false - id("com.google.devtools.ksp") version "2.0.21-1.0.27" apply false - id("com.google.dagger.hilt.android") version "2.56.2" apply false + alias(libs.plugins.ksp) apply false + alias(libs.plugins.hilt.android) apply false } \ No newline at end of file diff --git a/agrilinkvocpro/commodity_price_prediction_feature/build.gradle.kts b/agrilinkvocpro/commodity_price_prediction_feature/build.gradle.kts new file mode 100644 index 0000000..e2e7810 --- /dev/null +++ b/agrilinkvocpro/commodity_price_prediction_feature/build.gradle.kts @@ -0,0 +1,53 @@ +plugins { + alias(libs.plugins.android.dynamic.feature) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.kotlin.compose) +} +android { + namespace = "com.syaroful.agrilinkvocpro.commodity_price_prediction_feature" + compileSdk = 35 + + defaultConfig { + minSdk = 29 + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } + kotlinOptions { + jvmTarget = "11" + } + buildFeatures { + compose = true + } +} + +dependencies { + implementation(project(":app")) + implementation(libs.androidx.core.ktx) + implementation(libs.androidx.lifecycle.runtime.ktx) + implementation(libs.androidx.activity.compose) + implementation(platform(libs.androidx.compose.bom)) + implementation(libs.androidx.ui) + implementation(libs.androidx.ui.graphics) + implementation(libs.androidx.ui.tooling.preview) + implementation(libs.androidx.material3) + testImplementation(libs.junit) + androidTestImplementation(libs.androidx.junit) + androidTestImplementation(libs.androidx.espresso.core) + androidTestImplementation(platform(libs.androidx.compose.bom)) + androidTestImplementation(libs.androidx.ui.test.junit4) + debugImplementation(libs.androidx.ui.tooling) + debugImplementation(libs.androidx.ui.test.manifest) +} \ No newline at end of file diff --git a/agrilinkvocpro/control_feature/build.gradle.kts b/agrilinkvocpro/control_feature/build.gradle.kts index 3502f4a..437cca0 100644 --- a/agrilinkvocpro/control_feature/build.gradle.kts +++ b/agrilinkvocpro/control_feature/build.gradle.kts @@ -2,6 +2,9 @@ plugins { alias(libs.plugins.android.dynamic.feature) alias(libs.plugins.kotlin.android) alias(libs.plugins.kotlin.compose) +// alias(libs.plugins.google.services) +// alias(libs.plugins.ksp) +// alias(libs.plugins.hilt.android) } android { namespace = "com.syaroful.agrilinkvocpro.control_feature" diff --git a/agrilinkvocpro/diseasedetection_feature/build.gradle.kts b/agrilinkvocpro/diseasedetection_feature/build.gradle.kts deleted file mode 100644 index bd84088..0000000 --- a/agrilinkvocpro/diseasedetection_feature/build.gradle.kts +++ /dev/null @@ -1,37 +0,0 @@ -plugins { - alias(libs.plugins.android.dynamic.feature) - alias(libs.plugins.kotlin.android) -} -android { - namespace = "com.syaroful.agrilinkvocpro.diseasedetection_feature" - compileSdk = 35 - - defaultConfig { - minSdk = 29 - testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - } - - buildTypes { - release { - isMinifyEnabled = false - proguardFiles( - "proguard-rules-dynamic-features.pro" - ) - } - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 - } - kotlinOptions { - jvmTarget = "1.8" - } -} - -dependencies { - implementation(project(":app")) - implementation(libs.androidx.core.ktx) - testImplementation(libs.junit) - androidTestImplementation(libs.androidx.junit) - androidTestImplementation(libs.androidx.espresso.core) -} \ No newline at end of file diff --git a/agrilinkvocpro/growth_recipe_feature/build.gradle.kts b/agrilinkvocpro/growth_recipe_feature/build.gradle.kts new file mode 100644 index 0000000..239bfc9 --- /dev/null +++ b/agrilinkvocpro/growth_recipe_feature/build.gradle.kts @@ -0,0 +1,90 @@ +plugins { + alias(libs.plugins.android.dynamic.feature) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.kotlin.compose) +} +android { + namespace = "com.syaroful.agrilinkvocpro.growth_recipe_feature" + compileSdk = 35 + + defaultConfig { + minSdk = 29 + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } + kotlinOptions { + jvmTarget = "11" + } + buildFeatures { + compose = true + } +} + +dependencies { + implementation(project(":app")) + + // Android Core and Lifecycle + implementation(libs.androidx.core.ktx) + implementation(libs.androidx.lifecycle.runtime.ktx) + + // Jetpack Compose UI + implementation(libs.androidx.activity.compose) + implementation(platform(libs.androidx.compose.bom)) // BOM for consistent Compose versions + implementation(libs.androidx.ui) + implementation(libs.androidx.ui.graphics) + implementation(libs.androidx.ui.tooling.preview) + implementation(libs.androidx.material3) + + // Testing Dependencies + testImplementation(libs.junit) + androidTestImplementation(libs.androidx.junit) + androidTestImplementation(libs.androidx.espresso.core) + androidTestImplementation(platform(libs.androidx.compose.bom)) // BOM for consistent Compose test versions + androidTestImplementation(libs.androidx.ui.test.junit4) + + // Debugging Dependencies + debugImplementation(libs.androidx.ui.tooling) + debugImplementation(libs.androidx.ui.test.manifest) + + // Firebase Services + implementation(platform(libs.firebase.bom)) // BOM for consistent Firebase versions + implementation(libs.firebase.database) + + //jwt token + implementation(libs.java.jwt) + + // Dynamic Feature Modules + implementation(libs.feature.delivery) + implementation(libs.feature.delivery.ktx) + + // navigation with compose + implementation(libs.androidx.navigation.compose) + + // API Request + implementation(libs.retrofit) + implementation(libs.converter.gson) + implementation(libs.retrofit2.kotlinx.serialization.converter) + implementation(libs.okhttp) + implementation(libs.logging.interceptor) + + // preference manager + implementation(libs.androidx.datastore.preferences) + + // Koin Core viewModel + implementation(libs.koin.android) + implementation(libs.koin.androidx.compose) + +} \ No newline at end of file diff --git a/agrilinkvocpro/plant_disease_detection_feature/build.gradle.kts b/agrilinkvocpro/plant_disease_detection_feature/build.gradle.kts new file mode 100644 index 0000000..0e44ced --- /dev/null +++ b/agrilinkvocpro/plant_disease_detection_feature/build.gradle.kts @@ -0,0 +1,98 @@ +plugins { + alias(libs.plugins.android.dynamic.feature) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.kotlin.compose) + id("org.jetbrains.kotlin.plugin.serialization") version "1.9.10" +// alias(libs.plugins.google.services) +// alias(libs.plugins.ksp) +// alias(libs.plugins.hilt.android) +} +android { + namespace = "com.syaroful.agrilinkvocpro.plant_disease_detection_feature" + compileSdk = 35 + + defaultConfig { + minSdk = 29 + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } + kotlinOptions { + jvmTarget = "11" + } + buildFeatures { + compose = true + } +} + +dependencies { + implementation(project(":app")) + // Android Core and Lifecycle + implementation(libs.androidx.core.ktx) + implementation(libs.androidx.lifecycle.runtime.ktx) + implementation(libs.androidx.runtime) + + // Jetpack Compose UI + implementation(libs.androidx.activity.compose) + implementation(platform(libs.androidx.compose.bom)) // BOM for consistent Compose versions + implementation(libs.androidx.ui) + implementation(libs.androidx.ui.graphics) + implementation(libs.androidx.ui.tooling.preview) + implementation(libs.androidx.material3) + + // Testing Dependencies + testImplementation(libs.junit) + androidTestImplementation(libs.androidx.junit) + androidTestImplementation(libs.androidx.espresso.core) + androidTestImplementation(platform(libs.androidx.compose.bom)) // BOM for consistent Compose test versions + androidTestImplementation(libs.androidx.ui.test.junit4) + + // Debugging Dependencies + debugImplementation(libs.androidx.ui.tooling) + debugImplementation(libs.androidx.ui.test.manifest) + + // ViewModel + implementation(libs.androidx.lifecycle.viewmodel.compose) + + // Dynamic Feature Modules + implementation(libs.feature.delivery) + implementation(libs.feature.delivery.ktx) + + // navigation with compose + implementation(libs.androidx.navigation.compose) + + // API Request + implementation(libs.retrofit) + implementation(libs.converter.gson) + implementation(libs.retrofit2.kotlinx.serialization.converter) + implementation(libs.okhttp) + implementation(libs.logging.interceptor) + + // Kotlinx Serialization + implementation(libs.kotlinx.serialization.json.v160) + + // preference manager + implementation(libs.androidx.datastore.preferences) + + // camera + implementation(libs.androidx.camera.core) + implementation(libs.androidx.camera.camera2) + implementation(libs.androidx.camera.lifecycle) + implementation(libs.androidx.camera.view) + + // Koin Core viewModel + implementation(libs.koin.android) + implementation(libs.koin.androidx.compose) +} \ No newline at end of file