From 952c373570bed3354c24384dbc0082b44becf0b3 Mon Sep 17 00:00:00 2001 From: sanjeok77 <1+sanjeok77@noreply.localhost> Date: Thu, 20 Aug 2026 23:16:22 +0000 Subject: [PATCH] =?UTF-8?q?v0.2.4:=20Add=20ArcaLive=20(=EC=95=84=EC=B9=B4?= =?UTF-8?q?=EB=9D=BC=EC=9D=B4=EB=B8=8C)=20hotdeal=20support=20&=20settings?= =?UTF-8?q?=20toggle=20&=20main=20filter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle.kts | 324 +++++++++++++++++++++---------------------- 1 file changed, 162 insertions(+), 162 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index d072e62..9e3bf39 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,162 +1,162 @@ -import java.util.Properties -import java.io.FileInputStream - -// Load keystore properties -val keystorePropertiesFile = rootProject.file("app/key.properties") -val keystoreProperties = Properties() -if (keystorePropertiesFile.exists()) { - keystoreProperties.load(FileInputStream(keystorePropertiesFile)) -} - - -plugins { - id("com.android.application") - id("org.jetbrains.kotlin.android") - id("com.google.dagger.hilt.android") - id("com.google.devtools.ksp") -} - -android { - namespace = "com.hotdeal.alarm" - compileSdk = 35 - - defaultConfig { - applicationId = "com.hotdeal.alarm" - minSdk = 31 - targetSdk = 35 - versionCode = 23 - versionName = "1.11.6" - - testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - vectorDrawables { - useSupportLibrary = true - } - } - - signingConfigs { - create("release") { - keyAlias = keystoreProperties["keyAlias"] as String? - keyPassword = keystoreProperties["keyPassword"] as String? - storeFile = keystoreProperties["storeFile"]?.let { file("$it") } - storePassword = keystoreProperties["storePassword"] as String? - } - } - - buildTypes { - release { - isMinifyEnabled = true - isShrinkResources = true - proguardFiles( - getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" - ) - signingConfig = signingConfigs.getByName("release") - } - debug { - isMinifyEnabled = false - } - } - - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } - - kotlinOptions { - jvmTarget = "17" - freeCompilerArgs += listOf( - "-opt-in=androidx.compose.material3.ExperimentalMaterial3Api", - "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi", - "-opt-in=kotlinx.coroutines.FlowPreview", - "-opt-in=androidx.compose.foundation.ExperimentalFoundationApi" - ) - } - - buildFeatures { - compose = true - buildConfig = true - } - - composeOptions { - kotlinCompilerExtensionVersion = "1.5.8" - } - - packaging { - resources { - excludes += "/META-INF/{AL2.0,LGPL2.1}" - excludes += "/META-INF/DEPENDENCIES" - } - } - - testOptions { - unitTests { - isIncludeAndroidResources = true - all { - it.testLogging { - events("passed", "failed", "skipped") - showStandardStreams = true - } - } - } - } -} - -dependencies { - // Kotlin - implementation("org.jetbrains.kotlin:kotlin-stdlib:1.9.22") - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3") - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3") - - // AndroidX Core - implementation("androidx.core:core-ktx:1.12.0") - implementation("androidx.appcompat:appcompat:1.6.1") - implementation("androidx.activity:activity-compose:1.8.2") - implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.7.0") - implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.7.0") - implementation("androidx.lifecycle:lifecycle-runtime-compose:2.7.0") - - // Jetpack Compose - implementation(platform("androidx.compose:compose-bom:2024.02.00")) - implementation("androidx.compose.ui:ui") - implementation("androidx.compose.ui:ui-graphics") - implementation("androidx.compose.ui:ui-tooling-preview") - implementation("androidx.compose.material3:material3") - implementation("androidx.compose.material:material-icons-extended") - implementation("androidx.navigation:navigation-compose:2.7.6") - - // Hilt Dependency Injection - implementation("com.google.dagger:hilt-android:2.50") - ksp("com.google.dagger:hilt-compiler:2.50") - implementation("androidx.hilt:hilt-navigation-compose:1.1.0") - implementation("androidx.hilt:hilt-work:1.1.0") - ksp("androidx.hilt:hilt-compiler:1.1.0") - - // Room Database - implementation("androidx.room:room-runtime:2.6.1") - implementation("androidx.room:room-ktx:2.6.1") - ksp("androidx.room:room-compiler:2.6.1") - - // DataStore Preferences - implementation("androidx.datastore:datastore-preferences:1.0.0") - - // WorkManager - implementation("androidx.work:work-runtime-ktx:2.9.0") - - // OkHttp & Jsoup (Web Scraping) - implementation("com.squareup.okhttp3:okhttp:4.12.0") - implementation("com.squareup.okhttp3:logging-interceptor:4.12.0") - implementation("org.jsoup:jsoup:1.17.2") - - // Testing - testImplementation("junit:junit:4.13.2") - testImplementation("org.mockito.kotlin:mockito-kotlin:5.2.1") - testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.7.3") - testImplementation("app.cash.turbine:turbine:1.0.0") - testImplementation("org.robolectric:robolectric:4.11.1") - androidTestImplementation("androidx.test.ext:junit:1.1.5") - androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") - androidTestImplementation(platform("androidx.compose:compose-bom:2024.02.00")) - androidTestImplementation("androidx.compose.ui:ui-test-junit4") - debugImplementation("androidx.compose.ui:ui-tooling") - debugImplementation("androidx.compose.ui:ui-test-manifest") -} +import java.util.Properties +import java.io.FileInputStream + +// Load keystore properties +val keystorePropertiesFile = rootProject.file("app/key.properties") +val keystoreProperties = Properties() +if (keystorePropertiesFile.exists()) { + keystoreProperties.load(FileInputStream(keystorePropertiesFile)) +} + + +plugins { + id("com.android.application") + id("org.jetbrains.kotlin.android") + id("com.google.dagger.hilt.android") + id("com.google.devtools.ksp") +} + +android { + namespace = "com.hotdeal.alarm" + compileSdk = 35 + + defaultConfig { + applicationId = "com.hotdeal.alarm" + minSdk = 31 + targetSdk = 35 + versionCode = 24 + versionName = "0.2.4" + + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + vectorDrawables { + useSupportLibrary = true + } + } + + signingConfigs { + create("release") { + keyAlias = keystoreProperties["keyAlias"] as String? + keyPassword = keystoreProperties["keyPassword"] as String? + storeFile = keystoreProperties["storeFile"]?.let { file("$it") } + storePassword = keystoreProperties["storePassword"] as String? + } + } + + buildTypes { + release { + isMinifyEnabled = true + isShrinkResources = true + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + signingConfig = signingConfigs.getByName("release") + } + debug { + isMinifyEnabled = false + } + } + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = "17" + freeCompilerArgs += listOf( + "-opt-in=androidx.compose.material3.ExperimentalMaterial3Api", + "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi", + "-opt-in=kotlinx.coroutines.FlowPreview", + "-opt-in=androidx.compose.foundation.ExperimentalFoundationApi" + ) + } + + buildFeatures { + compose = true + buildConfig = true + } + + composeOptions { + kotlinCompilerExtensionVersion = "1.5.8" + } + + packaging { + resources { + excludes += "/META-INF/{AL2.0,LGPL2.1}" + excludes += "/META-INF/DEPENDENCIES" + } + } + + testOptions { + unitTests { + isIncludeAndroidResources = true + all { + it.testLogging { + events("passed", "failed", "skipped") + showStandardStreams = true + } + } + } + } +} + +dependencies { + // Kotlin + implementation("org.jetbrains.kotlin:kotlin-stdlib:1.9.22") + implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3") + implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3") + + // AndroidX Core + implementation("androidx.core:core-ktx:1.12.0") + implementation("androidx.appcompat:appcompat:1.6.1") + implementation("androidx.activity:activity-compose:1.8.2") + implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.7.0") + implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.7.0") + implementation("androidx.lifecycle:lifecycle-runtime-compose:2.7.0") + + // Jetpack Compose + implementation(platform("androidx.compose:compose-bom:2024.02.00")) + implementation("androidx.compose.ui:ui") + implementation("androidx.compose.ui:ui-graphics") + implementation("androidx.compose.ui:ui-tooling-preview") + implementation("androidx.compose.material3:material3") + implementation("androidx.compose.material:material-icons-extended") + implementation("androidx.navigation:navigation-compose:2.7.6") + + // Hilt Dependency Injection + implementation("com.google.dagger:hilt-android:2.50") + ksp("com.google.dagger:hilt-compiler:2.50") + implementation("androidx.hilt:hilt-navigation-compose:1.1.0") + implementation("androidx.hilt:hilt-work:1.1.0") + ksp("androidx.hilt:hilt-compiler:1.1.0") + + // Room Database + implementation("androidx.room:room-runtime:2.6.1") + implementation("androidx.room:room-ktx:2.6.1") + ksp("androidx.room:room-compiler:2.6.1") + + // DataStore Preferences + implementation("androidx.datastore:datastore-preferences:1.0.0") + + // WorkManager + implementation("androidx.work:work-runtime-ktx:2.9.0") + + // OkHttp & Jsoup (Web Scraping) + implementation("com.squareup.okhttp3:okhttp:4.12.0") + implementation("com.squareup.okhttp3:logging-interceptor:4.12.0") + implementation("org.jsoup:jsoup:1.17.2") + + // Testing + testImplementation("junit:junit:4.13.2") + testImplementation("org.mockito.kotlin:mockito-kotlin:5.2.1") + testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.7.3") + testImplementation("app.cash.turbine:turbine:1.0.0") + testImplementation("org.robolectric:robolectric:4.11.1") + androidTestImplementation("androidx.test.ext:junit:1.1.5") + androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") + androidTestImplementation(platform("androidx.compose:compose-bom:2024.02.00")) + androidTestImplementation("androidx.compose.ui:ui-test-junit4") + debugImplementation("androidx.compose.ui:ui-tooling") + debugImplementation("androidx.compose.ui:ui-test-manifest") +}