Skip to content

Feature/migrate precompose #169

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 19 commits into
base: develop
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -54,12 +54,14 @@ android {
}

dependencies {
implementation("androidx.core:core-splashscreen:1.0.0-beta01")
implementation("androidx.activity:activity-compose:${Versions.Androidx.activityCompose}")
implementation("androidx.core:core-splashscreen:1.0.0-beta02")
implementation(projects.entry)
implementation(projects.common)
implementation(projects.common.gecko)

// Koin
implementation("io.insert-koin:koin-android:${Versions.koin}")

if (enableFirebase) {
implementation("com.google.firebase:firebase-analytics-ktx:${Versions.Firebase.analytics}")
implementation(platform("com.google.firebase:firebase-bom:${Versions.Firebase.bom}"))
Expand Down
6 changes: 3 additions & 3 deletions app/src/main/java/com/dimension/maskbook/ComposeActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -23,23 +23,23 @@ package com.dimension.maskbook
import android.content.Intent
import android.os.Bundle
import android.view.WindowManager
import androidx.activity.compose.setContent
import androidx.compose.runtime.CompositionLocalProvider
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
import androidx.core.view.WindowCompat
import androidx.core.view.WindowInsetsControllerCompat
import androidx.fragment.app.FragmentActivity
import coil.compose.LocalImageLoader
import com.dimension.maskbook.common.gecko.PromptFeatureDelegate
import com.dimension.maskbook.common.gecko.WebContentController
import com.dimension.maskbook.common.manager.ImageLoaderManager
import com.dimension.maskbook.common.ui.widget.LocalWindowInsetsController
import com.dimension.maskbook.entry.ui.App
import com.google.accompanist.insets.ProvideWindowInsets
import moe.tlaster.precompose.lifecycle.PreComposeActivity
import moe.tlaster.precompose.lifecycle.setContent
import org.koin.android.ext.android.get
import org.koin.android.ext.android.inject

class ComposeActivity : FragmentActivity() {
class ComposeActivity : PreComposeActivity() {

private lateinit var promptFeature: PromptFeatureDelegate
private val imageLoaderManager: ImageLoaderManager by inject()
Expand Down
10 changes: 0 additions & 10 deletions buildSrc/src/main/kotlin/Config.kt
Original file line number Diff line number Diff line change
Expand Up @@ -35,16 +35,6 @@ fun com.android.build.api.dsl.LibraryExtension.setupLibrary() {
sourceSets["debug"].java.srcDir("build/generated/ksp/android/androidDebug/kotlin")
}


fun com.android.build.gradle.LibraryExtension.withCompose() {
buildFeatures {
compose = true
}
composeOptions {
kotlinCompilerExtensionVersion = Versions.compose
}
}

fun Project.kspAndroid(dependencyNotation: Any) {
project.dependencies.add("kspAndroid", dependencyNotation)
}
Expand Down
4 changes: 1 addition & 3 deletions buildSrc/src/main/kotlin/Versions.kt
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,7 @@ object Versions {
const val ksp = "${Kotlin.lang}-1.0.4"
const val spotless = "6.3.0"
const val ktlint = "0.43.2"
const val compose_jb = "1.1.0"
const val compose = "1.1.0"
const val compose_jb = "1.1.1"
const val accompanist = "0.23.0"
const val navigation = "2.4.1"
const val lifecycle = "2.4.1"
Expand Down Expand Up @@ -61,7 +60,6 @@ object Versions {
const val paging = "3.1.0"
const val pagingCompose = "1.0.0-alpha14"
const val annotation = "1.3.0"
const val activityCompose = "1.4.0"
const val biometric = "1.2.0-alpha04"
const val activity = "1.4.0"
const val fragment = "1.3.6"
Expand Down
62 changes: 30 additions & 32 deletions common/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -10,29 +10,18 @@ kotlin {
android()
sourceSets {
val commonMain by getting {
dependencies {
implementation(projects.common.routeProcessor.annotations)
kspAndroid(projects.common.routeProcessor)
api(projects.common.bigDecimal)
}
}
val commonTest by getting {
dependencies {
implementation(kotlin("test"))
}
}
val androidMain by getting {
kotlin.srcDir("src/commonMain/route")
dependencies {
api(projects.wallet.export)
api(projects.labs.export)
api(projects.persona.export)
api(projects.setting.export)
api(projects.extension.export)
api(projects.localization)
api(projects.common.retrofit)
api(projects.common.okhttp)
api(projects.common.bigDecimal)

implementation(projects.common.routeProcessor.annotations)
kspAndroid(projects.common.routeProcessor)

// Compose
api("org.jetbrains.compose.ui:ui:${Versions.compose_jb}")
api("org.jetbrains.compose.ui:ui-util:${Versions.compose_jb}")
Expand All @@ -43,16 +32,32 @@ kotlin {
api("org.jetbrains.compose.ui:ui-tooling:${Versions.compose_jb}")

// Koin
api("io.insert-koin:koin-android:${Versions.koin}")
api("io.insert-koin:koin-androidx-compose:${Versions.koin}")
api("io.insert-koin:koin-core:${Versions.koin}")

// Lifecycle
api("androidx.lifecycle:lifecycle-runtime-ktx:${Versions.lifecycle}")
api("androidx.lifecycle:lifecycle-livedata-ktx:${Versions.lifecycle}")
api("androidx.lifecycle:lifecycle-viewmodel-ktx:${Versions.lifecycle}")
api("androidx.lifecycle:lifecycle-viewmodel-savedstate:${Versions.lifecycle}")
api("androidx.lifecycle:lifecycle-viewmodel-compose:${Versions.lifecycle}")
api("androidx.lifecycle:lifecycle-common-java8:${Versions.lifecycle}")
// coroutines
api("org.jetbrains.kotlinx:kotlinx-coroutines-core:${Versions.Kotlin.coroutines}")

// serialization
api("org.jetbrains.kotlinx:kotlinx-serialization-json:${Versions.Kotlin.serialization}")

// okhttp
api("com.squareup.okhttp3:okhttp:${Versions.okhttp}")
implementation("com.squareup.okhttp3:logging-interceptor:${Versions.okhttp}")

// retrofit
api("com.squareup.retrofit2:retrofit:${Versions.retrofit}")
api("com.squareup.retrofit2:converter-scalars:${Versions.retrofit}")
api("com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:${Versions.retrofitSerialization}")
}
}
val commonTest by getting {
dependencies {
implementation(kotlin("test"))
}
}
val androidMain by getting {
dependencies {
api(projects.localization)

// Coil
api("io.coil-kt:coil-compose:${Versions.coil}")
Expand All @@ -62,28 +67,21 @@ kotlin {
api("com.google.accompanist:accompanist-pager:${Versions.accompanist}")
api("com.google.accompanist:accompanist-pager-indicators:${Versions.accompanist}")
api("com.google.accompanist:accompanist-swiperefresh:${Versions.accompanist}")
api("com.google.accompanist:accompanist-navigation-animation:${Versions.accompanist}")
api("com.google.accompanist:accompanist-navigation-material:${Versions.accompanist}")
api("com.google.accompanist:accompanist-permissions:${Versions.accompanist}")
api("com.google.accompanist:accompanist-insets:${Versions.accompanist}")

// coroutines
api("org.jetbrains.kotlinx:kotlinx-coroutines-core:${Versions.Kotlin.coroutines}")
api("org.jetbrains.kotlinx:kotlinx-coroutines-android:${Versions.Kotlin.coroutines}")

// Androidx
api("androidx.core:core-ktx:${Versions.Androidx.core}")
api("androidx.appcompat:appcompat:${Versions.Androidx.appcompat}")
api("androidx.activity:activity-ktx:${Versions.Androidx.activity}")
api("androidx.activity:activity-compose:${Versions.Androidx.activity}")
api("androidx.fragment:fragment-ktx:${Versions.Androidx.fragment}")
api("androidx.datastore:datastore-preferences:${Versions.datastore}")
api("androidx.navigation:navigation-ui-ktx:${Versions.navigation}")
api("androidx.navigation:navigation-compose:${Versions.navigation}")
implementation("androidx.biometric:biometric-ktx:${Versions.Androidx.biometric}")

// serialization
api("org.jetbrains.kotlinx:kotlinx-serialization-json:${Versions.Kotlin.serialization}")

// sqlite
api("androidx.room:room-runtime:${Versions.Androidx.room}")
api("androidx.room:room-ktx:${Versions.Androidx.room}")
Expand Down
2 changes: 1 addition & 1 deletion common/gecko/sample/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ android {
}

dependencies {
implementation("androidx.activity:activity-compose:${Versions.Androidx.activityCompose}")
implementation("androidx.activity:activity-compose:${Versions.Androidx.activity}")
implementation("org.jetbrains.compose.ui:ui:${Versions.compose_jb}")
implementation("org.jetbrains.compose.ui:ui-util:${Versions.compose_jb}")
implementation("org.jetbrains.compose.foundation:foundation:${Versions.compose_jb}")
Expand Down
25 changes: 0 additions & 25 deletions common/okhttp/build.gradle.kts

This file was deleted.

Empty file removed common/okhttp/consumer-rules.pro
Empty file.
21 changes: 0 additions & 21 deletions common/okhttp/proguard-rules.pro

This file was deleted.

4 changes: 0 additions & 4 deletions common/okhttp/src/androidMain/AndroidManifest.xml

This file was deleted.

28 changes: 0 additions & 28 deletions common/retrofit/build.gradle.kts

This file was deleted.

Empty file removed common/retrofit/consumer-rules.pro
Empty file.
21 changes: 0 additions & 21 deletions common/retrofit/proguard-rules.pro

This file was deleted.

4 changes: 0 additions & 4 deletions common/retrofit/src/androidMain/AndroidManifest.xml

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -85,19 +85,16 @@ internal data class ParameterRouteDefinition(
childRoute.forEach {
if (it is FunctionRouteDefinition) {
val pathParams = it.parameters.filter { !it.parameter.type.resolve().isMarkedNullable }
val queryParams = it.parameters.filter { it.parameter.type.resolve().isMarkedNullable }
addProperty(
PropertySpec.builder("path", String::class)
.addModifiers(KModifier.CONST)
.initializer(
"%S + %S + %S + %S + %S + %S + %S",
"%S + %S + %S + %S + %S",
parentPath,
RouteDivider,
name,
if (pathParams.any()) RouteDivider else "",
pathParams.joinToString(RouteDivider) { "{${it.name}}" },
if (queryParams.any()) "?" else "",
queryParams.joinToString("&") { "${it.name}={${it.name}}" }
)
.build()
)
Expand Down
Loading