diff --git a/app/build.gradle.kts b/app/build.gradle.kts index a78ae80b..e13ea9f4 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,7 +1,9 @@ +@file:Suppress("INLINE_FROM_HIGHER_PLATFORM") + plugins { alias(libs.plugins.booket.android.application) - alias(libs.plugins.booket.android.hilt) alias(libs.plugins.booket.android.application.compose) + alias(libs.plugins.booket.android.hilt) } android { @@ -22,20 +24,25 @@ android { } } +ksp { + arg("circuit.codegen.mode", "hilt") +} + dependencies { + implementations( + projects.core.designsystem, + + projects.feature.home, + projects.feature.library, + projects.feature.main, + projects.feature.search, + + libs.androidx.activity.compose, + libs.androidx.startup, + libs.logger, - 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.compose.ui) - implementation(libs.androidx.compose.ui.graphics) - implementation(libs.androidx.compose.ui.tooling.preview) - implementation(libs.androidx.compose.material3) - testImplementation(libs.junit) - androidTestImplementation(libs.androidx.junit) - androidTestImplementation(platform(libs.androidx.compose.bom)) - androidTestImplementation(libs.androidx.compose.ui.test.junit4) - debugImplementation(libs.androidx.compose.ui.tooling) - debugImplementation(libs.androidx.compose.ui.test.manifest) + libs.bundles.circuit, + ) + api(libs.circuit.codegen.annotation) + ksp(libs.circuit.codegen.ksp) } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7b995aa0..59ace20d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,6 +3,7 @@ xmlns:tools="http://schemas.android.com/tools"> - - - - - - diff --git a/app/src/main/kotlin/com/ninecraft/booket/BooketApplication.kt b/app/src/main/kotlin/com/ninecraft/booket/BooketApplication.kt new file mode 100644 index 00000000..d12164ee --- /dev/null +++ b/app/src/main/kotlin/com/ninecraft/booket/BooketApplication.kt @@ -0,0 +1,7 @@ +package com.ninecraft.booket + +import android.app.Application +import dagger.hilt.android.HiltAndroidApp + +@HiltAndroidApp +class BooketApplication : Application() diff --git a/app/src/main/kotlin/com/ninecraft/booket/MainActivity.kt b/app/src/main/kotlin/com/ninecraft/booket/MainActivity.kt deleted file mode 100644 index 06318c76..00000000 --- a/app/src/main/kotlin/com/ninecraft/booket/MainActivity.kt +++ /dev/null @@ -1,47 +0,0 @@ -package com.ninecraft.booket - -import android.os.Bundle -import androidx.activity.ComponentActivity -import androidx.activity.compose.setContent -import androidx.activity.enableEdgeToEdge -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.padding -import androidx.compose.material3.Scaffold -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.tooling.preview.Preview -import com.ninecraft.booket.ui.theme.BooketAndroidTheme - -class MainActivity : ComponentActivity() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - enableEdgeToEdge() - setContent { - BooketAndroidTheme { - Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding -> - Greeting( - name = "Android", - modifier = Modifier.padding(innerPadding), - ) - } - } - } - } -} - -@Composable -fun Greeting(name: String, modifier: Modifier = Modifier) { - Text( - text = "Hello $name!", - modifier = modifier, - ) -} - -@Preview(showBackground = true) -@Composable -fun GreetingPreview() { - BooketAndroidTheme { - Greeting("Android") - } -} diff --git a/app/src/main/kotlin/com/ninecraft/booket/di/CircuitModule.kt b/app/src/main/kotlin/com/ninecraft/booket/di/CircuitModule.kt new file mode 100644 index 00000000..6514c77e --- /dev/null +++ b/app/src/main/kotlin/com/ninecraft/booket/di/CircuitModule.kt @@ -0,0 +1,33 @@ +package com.ninecraft.booket.di + +import com.slack.circuit.foundation.Circuit +import com.slack.circuit.runtime.presenter.Presenter +import com.slack.circuit.runtime.ui.Ui +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.android.components.ActivityRetainedComponent +import dagger.hilt.android.scopes.ActivityRetainedScoped +import dagger.multibindings.Multibinds + +@Module +@InstallIn(ActivityRetainedComponent::class) +abstract class CircuitModule { + + @Multibinds + abstract fun presenterFactories(): Set + + @Multibinds + abstract fun uiFactories(): Set + + companion object { + @[Provides ActivityRetainedScoped] + fun provideCircuit( + presenterFactories: @JvmSuppressWildcards Set, + uiFactories: @JvmSuppressWildcards Set, + ): Circuit = Circuit.Builder() + .addPresenterFactories(presenterFactories) + .addUiFactories(uiFactories) + .build() + } +} diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml deleted file mode 100644 index 55fe981b..00000000 --- a/app/src/main/res/values/strings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - Booket-Android - \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml deleted file mode 100644 index f9c05e74..00000000 --- a/app/src/main/res/values/themes.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - -