diff --git a/feature/settings/.gitignore b/feature/bookmark/.gitignore similarity index 100% rename from feature/settings/.gitignore rename to feature/bookmark/.gitignore diff --git a/feature/bookmark/build.gradle.kts b/feature/bookmark/build.gradle.kts new file mode 100644 index 0000000..a6d4e67 --- /dev/null +++ b/feature/bookmark/build.gradle.kts @@ -0,0 +1,44 @@ +@Suppress("DSL_SCOPE_VIOLATION") // TODO: Remove once KTIJ-19369 is fixed +plugins { + alias(libs.plugins.androidLibrary) + alias(libs.plugins.kotlinAndroid) +} + +android { + namespace = "store.newsbriefing.app.feature.bookmark" + compileSdk = 34 + + defaultConfig { + minSdk = 24 + + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + consumerProguardFiles("consumer-rules.pro") + } + + buildTypes { + release { + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = "1.8" + } +} + +dependencies { + + implementation(libs.core.ktx) + implementation(libs.androidx.appcompat) + implementation(libs.material) + testImplementation(libs.junit) + androidTestImplementation(libs.androidx.test.ext.junit) + androidTestImplementation(libs.espresso.core) +} \ No newline at end of file diff --git a/feature/bookmark/consumer-rules.pro b/feature/bookmark/consumer-rules.pro new file mode 100644 index 0000000..e69de29 diff --git a/feature/bookmark/proguard-rules.pro b/feature/bookmark/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/feature/bookmark/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/feature/settings/src/androidTest/java/store/newsbriefing/app/feature/settings/ExampleInstrumentedTest.kt b/feature/bookmark/src/androidTest/java/store/newsbriefing/app/feature/bookmark/ExampleInstrumentedTest.kt similarity index 84% rename from feature/settings/src/androidTest/java/store/newsbriefing/app/feature/settings/ExampleInstrumentedTest.kt rename to feature/bookmark/src/androidTest/java/store/newsbriefing/app/feature/bookmark/ExampleInstrumentedTest.kt index 6c33ec8..8181364 100644 --- a/feature/settings/src/androidTest/java/store/newsbriefing/app/feature/settings/ExampleInstrumentedTest.kt +++ b/feature/bookmark/src/androidTest/java/store/newsbriefing/app/feature/bookmark/ExampleInstrumentedTest.kt @@ -1,4 +1,4 @@ -package store.newsbriefing.app.feature.settings +package store.newsbriefing.app.feature.bookmark import androidx.test.platform.app.InstrumentationRegistry import androidx.test.ext.junit.runners.AndroidJUnit4 @@ -19,6 +19,6 @@ class ExampleInstrumentedTest { fun useAppContext() { // Context of the app under test. val appContext = InstrumentationRegistry.getInstrumentation().targetContext - assertEquals("store.newsbriefing.app.feature.settings.test", appContext.packageName) + assertEquals("store.newsbriefing.app.feature.bookmark.test", appContext.packageName) } } \ No newline at end of file diff --git a/feature/settings/src/main/AndroidManifest.xml b/feature/bookmark/src/main/AndroidManifest.xml similarity index 100% rename from feature/settings/src/main/AndroidManifest.xml rename to feature/bookmark/src/main/AndroidManifest.xml diff --git a/feature/settings/src/test/java/store/newsbriefing/app/feature/settings/ExampleUnitTest.kt b/feature/bookmark/src/test/java/store/newsbriefing/app/feature/bookmark/ExampleUnitTest.kt similarity index 86% rename from feature/settings/src/test/java/store/newsbriefing/app/feature/settings/ExampleUnitTest.kt rename to feature/bookmark/src/test/java/store/newsbriefing/app/feature/bookmark/ExampleUnitTest.kt index 2033bbc..9b1b531 100644 --- a/feature/settings/src/test/java/store/newsbriefing/app/feature/settings/ExampleUnitTest.kt +++ b/feature/bookmark/src/test/java/store/newsbriefing/app/feature/bookmark/ExampleUnitTest.kt @@ -1,4 +1,4 @@ -package store.newsbriefing.app.feature.settings +package store.newsbriefing.app.feature.bookmark import org.junit.Test diff --git a/feature/home/.gitignore b/feature/home/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/feature/home/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/feature/home/build.gradle.kts b/feature/home/build.gradle.kts new file mode 100644 index 0000000..a779540 --- /dev/null +++ b/feature/home/build.gradle.kts @@ -0,0 +1,44 @@ +@Suppress("DSL_SCOPE_VIOLATION") // TODO: Remove once KTIJ-19369 is fixed +plugins { + alias(libs.plugins.androidLibrary) + alias(libs.plugins.kotlinAndroid) +} + +android { + namespace = "store.newsbriefing.app.feature.home" + compileSdk = 34 + + defaultConfig { + minSdk = 24 + + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + consumerProguardFiles("consumer-rules.pro") + } + + buildTypes { + release { + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = "1.8" + } +} + +dependencies { + + implementation(libs.core.ktx) + implementation(libs.androidx.appcompat) + implementation(libs.material) + testImplementation(libs.junit) + androidTestImplementation(libs.androidx.test.ext.junit) + androidTestImplementation(libs.espresso.core) +} \ No newline at end of file diff --git a/feature/home/consumer-rules.pro b/feature/home/consumer-rules.pro new file mode 100644 index 0000000..e69de29 diff --git a/feature/home/proguard-rules.pro b/feature/home/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/feature/home/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/feature/home/src/androidTest/java/store/newsbriefing/app/feature/home/ExampleInstrumentedTest.kt b/feature/home/src/androidTest/java/store/newsbriefing/app/feature/home/ExampleInstrumentedTest.kt new file mode 100644 index 0000000..973c8d9 --- /dev/null +++ b/feature/home/src/androidTest/java/store/newsbriefing/app/feature/home/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package store.newsbriefing.app.feature.home + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.ext.junit.runners.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("store.newsbriefing.app.feature.home.test", appContext.packageName) + } +} \ No newline at end of file diff --git a/feature/home/src/main/AndroidManifest.xml b/feature/home/src/main/AndroidManifest.xml new file mode 100644 index 0000000..a5918e6 --- /dev/null +++ b/feature/home/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/feature/home/src/test/java/store/newsbriefing/app/feature/home/ExampleUnitTest.kt b/feature/home/src/test/java/store/newsbriefing/app/feature/home/ExampleUnitTest.kt new file mode 100644 index 0000000..7c4ae85 --- /dev/null +++ b/feature/home/src/test/java/store/newsbriefing/app/feature/home/ExampleUnitTest.kt @@ -0,0 +1,17 @@ +package store.newsbriefing.app.feature.home + +import org.junit.Test + +import org.junit.Assert.* + +/** + * Example local unit test, which will execute on the development machine (host). + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +class ExampleUnitTest { + @Test + fun addition_isCorrect() { + assertEquals(4, 2 + 2) + } +} \ No newline at end of file diff --git a/feature/newsdetail/.gitignore b/feature/newsdetail/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/feature/newsdetail/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/feature/newsdetail/build.gradle.kts b/feature/newsdetail/build.gradle.kts new file mode 100644 index 0000000..9fb7ba1 --- /dev/null +++ b/feature/newsdetail/build.gradle.kts @@ -0,0 +1,44 @@ +@Suppress("DSL_SCOPE_VIOLATION") // TODO: Remove once KTIJ-19369 is fixed +plugins { + alias(libs.plugins.androidLibrary) + alias(libs.plugins.kotlinAndroid) +} + +android { + namespace = "store.newsbriefing.app.feature.newsdetail" + compileSdk = 34 + + defaultConfig { + minSdk = 24 + + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + consumerProguardFiles("consumer-rules.pro") + } + + buildTypes { + release { + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = "1.8" + } +} + +dependencies { + + implementation(libs.core.ktx) + implementation(libs.androidx.appcompat) + implementation(libs.material) + testImplementation(libs.junit) + androidTestImplementation(libs.androidx.test.ext.junit) + androidTestImplementation(libs.espresso.core) +} \ No newline at end of file diff --git a/feature/newsdetail/consumer-rules.pro b/feature/newsdetail/consumer-rules.pro new file mode 100644 index 0000000..e69de29 diff --git a/feature/newsdetail/proguard-rules.pro b/feature/newsdetail/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/feature/newsdetail/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/feature/newsdetail/src/androidTest/java/store/newsbriefing/app/feature/newsdetail/ExampleInstrumentedTest.kt b/feature/newsdetail/src/androidTest/java/store/newsbriefing/app/feature/newsdetail/ExampleInstrumentedTest.kt new file mode 100644 index 0000000..6b20019 --- /dev/null +++ b/feature/newsdetail/src/androidTest/java/store/newsbriefing/app/feature/newsdetail/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package store.newsbriefing.app.feature.newsdetail + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.ext.junit.runners.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("store.newsbriefing.app.feature.newsdetail.test", appContext.packageName) + } +} \ No newline at end of file diff --git a/feature/newsdetail/src/main/AndroidManifest.xml b/feature/newsdetail/src/main/AndroidManifest.xml new file mode 100644 index 0000000..a5918e6 --- /dev/null +++ b/feature/newsdetail/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/feature/newsdetail/src/test/java/store/newsbriefing/app/feature/newsdetail/ExampleUnitTest.kt b/feature/newsdetail/src/test/java/store/newsbriefing/app/feature/newsdetail/ExampleUnitTest.kt new file mode 100644 index 0000000..14074b9 --- /dev/null +++ b/feature/newsdetail/src/test/java/store/newsbriefing/app/feature/newsdetail/ExampleUnitTest.kt @@ -0,0 +1,17 @@ +package store.newsbriefing.app.feature.newsdetail + +import org.junit.Test + +import org.junit.Assert.* + +/** + * Example local unit test, which will execute on the development machine (host). + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +class ExampleUnitTest { + @Test + fun addition_isCorrect() { + assertEquals(4, 2 + 2) + } +} \ No newline at end of file diff --git a/feature/setting/.gitignore b/feature/setting/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/feature/setting/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/feature/setting/build.gradle.kts b/feature/setting/build.gradle.kts new file mode 100644 index 0000000..5474b02 --- /dev/null +++ b/feature/setting/build.gradle.kts @@ -0,0 +1,44 @@ +@Suppress("DSL_SCOPE_VIOLATION") // TODO: Remove once KTIJ-19369 is fixed +plugins { + alias(libs.plugins.androidLibrary) + alias(libs.plugins.kotlinAndroid) +} + +android { + namespace = "store.newsbriefing.app.feature.setting" + compileSdk = 34 + + defaultConfig { + minSdk = 24 + + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + consumerProguardFiles("consumer-rules.pro") + } + + buildTypes { + release { + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = "1.8" + } +} + +dependencies { + + implementation(libs.core.ktx) + implementation(libs.androidx.appcompat) + implementation(libs.material) + testImplementation(libs.junit) + androidTestImplementation(libs.androidx.test.ext.junit) + androidTestImplementation(libs.espresso.core) +} \ No newline at end of file diff --git a/feature/setting/consumer-rules.pro b/feature/setting/consumer-rules.pro new file mode 100644 index 0000000..e69de29 diff --git a/feature/setting/proguard-rules.pro b/feature/setting/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/feature/setting/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/feature/setting/src/androidTest/java/store/newsbriefing/app/feature/setting/ExampleInstrumentedTest.kt b/feature/setting/src/androidTest/java/store/newsbriefing/app/feature/setting/ExampleInstrumentedTest.kt new file mode 100644 index 0000000..a6022d4 --- /dev/null +++ b/feature/setting/src/androidTest/java/store/newsbriefing/app/feature/setting/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package store.newsbriefing.app.feature.setting + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.ext.junit.runners.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("store.newsbriefing.app.feature.setting.test", appContext.packageName) + } +} \ No newline at end of file diff --git a/feature/setting/src/main/AndroidManifest.xml b/feature/setting/src/main/AndroidManifest.xml new file mode 100644 index 0000000..a5918e6 --- /dev/null +++ b/feature/setting/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/feature/setting/src/test/java/store/newsbriefing/app/feature/setting/ExampleUnitTest.kt b/feature/setting/src/test/java/store/newsbriefing/app/feature/setting/ExampleUnitTest.kt new file mode 100644 index 0000000..4d75b92 --- /dev/null +++ b/feature/setting/src/test/java/store/newsbriefing/app/feature/setting/ExampleUnitTest.kt @@ -0,0 +1,17 @@ +package store.newsbriefing.app.feature.setting + +import org.junit.Test + +import org.junit.Assert.* + +/** + * Example local unit test, which will execute on the development machine (host). + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +class ExampleUnitTest { + @Test + fun addition_isCorrect() { + assertEquals(4, 2 + 2) + } +} \ No newline at end of file diff --git a/feature/settings/build.gradle.kts b/feature/settings/build.gradle.kts deleted file mode 100644 index 145b709..0000000 --- a/feature/settings/build.gradle.kts +++ /dev/null @@ -1,12 +0,0 @@ -plugins { - alias(libs.plugins.briefing.android.feature) - alias(libs.plugins.briefing.android.library.compose) -} - -android { - namespace = "store.newsbriefing.app.feature.settings" -} - -dependencies { - implementation(projects.core.data) -} \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 45a43bb..0e58e68 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Mon Jan 29 15:57:07 KST 2024 +#Sun Mar 03 14:16:58 KST 2024 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/settings.gradle.kts b/settings.gradle.kts index 72f6a9e..671d748 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -23,6 +23,9 @@ include(":core:model") include(":core:network") include(":core:data") include(":core:ui") -include(":feature:settings") include(":core:domain") include(":core:common") +include(":feature:home") +include(":feature:setting") +include(":feature:bookmark") +include(":feature:newsdetail")