Skip to content

Commit 9494959

Browse files
authored
MVI Global refactor (#138)
* Mvi | Patch 1 * Mvi | Patch 2 * Mvi | Patch 3 * Mvi | Patch 4 * Mvi | Patch 5 * Optimize recompositions * Navigation refactor * Navigation refactor 2 * Navigation refactor 3 * Navigation refactor 4
1 parent 8db1449 commit 9494959

File tree

130 files changed

+2418
-2804
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

130 files changed

+2418
-2804
lines changed

app/build.gradle

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,6 @@ dependencies {
7777
implementation project(":network")
7878
implementation project(":storage")
7979
implementation project(":domain")
80-
implementation project(":feature:analytics")
8180
implementation project(":feature:auth")
8281
implementation project(":feature:diffusion")
8382
implementation project(":data")

app/src/main/java/com/shifthackz/aisdv1/app/AiStableDiffusionClientApp.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,7 @@ class AiStableDiffusionClientApp : Application() {
7070
private fun initializeLogging() {
7171
if (BuildConfig.DEBUG) {
7272
Timber.plant(Timber.DebugTree())
73-
} else {
74-
Timber.plant(FileLoggingTree())
7573
}
74+
Timber.plant(FileLoggingTree())
7675
}
7776
}
Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
package com.shifthackz.aisdv1.app.di
22

3-
import com.shifthackz.aisdv1.feature.analytics.di.analyticsModule
43
import com.shifthackz.aisdv1.feature.auth.di.authModule
54
import com.shifthackz.aisdv1.feature.diffusion.di.diffusionModule
65

76
val featureModule = (
8-
analyticsModule
9-
+ authModule
7+
authModule
108
+ diffusionModule
119
).toTypedArray()

core/common/src/main/java/com/shifthackz/aisdv1/core/common/extensions/UriExtensions.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,3 @@ fun Context.openUrl(url: String) {
2626
val uri = Uri.parse(url)
2727
openUri(uri)
2828
}
29-

core/ui/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ dependencies {
3434
api androidx.lifecycleViewModel
3535
api androidx.lifecycleCompose
3636
api google.accompanistSystemUiController
37+
api ui.mvi
3738

3839
implementation reactive.rxjava
3940
}

core/ui/src/main/java/com/shifthackz/aisdv1/core/extensions/AppExtensions.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package com.shifthackz.aisdv1.core.extensions
33
import android.app.ActivityManager
44
import android.app.ActivityManager.RunningAppProcessInfo
55
import android.content.Context
6+
import android.widget.Toast
67

78
fun Context.isAppInForeground(): Boolean {
89
val activityManager = getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
@@ -12,3 +13,7 @@ fun Context.isAppInForeground(): Boolean {
1213
process.uid == applicationInfo.uid && process.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND
1314
}
1415
}
16+
17+
fun Context.showToast(text: String) {
18+
Toast.makeText(this, text, Toast.LENGTH_LONG).show()
19+
}

core/ui/src/main/java/com/shifthackz/aisdv1/core/model/UiText.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,22 @@ import android.content.Context
44
import android.content.res.Resources
55
import androidx.annotation.StringRes
66
import androidx.compose.runtime.Composable
7+
import androidx.compose.runtime.Immutable
78
import androidx.compose.ui.platform.LocalContext
89
import androidx.compose.ui.res.stringResource
910

1011
sealed class UiText {
1112

13+
@Immutable
1214
data class Static(val value: String) : UiText()
1315

16+
@Immutable
1417
class Resource(
1518
@StringRes val resId: Int,
1619
vararg val args: Any,
1720
) : UiText()
1821

22+
@Immutable
1923
class Concat(
2024
vararg val texts: Any,
2125
val separator: String = "",
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.shifthackz.aisdv1.core.ui
2+
3+
import androidx.compose.material3.MaterialTheme
4+
import androidx.compose.runtime.Composable
5+
import androidx.compose.runtime.SideEffect
6+
import androidx.compose.ui.graphics.Color
7+
import com.google.accompanist.systemuicontroller.rememberSystemUiController
8+
import com.shifthackz.android.core.mvi.MviComponent
9+
import com.shifthackz.android.core.mvi.MviEffect
10+
import com.shifthackz.android.core.mvi.MviIntent
11+
import com.shifthackz.android.core.mvi.MviState
12+
import com.shifthackz.android.core.mvi.MviViewModel
13+
14+
@Composable
15+
fun <S : MviState, I: MviIntent, E : MviEffect> MviComponent(
16+
viewModel: MviViewModel<S, I, E>,
17+
processEffect: (effect: E) -> Unit = {},
18+
applySystemUiColors: Boolean = true,
19+
navigationBarColor: Color = MaterialTheme.colorScheme.background,
20+
content: @Composable (state: S, intentHandler: (I) -> Unit) -> Unit,
21+
) {
22+
if (applySystemUiColors) {
23+
val systemUiController = rememberSystemUiController()
24+
SideEffect {
25+
systemUiController.setNavigationBarColor(navigationBarColor)
26+
}
27+
}
28+
MviComponent(
29+
viewModel = viewModel,
30+
processEffect = processEffect,
31+
content = content,
32+
)
33+
}

core/ui/src/main/java/com/shifthackz/aisdv1/core/ui/MviContract.kt

Lines changed: 0 additions & 11 deletions
This file was deleted.

core/ui/src/main/java/com/shifthackz/aisdv1/core/ui/MviExtensions.kt

Lines changed: 0 additions & 79 deletions
This file was deleted.

0 commit comments

Comments
 (0)