Skip to content

Commit 3d96e2d

Browse files
committed
Organize shared features module structure
1 parent 97c04e7 commit 3d96e2d

File tree

64 files changed

+157
-145
lines changed

Some content is hidden

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

64 files changed

+157
-145
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ local.properties
1414
google-services.json
1515
*.jks
1616
.kotlin
17+
.gemini
1718

1819
# Kotlin/JS and Kotlin/Wasm
1920
kotlin-js-store/

CLAUDE.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,13 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
1818
## Code Style Guidelines
1919
- Kotlin style: Follow standard Kotlin conventions (camelCase, PascalCase)
2020
- Architecture: KMP (Kotlin Multiplatform) supporting Android, iOS, Desktop (JVM), and Web (WebAssembly)
21-
- Android UI: Uses Circuit library for UI navigation and state management
21+
- UI Architecture: Uses **Circuit** library for UI navigation and state management (Presenter/Ui pattern)
2222
- Desktop: JVM-based Compose Multiplatform application
2323
- Web: WebAssembly-based Compose Multiplatform application using browser APIs
2424
- Imports: Group by package, alphabetize within groups
2525
- Types: Prefer non-nullable types when possible
2626
- Naming: Descriptive, explicit naming (e.g., `UserRepository` not `Repository`)
2727
- Error handling: Use Result pattern with sealed classes for domain errors
28-
- Dependency injection: Uses Koin for KMP code
28+
- Dependency injection: Uses **kotlin-inject** for KMP code (migrating away from Koin)
29+
- Testing: circuit-test for presenters, Paparazzi for snapshots, truthish for assertions
2930
- JVM target: 11

android/app-newm/src/main/java/io/newm/HomeActivity.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,12 +54,12 @@ import io.newm.shared.commonPublic.analytics.events.AppScreens
5454
import io.newm.shared.commonPublic.featureflags.FeatureFlagService
5555
import io.newm.shared.commonPublic.featureflags.FeatureFlags
5656
import io.newm.shared.config.NewmSharedBuildConfig
57-
import io.newm.sharedfeatures.devmenu.DevMenuPresenter
58-
import io.newm.sharedfeatures.devmenu.DevMenuUi
59-
import io.newm.sharedfeatures.devmenu.FeatureFlagsListPresenter
60-
import io.newm.sharedfeatures.devmenu.FeatureFlagsListUi
6157
import io.newm.sharedfeatures.screens.DevMenuMainScreen
6258
import io.newm.sharedfeatures.screens.FeatureFlagsListScreen
59+
import io.newm.sharedfeatures.screens.devmenu.DevMenuPresenter
60+
import io.newm.sharedfeatures.screens.devmenu.DevMenuUi
61+
import io.newm.sharedfeatures.screens.devmenu.featureflaglist.FeatureFlagsListPresenter
62+
import io.newm.sharedfeatures.screens.devmenu.featureflaglist.FeatureFlagsListUi
6363
import io.newm.utils.DynamicStatusBarSideEffect
6464
import io.newm.utils.ForceAppUpdateViewModel
6565
import io.newm.utils.ui

