Skip to content

Commit

Permalink
Merge branch 'refs/heads/dev'
Browse files Browse the repository at this point in the history
  • Loading branch information
htueko committed Dec 19, 2024
2 parents 8d4ffbb + 55e9d63 commit a2ec078
Show file tree
Hide file tree
Showing 88 changed files with 4,385 additions and 116 deletions.
126 changes: 126 additions & 0 deletions .idea/androidTestResultsUserPreferences.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 12 additions & 0 deletions .idea/deploymentTargetSelector.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 15 additions & 0 deletions .idea/git_toolbox_prj.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .idea/kotlinc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions .idea/other.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

89 changes: 81 additions & 8 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.jetbrains.kotlin.android)
alias(libs.plugins.hilt)
alias(libs.plugins.ksp)
}

android {
namespace = "com.htueko.tenki"
compileSdk = 34
compileSdk = 35

defaultConfig {
applicationId = "com.htueko.tenki"
minSdk = 24
targetSdk = 34
targetSdk = 35
versionCode = 1
versionName = "1.0"

Expand All @@ -21,30 +23,39 @@ android {
}

buildTypes {
debug {
isMinifyEnabled = false
isDebuggable = true
}
release {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
getDefaultProguardFile(
name = "proguard-android-optimize.txt",
),
"proguard-rules.pro",
)
}
}
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
buildConfig = true
}
composeOptions {
kotlinCompilerExtensionVersion = "1.5.1"
kotlinCompilerExtensionVersion = "1.5.14"
}
packaging {
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
excludes += "META-INF/LICENSE-notice.md"
excludes += "META-INF/LICENSE.md"
}
}
}
Expand All @@ -58,12 +69,74 @@ dependencies {
implementation(libs.androidx.ui)
implementation(libs.androidx.ui.graphics)
implementation(libs.androidx.ui.tooling.preview)

// network libraries
implementation(libs.retrofit)
implementation(libs.converter.moshi)
implementation(libs.moshi.kotlin)
ksp(libs.moshi.kotlin.codegen)
implementation(libs.okhttp)
implementation(libs.retrofit2.kotlin.coroutines.adapter)

// image loading library
implementation(libs.coil.compose)

// ui support libraries
implementation(libs.androidx.constraintlayout.compose)
implementation(libs.androidx.material3)

// Splash Screen
implementation(libs.androidx.core.splashscreen)

// Compose dependencies
implementation(libs.androidx.lifecycle.viewmodel.compose)

// DataStore
implementation(libs.androidx.datastore.preferences)

// Coroutines
implementation(libs.kotlinx.coroutines.android)

// Dagger - Hilt
implementation(libs.hilt.android)
ksp(libs.hilt.android.compiler)
ksp(libs.androidx.hilt.compiler)
implementation(libs.androidx.hilt.navigation.compose)

// Shimmer effect
implementation(libs.compose.shimmer)

// Logging
implementation(libs.timber)

// Google truth
testImplementation(libs.google.truth)
androidTestImplementation(libs.google.truth)

// testing flow
// turbine
testImplementation(libs.turbine)
androidTestImplementation(libs.turbine)

// Unit test
testImplementation(libs.junit)
testImplementation(libs.kotlinx.coroutines.test)
testImplementation(libs.mockk)
testImplementation(libs.robolectric)
testImplementation(libs.mockwebserver)
testImplementation(libs.mockito.kotlin)
testImplementation(libs.mockito.core)

// Instrumentation test
androidTestImplementation(libs.kotlinx.coroutines.test)
androidTestImplementation(libs.mockk)
androidTestImplementation(libs.hilt.android.testing)
kspAndroidTest(libs.hilt.android.compiler)
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)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.htueko.tenki.core.presentation.composable


import androidx.compose.ui.test.assertIsDisplayed
import androidx.compose.ui.test.junit4.createComposeRule
import androidx.compose.ui.test.onNodeWithContentDescription
import org.junit.Rule
import org.junit.Test

class FullScreenLoadingIndicatorTest {

@get:Rule
val composeTestRule = createComposeRule()

@Test
fun fullScreenLoadingIndicator_DisplaysProgressIndicator() {
composeTestRule.setContent {
FullScreenLoadingIndicator()
}

composeTestRule.onNodeWithContentDescription("Loading").assertIsDisplayed()
}
}
Loading

0 comments on commit a2ec078

Please sign in to comment.