diff --git a/Jetcaster/core/domain-testing/.gitignore b/Jetcaster/core/domain-testing/.gitignore new file mode 100644 index 0000000000..42afabfd2a --- /dev/null +++ b/Jetcaster/core/domain-testing/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/Jetcaster/core/domain-testing/build.gradle.kts b/Jetcaster/core/domain-testing/build.gradle.kts new file mode 100644 index 0000000000..aebc2bfeac --- /dev/null +++ b/Jetcaster/core/domain-testing/build.gradle.kts @@ -0,0 +1,42 @@ +plugins { + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.android) +} + +android { + namespace = "com.example.jetcaster.core.domain.testing" + compileSdk = libs.versions.compileSdk.get().toInt() + + defaultConfig { + minSdk = libs.versions.minSdk.get().toInt() + + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + consumerProguardFiles("consumer-rules.pro") + } + + buildTypes { + release { + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + } + compileOptions { + isCoreLibraryDesugaringEnabled = true + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } +} + +dependencies { + implementation(projects.core.data) + implementation(project(":core:domain")) + + coreLibraryDesugaring(libs.core.jdk.desugaring) + + testImplementation(libs.junit) + androidTestImplementation(libs.androidx.test.ext.junit) + androidTestImplementation(libs.androidx.test.espresso.core) +} \ No newline at end of file diff --git a/Jetcaster/core/domain-testing/consumer-rules.pro b/Jetcaster/core/domain-testing/consumer-rules.pro new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Jetcaster/core/domain-testing/proguard-rules.pro b/Jetcaster/core/domain-testing/proguard-rules.pro new file mode 100644 index 0000000000..481bb43481 --- /dev/null +++ b/Jetcaster/core/domain-testing/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/Jetcaster/core/domain-testing/src/main/AndroidManifest.xml b/Jetcaster/core/domain-testing/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..a5918e68ab --- /dev/null +++ b/Jetcaster/core/domain-testing/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Jetcaster/mobile/src/main/java/com/example/jetcaster/ui/home/PreviewData.kt b/Jetcaster/core/domain-testing/src/main/java/com/example/jetcaster/core/domain/testing/PreviewData.kt similarity index 97% rename from Jetcaster/mobile/src/main/java/com/example/jetcaster/ui/home/PreviewData.kt rename to Jetcaster/core/domain-testing/src/main/java/com/example/jetcaster/core/domain/testing/PreviewData.kt index 5c0c537e08..13df2d2d6c 100644 --- a/Jetcaster/mobile/src/main/java/com/example/jetcaster/ui/home/PreviewData.kt +++ b/Jetcaster/core/domain-testing/src/main/java/com/example/jetcaster/core/domain/testing/PreviewData.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.example.jetcaster.ui.home +package com.example.jetcaster.core.domain.testing import com.example.jetcaster.core.model.CategoryInfo import com.example.jetcaster.core.model.EpisodeInfo diff --git a/Jetcaster/mobile/build.gradle.kts b/Jetcaster/mobile/build.gradle.kts index eba1a284c3..bc3a9d656c 100644 --- a/Jetcaster/mobile/build.gradle.kts +++ b/Jetcaster/mobile/build.gradle.kts @@ -135,6 +135,7 @@ dependencies { implementation(projects.core.data) implementation(projects.core.designsystem) implementation(projects.core.domain) + implementation(projects.core.domainTesting) coreLibraryDesugaring(libs.core.jdk.desugaring) } diff --git a/Jetcaster/mobile/src/main/java/com/example/jetcaster/ui/home/Home.kt b/Jetcaster/mobile/src/main/java/com/example/jetcaster/ui/home/Home.kt index b994cb3378..46a0cffbf0 100644 --- a/Jetcaster/mobile/src/main/java/com/example/jetcaster/ui/home/Home.kt +++ b/Jetcaster/mobile/src/main/java/com/example/jetcaster/ui/home/Home.kt @@ -102,6 +102,9 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.window.core.layout.WindowSizeClass import androidx.window.core.layout.WindowWidthSizeClass import com.example.jetcaster.R +import com.example.jetcaster.core.domain.testing.PreviewCategories +import com.example.jetcaster.core.domain.testing.PreviewPodcastEpisodes +import com.example.jetcaster.core.domain.testing.PreviewPodcasts import com.example.jetcaster.core.model.CategoryInfo import com.example.jetcaster.core.model.EpisodeInfo import com.example.jetcaster.core.model.FilterableCategoriesModel diff --git a/Jetcaster/mobile/src/main/java/com/example/jetcaster/ui/home/category/PodcastCategory.kt b/Jetcaster/mobile/src/main/java/com/example/jetcaster/ui/home/category/PodcastCategory.kt index fbdb407ac6..0f6e021c82 100644 --- a/Jetcaster/mobile/src/main/java/com/example/jetcaster/ui/home/category/PodcastCategory.kt +++ b/Jetcaster/mobile/src/main/java/com/example/jetcaster/ui/home/category/PodcastCategory.kt @@ -41,14 +41,14 @@ import androidx.compose.ui.semantics.semantics import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import com.example.jetcaster.core.domain.testing.PreviewEpisodes +import com.example.jetcaster.core.domain.testing.PreviewPodcasts import com.example.jetcaster.core.model.EpisodeInfo import com.example.jetcaster.core.model.PodcastCategoryFilterResult import com.example.jetcaster.core.model.PodcastInfo import com.example.jetcaster.core.player.model.PlayerEpisode import com.example.jetcaster.designsystem.component.PodcastImage import com.example.jetcaster.designsystem.theme.Keyline1 -import com.example.jetcaster.ui.home.PreviewEpisodes -import com.example.jetcaster.ui.home.PreviewPodcasts import com.example.jetcaster.ui.shared.EpisodeListItem import com.example.jetcaster.ui.theme.JetcasterTheme import com.example.jetcaster.util.ToggleFollowPodcastIconButton diff --git a/Jetcaster/mobile/src/main/java/com/example/jetcaster/ui/podcast/PodcastDetailsScreen.kt b/Jetcaster/mobile/src/main/java/com/example/jetcaster/ui/podcast/PodcastDetailsScreen.kt index e2c339c4bf..4d96997193 100644 --- a/Jetcaster/mobile/src/main/java/com/example/jetcaster/ui/podcast/PodcastDetailsScreen.kt +++ b/Jetcaster/mobile/src/main/java/com/example/jetcaster/ui/podcast/PodcastDetailsScreen.kt @@ -68,13 +68,13 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.min import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.example.jetcaster.R +import com.example.jetcaster.core.domain.testing.PreviewEpisodes +import com.example.jetcaster.core.domain.testing.PreviewPodcasts import com.example.jetcaster.core.model.EpisodeInfo import com.example.jetcaster.core.model.PodcastInfo import com.example.jetcaster.core.player.model.PlayerEpisode import com.example.jetcaster.designsystem.component.PodcastImage import com.example.jetcaster.designsystem.theme.Keyline1 -import com.example.jetcaster.ui.home.PreviewEpisodes -import com.example.jetcaster.ui.home.PreviewPodcasts import com.example.jetcaster.ui.shared.EpisodeListItem import com.example.jetcaster.ui.shared.Loading import com.example.jetcaster.ui.tooling.DevicePreviews diff --git a/Jetcaster/mobile/src/main/java/com/example/jetcaster/ui/shared/EpisodeListItem.kt b/Jetcaster/mobile/src/main/java/com/example/jetcaster/ui/shared/EpisodeListItem.kt index b5f174da5f..dd5e409704 100644 --- a/Jetcaster/mobile/src/main/java/com/example/jetcaster/ui/shared/EpisodeListItem.kt +++ b/Jetcaster/mobile/src/main/java/com/example/jetcaster/ui/shared/EpisodeListItem.kt @@ -50,13 +50,13 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.example.jetcaster.R +import com.example.jetcaster.core.domain.testing.PreviewEpisodes +import com.example.jetcaster.core.domain.testing.PreviewPodcasts import com.example.jetcaster.core.model.EpisodeInfo import com.example.jetcaster.core.model.PodcastInfo import com.example.jetcaster.core.player.model.PlayerEpisode import com.example.jetcaster.designsystem.component.HtmlTextContainer import com.example.jetcaster.designsystem.component.PodcastImage -import com.example.jetcaster.ui.home.PreviewEpisodes -import com.example.jetcaster.ui.home.PreviewPodcasts import com.example.jetcaster.ui.theme.JetcasterTheme import java.time.format.DateTimeFormatter import java.time.format.FormatStyle diff --git a/Jetcaster/settings.gradle.kts b/Jetcaster/settings.gradle.kts index cebd7e3d5f..eb9b58611f 100644 --- a/Jetcaster/settings.gradle.kts +++ b/Jetcaster/settings.gradle.kts @@ -39,6 +39,7 @@ include( ":mobile", ":core:data", ":core:domain", + ":core:domain-testing", ":core:designsystem", ":tv-app", ":wear"