android/app-newm/src/main/java/io/newm/LoginActivity.kt

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,20 +40,20 @@ import io.newm.screens.forceupdate.openAppPlayStore
4040
import io.newm.shared.NewmAppLogger
4141
import io.newm.shared.commonPublic.analytics.NewmAppEventLogger
4242
import io.newm.shared.commonPublic.analytics.events.AppScreens
43-
import io.newm.sharedfeatures.devmenu.DevMenuPresenter
44-
import io.newm.sharedfeatures.devmenu.DevMenuUi
45-
import io.newm.sharedfeatures.devmenu.FeatureFlagsListPresenter
46-
import io.newm.sharedfeatures.devmenu.FeatureFlagsListUi
47-
import io.newm.sharedfeatures.login.LoginPresenter
48-
import io.newm.sharedfeatures.login.LoginUi
4943
import io.newm.sharedfeatures.screens.CreateAccountScreen
5044
import io.newm.sharedfeatures.screens.DevMenuMainScreen
5145
import io.newm.sharedfeatures.screens.FeatureFlagsListScreen
5246
import io.newm.sharedfeatures.screens.LoginScreen
5347
import io.newm.sharedfeatures.screens.ResetPasswordScreen
5448
import io.newm.sharedfeatures.screens.WelcomeScreen
55-
import io.newm.sharedfeatures.welcome.WelcomePresenter
56-
import io.newm.sharedfeatures.welcome.WelcomeUi
49+
import io.newm.sharedfeatures.screens.auth.login.LoginPresenter
50+
import io.newm.sharedfeatures.screens.auth.login.LoginUi
51+
import io.newm.sharedfeatures.screens.auth.welcome.WelcomePresenter
52+
import io.newm.sharedfeatures.screens.auth.welcome.WelcomeUi
53+
import io.newm.sharedfeatures.screens.devmenu.DevMenuPresenter
54+
import io.newm.sharedfeatures.screens.devmenu.DevMenuUi
55+
import io.newm.sharedfeatures.screens.devmenu.featureflaglist.FeatureFlagsListPresenter
56+
import io.newm.sharedfeatures.screens.devmenu.featureflaglist.FeatureFlagsListUi
5757
import io.newm.utils.DynamicStatusBarSideEffect
5858
import io.newm.utils.ForceAppUpdateViewModel
5959
import io.newm.utils.ui
@@ -216,7 +216,7 @@ fun WelcomeToNewm(
216216
)
217217

218218
val snackbarHostState = remember { SnackbarHostState() }
219-
io.newm.sharedfeatures.devmenu.DebugOverlay(
219+
io.newm.sharedfeatures.screens.devmenu.DebugOverlay(
220220
buildConfig = config,
221221
onOpenDebugMenu = { circuitNavigator.goTo(DevMenuMainScreen) },
222222
) {

android/app-newm/src/main/java/io/newm/NewmAppComposable.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ import io.newm.shared.NewmAppLogger
6969
import io.newm.shared.commonPublic.analytics.NewmAppEventLogger
7070
import io.newm.shared.commonPublic.analytics.events.AppScreens
7171
import io.newm.shared.config.NewmSharedBuildConfig
72-
import io.newm.sharedfeatures.devmenu.DebugOverlay
7372
import io.newm.sharedfeatures.screens.DevMenuMainScreen
73+
import io.newm.sharedfeatures.screens.devmenu.DebugOverlay
7474
import kotlinx.coroutines.launch
7575
import com.slack.circuit.runtime.screen.Screen as CircuitScreen
7676

android/app-newm/src/main/java/io/newm/NewmApplication.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import io.newm.shared.commonPublic.analytics.NewmAppEventLogger
1616
import io.newm.shared.commonPublic.featureflags.FeatureFlagService
1717
import io.newm.shared.config.NewmSharedBuildConfig
1818
import io.newm.shared.di.initKoin
19-
import io.newm.sharedfeatures.login.RecaptchaClientProvider
19+
import io.newm.sharedfeatures.screens.auth.login.RecaptchaClientProvider
2020
import io.newm.utils.AndroidEventLoggerImpl
2121
import io.newm.utils.AndroidNewmAppLogger
2222
import io.newm.utils.AppForegroundBackgroundTracker

android/app-newm/src/main/java/io/newm/di/android/Dependencies.kt

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,15 @@ import io.newm.screens.walletdetail.WalletDetailPresenter
3232
import io.newm.screens.wallets.WalletsPresenter
3333
import io.newm.shared.commonPublic.featureflags.FeatureFlagDataSource
3434
import io.newm.shared.config.NewmSharedBuildConfig
35-
import io.newm.sharedfeatures.devmenu.DevMenuPresenter
36-
import io.newm.sharedfeatures.devmenu.FeatureFlagsListPresenter
37-
import io.newm.sharedfeatures.login.LoginPresenter
38-
import io.newm.sharedfeatures.login.RecaptchaClientProvider
39-
import io.newm.sharedfeatures.login.RecaptchaManager
40-
import io.newm.sharedfeatures.login.RecaptchaManagerImpl
41-
import io.newm.sharedfeatures.welcome.SocialLoginManager
42-
import io.newm.sharedfeatures.welcome.SocialLoginManagerImpl
43-
import io.newm.sharedfeatures.welcome.WelcomePresenter
35+
import io.newm.sharedfeatures.screens.auth.login.LoginPresenter
36+
import io.newm.sharedfeatures.screens.auth.login.RecaptchaClientProvider
37+
import io.newm.sharedfeatures.screens.auth.login.RecaptchaManager
38+
import io.newm.sharedfeatures.screens.auth.login.RecaptchaManagerImpl
39+
import io.newm.sharedfeatures.screens.auth.welcome.SocialLoginManager
40+
import io.newm.sharedfeatures.screens.auth.welcome.SocialLoginManagerImpl
41+
import io.newm.sharedfeatures.screens.auth.welcome.WelcomePresenter
42+
import io.newm.sharedfeatures.screens.devmenu.DevMenuPresenter
43+
import io.newm.sharedfeatures.screens.devmenu.featureflaglist.FeatureFlagsListPresenter
4444
import io.newm.utils.AndroidFeatureFlagManager
4545
import io.newm.utils.ForceAppUpdateViewModel
4646
import org.koin.android.ext.koin.androidContext

android/app-newm/src/main/java/io/newm/screens/investment/portfolio/InvestmentPortfolioPresenter.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import io.newm.shared.commonPublic.usecases.GetInvestmentPortfolioDataUseCase
1414
import io.newm.shared.commonPublic.usecases.HasWalletConnectionsUseCase
1515
import io.newm.shared.commonPublic.usecases.SyncWalletConnectionsUseCase
1616
import io.newm.shared.commonPublic.usecases.WalletNFTTracksUseCase
17-
import io.newm.sharedfeatures.login.RecaptchaClientProvider
17+
import io.newm.sharedfeatures.screens.auth.login.RecaptchaClientProvider
1818
import kotlinx.coroutines.flow.flowOf
1919

2020
class InvestmentPortfolioPresenter(

android/app-newm/src/main/java/io/newm/screens/walletdetail/WalletDetailPresenter.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import io.newm.shared.commonPublic.usecases.FindWalletConnectionUseCase
2323
import io.newm.shared.commonPublic.usecases.GetInvestmentPortfolioDataUseCase
2424
import io.newm.shared.commonPublic.usecases.SyncWalletConnectionsUseCase
2525
import io.newm.shared.commonPublic.usecases.WalletNFTTracksUseCase
26-
import io.newm.sharedfeatures.login.RecaptchaClientProvider
26+
import io.newm.sharedfeatures.screens.auth.login.RecaptchaClientProvider
2727
import kotlinx.coroutines.flow.flowOf
2828
import kotlinx.coroutines.launch
2929

android/app-newm/src/main/java/io/newm/utils/ForceAppUpdateViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package io.newm.utils
33
import androidx.lifecycle.ViewModel
44
import com.google.android.recaptcha.RecaptchaAction
55
import io.newm.shared.commonPublic.usecases.ForceAppUpdateUseCase
6-
import io.newm.sharedfeatures.login.RecaptchaClientProvider
6+
import io.newm.sharedfeatures.screens.auth.login.RecaptchaClientProvider
77
import kotlinx.coroutines.Dispatchers
88
import kotlinx.coroutines.flow.MutableStateFlow
99
import kotlinx.coroutines.flow.StateFlow

0 commit comments

Comments
 (0)