From 4029431610d3494515ceb27303152b507c56a801 Mon Sep 17 00:00:00 2001 From: Anmol Verma Date: Tue, 1 Mar 2022 19:54:12 +0530 Subject: [PATCH] implemented basic project with xml only --- app/build.gradle.kts | 17 +- app/src/main/AndroidManifest.xml | 4 +- .../com/mutualmobile/praxis/di/AppModule.kt | 2 - .../praxis/di/NavigationModule.kt | 6 +- .../praxis/root/OnboardingActivity.kt | 52 --- .../main/res/layout/view_random_photos.xml | 31 -- common/build.gradle.kts | 5 - commonui/build.gradle.kts | 7 - .../praxis/commonui/keyboard/Keyboard.kt | 37 -- .../commonui/material/DefaultSnackbar.kt | 48 --- .../commonui/material/PraxisSurfaceAppBar.kt | 51 --- .../reusable/SlackDragComposableView.kt | 249 ------------- .../praxis/commonui/reusable/SlackImageBox.kt | 23 -- .../praxis/commonui/reusable/SlackListItem.kt | 62 ---- .../praxis/commonui/theme/Color.kt | 14 - .../praxis/commonui/theme/PraxisSurface.kt | 79 ---- .../praxis/commonui/theme/Shape.kt | 11 - .../praxis/commonui/theme/Theme.kt | 222 ------------ .../praxis/commonui/theme/Type.kt | 39 -- data/build.gradle.kts | 2 - navigator/build.gradle.kts | 70 ---- navigator/src/main/AndroidManifest.xml | 5 - .../praxis/navigator/NavigationCommand.kt | 20 - .../praxis/navigator/NavigationKeys.kt | 6 - .../praxis/navigator/Navigator.kt | 94 ----- .../mutualmobile/praxis/navigator/Screens.kt | 38 -- .../composenavigator/ComposeNavigator.kt | 64 ---- settings.gradle.kts | 4 +- ui-authentication/.gitignore | 1 - ui-authentication/consumer-rules.pro | 0 ui-authentication/proguard-rules.pro | 21 -- .../feat/authentication/nav/AuthNavGraph.kt | 24 -- .../authentication/ui/AuthenticationUI.kt | 343 ------------------ .../authentication/ui/ForgotPasswordUI.kt | 126 ------- .../praxis/feat/authentication/vm/AuthVM.kt | 148 -------- .../authentication/vm/ForgotPasswordVM.kt | 21 -- {navigator => ui-feature1}/.gitignore | 0 .../build.gradle.kts | 7 +- {navigator => ui-feature1}/consumer-rules.pro | 0 {navigator => ui-feature1}/proguard-rules.pro | 0 .../src/main/AndroidManifest.xml | 0 .../authentication/services/Validatable.kt | 0 .../feat/authentication/ui/MainActivity.kt | 99 +++++ .../ui/exceptions/FormValidationFailed.kt | 0 .../authentication/ui/model/FailureType.kt | 0 .../feat/authentication/ui/model/LoginForm.kt | 0 .../feat/authentication/vm/RandomViewModel.kt | 73 ++++ .../main/res/layout/view_random_photos.xml | 40 ++ ui-feature1/src/main/res/values/colors.xml | 4 + ui-feature1/src/main/res/values/dimens.xml | 5 + ui-feature1/src/main/res/values/strings.xml | 9 + .../feat/authentication/vm/AuthVMTest.kt | 0 ui-onboarding/.gitignore | 1 - ui-onboarding/build.gradle.kts | 91 ----- ui-onboarding/consumer-rules.pro | 0 ui-onboarding/proguard-rules.pro | 21 -- .../uionboarding/ExampleInstrumentedTest.kt | 24 -- ui-onboarding/src/main/AndroidManifest.xml | 5 - .../uionboarding/compose/CommonInputUI.kt | 119 ------ .../uionboarding/compose/EmailInputView.kt | 100 ----- .../uionboarding/compose/GettingStarted.kt | 210 ----------- .../uionboarding/compose/ScreenInputUI.kt | 34 -- .../uionboarding/compose/SkipTypingScreen.kt | 167 --------- .../compose/WorkspaceInputView.kt | 85 ----- .../uionboarding/nav/OnboardingNavigation.kt | 36 -- .../main/res/drawable-hdpi/gettingstarted.png | Bin 26976 -> 0 bytes .../res/drawable-xxhdpi/gettingstarted.png | Bin 100557 -> 0 bytes .../res/drawable-xxxhdpi/gettingstarted.png | Bin 139312 -> 0 bytes ui-onboarding/src/main/res/values/strings.xml | 5 - .../praxis/uionboarding/ExampleUnitTest.kt | 17 - 70 files changed, 236 insertions(+), 2862 deletions(-) delete mode 100644 app/src/main/java/com/mutualmobile/praxis/root/OnboardingActivity.kt delete mode 100644 app/src/main/res/layout/view_random_photos.xml delete mode 100644 commonui/src/main/java/com/mutualmobile/praxis/commonui/keyboard/Keyboard.kt delete mode 100644 commonui/src/main/java/com/mutualmobile/praxis/commonui/material/DefaultSnackbar.kt delete mode 100644 commonui/src/main/java/com/mutualmobile/praxis/commonui/material/PraxisSurfaceAppBar.kt delete mode 100644 commonui/src/main/java/com/mutualmobile/praxis/commonui/reusable/SlackDragComposableView.kt delete mode 100644 commonui/src/main/java/com/mutualmobile/praxis/commonui/reusable/SlackImageBox.kt delete mode 100644 commonui/src/main/java/com/mutualmobile/praxis/commonui/reusable/SlackListItem.kt delete mode 100644 commonui/src/main/java/com/mutualmobile/praxis/commonui/theme/Color.kt delete mode 100644 commonui/src/main/java/com/mutualmobile/praxis/commonui/theme/PraxisSurface.kt delete mode 100644 commonui/src/main/java/com/mutualmobile/praxis/commonui/theme/Shape.kt delete mode 100644 commonui/src/main/java/com/mutualmobile/praxis/commonui/theme/Theme.kt delete mode 100644 commonui/src/main/java/com/mutualmobile/praxis/commonui/theme/Type.kt delete mode 100644 navigator/build.gradle.kts delete mode 100644 navigator/src/main/AndroidManifest.xml delete mode 100644 navigator/src/main/java/com/mutualmobile/praxis/navigator/NavigationCommand.kt delete mode 100644 navigator/src/main/java/com/mutualmobile/praxis/navigator/NavigationKeys.kt delete mode 100644 navigator/src/main/java/com/mutualmobile/praxis/navigator/Navigator.kt delete mode 100644 navigator/src/main/java/com/mutualmobile/praxis/navigator/Screens.kt delete mode 100644 navigator/src/main/java/com/mutualmobile/praxis/navigator/composenavigator/ComposeNavigator.kt delete mode 100644 ui-authentication/.gitignore delete mode 100644 ui-authentication/consumer-rules.pro delete mode 100644 ui-authentication/proguard-rules.pro delete mode 100644 ui-authentication/src/main/java/com/praxis/feat/authentication/nav/AuthNavGraph.kt delete mode 100644 ui-authentication/src/main/java/com/praxis/feat/authentication/ui/AuthenticationUI.kt delete mode 100644 ui-authentication/src/main/java/com/praxis/feat/authentication/ui/ForgotPasswordUI.kt delete mode 100644 ui-authentication/src/main/java/com/praxis/feat/authentication/vm/AuthVM.kt delete mode 100644 ui-authentication/src/main/java/com/praxis/feat/authentication/vm/ForgotPasswordVM.kt rename {navigator => ui-feature1}/.gitignore (100%) rename {ui-authentication => ui-feature1}/build.gradle.kts (90%) rename {navigator => ui-feature1}/consumer-rules.pro (100%) rename {navigator => ui-feature1}/proguard-rules.pro (100%) rename {ui-authentication => ui-feature1}/src/main/AndroidManifest.xml (100%) rename {ui-authentication => ui-feature1}/src/main/java/com/praxis/feat/authentication/services/Validatable.kt (100%) create mode 100644 ui-feature1/src/main/java/com/praxis/feat/authentication/ui/MainActivity.kt rename {ui-authentication => ui-feature1}/src/main/java/com/praxis/feat/authentication/ui/exceptions/FormValidationFailed.kt (100%) rename {ui-authentication => ui-feature1}/src/main/java/com/praxis/feat/authentication/ui/model/FailureType.kt (100%) rename {ui-authentication => ui-feature1}/src/main/java/com/praxis/feat/authentication/ui/model/LoginForm.kt (100%) create mode 100644 ui-feature1/src/main/java/com/praxis/feat/authentication/vm/RandomViewModel.kt create mode 100644 ui-feature1/src/main/res/layout/view_random_photos.xml create mode 100644 ui-feature1/src/main/res/values/colors.xml create mode 100644 ui-feature1/src/main/res/values/dimens.xml create mode 100644 ui-feature1/src/main/res/values/strings.xml rename {ui-authentication => ui-feature1}/src/test/java/com/praxis/feat/authentication/vm/AuthVMTest.kt (100%) delete mode 100644 ui-onboarding/.gitignore delete mode 100644 ui-onboarding/build.gradle.kts delete mode 100644 ui-onboarding/consumer-rules.pro delete mode 100644 ui-onboarding/proguard-rules.pro delete mode 100644 ui-onboarding/src/androidTest/java/com/mutualmobile/praxis/uionboarding/ExampleInstrumentedTest.kt delete mode 100644 ui-onboarding/src/main/AndroidManifest.xml delete mode 100644 ui-onboarding/src/main/java/com/mutualmobile/praxis/uionboarding/compose/CommonInputUI.kt delete mode 100644 ui-onboarding/src/main/java/com/mutualmobile/praxis/uionboarding/compose/EmailInputView.kt delete mode 100644 ui-onboarding/src/main/java/com/mutualmobile/praxis/uionboarding/compose/GettingStarted.kt delete mode 100644 ui-onboarding/src/main/java/com/mutualmobile/praxis/uionboarding/compose/ScreenInputUI.kt delete mode 100644 ui-onboarding/src/main/java/com/mutualmobile/praxis/uionboarding/compose/SkipTypingScreen.kt delete mode 100644 ui-onboarding/src/main/java/com/mutualmobile/praxis/uionboarding/compose/WorkspaceInputView.kt delete mode 100644 ui-onboarding/src/main/java/com/mutualmobile/praxis/uionboarding/nav/OnboardingNavigation.kt delete mode 100644 ui-onboarding/src/main/res/drawable-hdpi/gettingstarted.png delete mode 100644 ui-onboarding/src/main/res/drawable-xxhdpi/gettingstarted.png delete mode 100644 ui-onboarding/src/main/res/drawable-xxxhdpi/gettingstarted.png delete mode 100644 ui-onboarding/src/main/res/values/strings.xml delete mode 100644 ui-onboarding/src/test/java/com/mutualmobile/praxis/uionboarding/ExampleUnitTest.kt diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 5f8997f..ab877c2 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -77,14 +77,6 @@ android { dataBinding = true } - buildFeatures { - compose = true - } - - composeOptions { - kotlinCompilerExtensionVersion = Lib.Androidx.composeVersion - } - packagingOptions { resources.excludes.add("META-INF/LICENSE.txt") resources.excludes.add("META-INF/NOTICE.txt") @@ -122,18 +114,11 @@ hilt { } dependencies { - - Lib.Androidx.list.forEach(::api) - Lib.Androidx.Compose.list.forEach(::api) - Lib.ThirdParty.list.forEach(::api) - Lib.Accompanist.list.forEach(::api) Lib.Google.list.forEach(::api) Lib.Kotlin.list.forEach(::api) + api(project(":ui-feature1")) - api(project(":ui-onboarding")) - api(project(":ui-authentication")) - api(project(":navigator")) api(project(":data")) api(project(":domain")) api(project(":common")) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8aae06c..fc0dff4 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -6,16 +6,16 @@ diff --git a/app/src/main/java/com/mutualmobile/praxis/di/AppModule.kt b/app/src/main/java/com/mutualmobile/praxis/di/AppModule.kt index 1914b29..ec6541e 100644 --- a/app/src/main/java/com/mutualmobile/praxis/di/AppModule.kt +++ b/app/src/main/java/com/mutualmobile/praxis/di/AppModule.kt @@ -1,8 +1,6 @@ package com.mutualmobile.praxis.di -import android.app.Application import android.content.Context -import dagger.Binds import dagger.Module import dagger.Provides import dagger.hilt.InstallIn diff --git a/app/src/main/java/com/mutualmobile/praxis/di/NavigationModule.kt b/app/src/main/java/com/mutualmobile/praxis/di/NavigationModule.kt index e0e88fc..cc2dfbc 100755 --- a/app/src/main/java/com/mutualmobile/praxis/di/NavigationModule.kt +++ b/app/src/main/java/com/mutualmobile/praxis/di/NavigationModule.kt @@ -1,7 +1,5 @@ package com.mutualmobile.praxis.di -import com.mutualmobile.praxis.navigator.ComposeNavigator -import com.mutualmobile.praxis.navigator.composenavigator.PraxisCloneComposeNavigator import dagger.Binds import dagger.Module import dagger.hilt.InstallIn @@ -12,7 +10,5 @@ import javax.inject.Singleton @InstallIn(SingletonComponent::class) abstract class NavigationModule { - @Binds - @Singleton - abstract fun provideComposeNavigator(praxisComposeNavigator: PraxisCloneComposeNavigator): ComposeNavigator + } diff --git a/app/src/main/java/com/mutualmobile/praxis/root/OnboardingActivity.kt b/app/src/main/java/com/mutualmobile/praxis/root/OnboardingActivity.kt deleted file mode 100644 index 243107a..0000000 --- a/app/src/main/java/com/mutualmobile/praxis/root/OnboardingActivity.kt +++ /dev/null @@ -1,52 +0,0 @@ -package com.mutualmobile.praxis.root - -import android.os.Bundle -import androidx.activity.compose.setContent -import androidx.appcompat.app.AppCompatActivity -import androidx.compose.runtime.LaunchedEffect -import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen -import androidx.core.view.WindowCompat -import androidx.navigation.compose.NavHost -import androidx.navigation.compose.rememberNavController -import com.google.accompanist.insets.ProvideWindowInsets -import dagger.hilt.android.AndroidEntryPoint -import com.mutualmobile.praxis.navigator.ComposeNavigator -import com.mutualmobile.praxis.navigator.PraxisRoute -import com.mutualmobile.praxis.uionboarding.nav.onboardingNavigation -import com.praxis.feat.authentication.nav.authNavGraph -import javax.inject.Inject - -@AndroidEntryPoint -class OnboardingActivity : AppCompatActivity() { - - @Inject - lateinit var composeNavigator: ComposeNavigator - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - WindowCompat.setDecorFitsSystemWindows(window, false) - - installSplashScreen() - setContent { - val navController = rememberNavController() - - LaunchedEffect(Unit) { - composeNavigator.handleNavigationCommands(navController) - } - - ProvideWindowInsets(windowInsetsAnimationsEnabled = true) { - NavHost( - navController = navController, - startDestination = PraxisRoute.OnBoarding.name, - ) { - onboardingNavigation( - composeNavigator = composeNavigator, - ) - authNavGraph() - } - } - - - } - } -} \ No newline at end of file diff --git a/app/src/main/res/layout/view_random_photos.xml b/app/src/main/res/layout/view_random_photos.xml deleted file mode 100644 index a694678..0000000 --- a/app/src/main/res/layout/view_random_photos.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/common/build.gradle.kts b/common/build.gradle.kts index e9bdb2f..dc99b90 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -34,16 +34,11 @@ dependencies { Lib.Androidx.list.forEach(::implementation) - Lib.Androidx.Compose.list.forEach(::implementation) - Lib.ThirdParty.list.forEach(::implementation) - Lib.Accompanist.list.forEach(::implementation) Lib.Google.list.forEach(::implementation) Lib.Kotlin.list.forEach(::implementation) /*DI*/ implementation(Lib.Di.hilt) - implementation(Lib.Di.hiltNavigationCompose) - implementation(Lib.Di.viewmodel) kapt(Lib.Di.hiltCompiler) kapt(Lib.Di.hiltAndroidCompiler) diff --git a/commonui/build.gradle.kts b/commonui/build.gradle.kts index 73940cf..770cfe9 100644 --- a/commonui/build.gradle.kts +++ b/commonui/build.gradle.kts @@ -43,19 +43,12 @@ kapt { } dependencies { - - Lib.Androidx.list.forEach(::implementation) - Lib.Androidx.Compose.list.forEach(::implementation) - Lib.ThirdParty.list.forEach(::implementation) - Lib.Accompanist.list.forEach(::implementation) Lib.Google.list.forEach(::implementation) Lib.Kotlin.list.forEach(::implementation) /*DI*/ implementation(Lib.Di.hilt) - implementation(Lib.Di.hiltNavigationCompose) - implementation(Lib.Di.viewmodel) kapt(Lib.Di.hiltCompiler) kapt(Lib.Di.hiltAndroidCompiler) diff --git a/commonui/src/main/java/com/mutualmobile/praxis/commonui/keyboard/Keyboard.kt b/commonui/src/main/java/com/mutualmobile/praxis/commonui/keyboard/Keyboard.kt deleted file mode 100644 index 1192aa2..0000000 --- a/commonui/src/main/java/com/mutualmobile/praxis/commonui/keyboard/Keyboard.kt +++ /dev/null @@ -1,37 +0,0 @@ -package com.mutualmobile.praxis.commonui.keyboard - -import android.graphics.Rect -import android.view.ViewTreeObserver -import androidx.compose.runtime.* -import androidx.compose.ui.platform.LocalView - -sealed class Keyboard { - data class Opened(var height: Int) : Keyboard() - object Closed : Keyboard() -} - -@Composable -fun keyboardAsState(): State { - val keyboardState = remember { mutableStateOf(Keyboard.Closed) } - val view = LocalView.current - DisposableEffect(view) { - val onGlobalListener = ViewTreeObserver.OnGlobalLayoutListener { - val rect = Rect() - view.getWindowVisibleDisplayFrame(rect) - val screenHeight = view.rootView.height - val keypadHeight = screenHeight - rect.bottom - keyboardState.value = if (keypadHeight > screenHeight * 0.15) { - Keyboard.Opened(screenHeight - keypadHeight) - } else { - Keyboard.Closed - } - } - view.viewTreeObserver.addOnGlobalLayoutListener(onGlobalListener) - - onDispose { - view.viewTreeObserver.removeOnGlobalLayoutListener(onGlobalListener) - } - } - - return keyboardState -} \ No newline at end of file diff --git a/commonui/src/main/java/com/mutualmobile/praxis/commonui/material/DefaultSnackbar.kt b/commonui/src/main/java/com/mutualmobile/praxis/commonui/material/DefaultSnackbar.kt deleted file mode 100644 index f040660..0000000 --- a/commonui/src/main/java/com/mutualmobile/praxis/commonui/material/DefaultSnackbar.kt +++ /dev/null @@ -1,48 +0,0 @@ -package com.mutualmobile.praxis.commonui.material - -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.wrapContentHeight -import androidx.compose.material.* -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import com.mutualmobile.praxis.commonui.theme.PraxisColorProvider -import com.mutualmobile.praxis.commonui.theme.PraxisTypography - -@Composable -fun DefaultSnackbar( - snackbarHostState: SnackbarHostState, - modifier: Modifier = Modifier, - onDismiss: () -> Unit = { } -) { - SnackbarHost( - hostState = snackbarHostState, - snackbar = { data -> - Snackbar( - content = { - Text( - text = data.message, - style = PraxisTypography.body1, - color = PraxisColorProvider.colors.textPrimary, - ) - }, - action = { - data.actionLabel?.let { actionLabel -> - TextButton(onClick = onDismiss) { - Text( - text = actionLabel, - color = PraxisColorProvider.colors.textPrimary, - style = PraxisTypography.body2 - ) - } - } - }, - backgroundColor = PraxisColorProvider.colors.uiBackground - ) - }, - modifier = modifier - .fillMaxWidth() - .wrapContentHeight(Alignment.Bottom) - ) -} \ No newline at end of file diff --git a/commonui/src/main/java/com/mutualmobile/praxis/commonui/material/PraxisSurfaceAppBar.kt b/commonui/src/main/java/com/mutualmobile/praxis/commonui/material/PraxisSurfaceAppBar.kt deleted file mode 100644 index a73c572..0000000 --- a/commonui/src/main/java/com/mutualmobile/praxis/commonui/material/PraxisSurfaceAppBar.kt +++ /dev/null @@ -1,51 +0,0 @@ -package com.mutualmobile.praxis.commonui.material - -import androidx.compose.foundation.layout.PaddingValues -import androidx.compose.foundation.layout.RowScope -import androidx.compose.material.* -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.unit.Dp -import com.mutualmobile.praxis.commonui.theme.PraxisSurface - -@Composable -fun PraxisSurfaceAppBar( - title: @Composable () -> Unit, - modifier: Modifier = Modifier, - navigationIcon: @Composable (() -> Unit)? = null, - actions: @Composable RowScope.() -> Unit = {}, - backgroundColor: Color = MaterialTheme.colors.primarySurface, - contentColor: Color = contentColorFor(backgroundColor), - elevation: Dp = AppBarDefaults.TopAppBarElevation, -) { - PraxisSurface( - color = backgroundColor, - contentColor = contentColor, - elevation = elevation - ) { - TopAppBar( - title, modifier, navigationIcon, actions, backgroundColor, contentColor, elevation - ) - } -} - -@Composable -fun PraxisSurfaceAppBar( - modifier: Modifier = Modifier, - backgroundColor: Color = MaterialTheme.colors.primarySurface, - contentColor: Color = contentColorFor(backgroundColor), - elevation: Dp = AppBarDefaults.TopAppBarElevation, - contentPadding: PaddingValues = AppBarDefaults.ContentPadding, - content: @Composable RowScope.() -> Unit -) { - PraxisSurface( - color = backgroundColor, - contentColor = contentColor, - elevation = elevation - ) { - TopAppBar( - modifier, backgroundColor, contentColor, elevation, contentPadding, content - ) - } -} \ No newline at end of file diff --git a/commonui/src/main/java/com/mutualmobile/praxis/commonui/reusable/SlackDragComposableView.kt b/commonui/src/main/java/com/mutualmobile/praxis/commonui/reusable/SlackDragComposableView.kt deleted file mode 100644 index 321d83c..0000000 --- a/commonui/src/main/java/com/mutualmobile/praxis/commonui/reusable/SlackDragComposableView.kt +++ /dev/null @@ -1,249 +0,0 @@ -package com.mutualmobile.praxis.commonui.reusable - -import androidx.compose.animation.core.* -import androidx.compose.foundation.gestures.detectHorizontalDragGestures -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.offset -import androidx.compose.runtime.* -import androidx.compose.ui.Modifier -import androidx.compose.ui.geometry.Offset -import androidx.compose.ui.input.pointer.PointerInputChange -import androidx.compose.ui.input.pointer.consumePositionChange -import androidx.compose.ui.input.pointer.pointerInput -import androidx.compose.ui.platform.LocalConfiguration -import androidx.compose.ui.platform.LocalDensity -import androidx.compose.ui.unit.IntOffset -import androidx.compose.ui.unit.dp -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.launch -import kotlin.math.roundToInt - -@Composable -fun PraxisDragComposableView( - isLeftNavOpen: Boolean, - isChatViewClosed: Boolean, - mainScreenOffset: Float, - chatScreenOffset: Float, - onOpenCloseLeftView: (Boolean) -> Unit, - onOpenCloseRightView: (Boolean) -> Unit, - mainScreenComposable: @Composable (modifier: Modifier) -> Unit, - leftViewComposable: @Composable (modifier: Modifier) -> Unit, - rightViewComposable: @Composable (modifier: Modifier) -> Unit, -) { - val sideNavOffX = remember { - Animatable(viewOffset(isLeftNavOpen, mainScreenOffset)) - } - val chatViewOffX = remember { - Animatable(viewOffset(isChatViewClosed, chatScreenOffset)) - } - - val coroutineScope = rememberCoroutineScope() - - InitialOffsetsSideEffect( - coroutineScope, - sideNavOffX, - isLeftNavOpen, - mainScreenOffset, - chatViewOffX, - isChatViewClosed, - chatScreenOffset - ) - - Box(Modifier.fillMaxWidth()) { - leftViewComposable(Modifier) - mainScreenComposable( - mainScreenModifier( - sideNavOffX, - mainScreenOffset, - coroutineScope, - onOpenCloseLeftView, - onOpenCloseRightView, - chatViewOffX, - chatScreenOffset - ) - ) - rightViewComposable( - chatScreenModifier( - chatViewOffX, - chatScreenOffset, - coroutineScope, - onOpenCloseRightView - ) - ) - } - - -} - -@Composable -private fun InitialOffsetsSideEffect( - coroutineScope: CoroutineScope, - sideNavOffX: Animatable, - isLeftNavOpen: Boolean, - mainScreenOffset: Float, - chatViewOffX: Animatable, - isChatViewClosed: Boolean, - chatScreenOffset: Float -) { - SideEffect { - coroutineScope.launch { - sideNavOffX.snapTo(viewOffset(isLeftNavOpen, mainScreenOffset)) - } - coroutineScope.launch { - chatViewOffX.snapTo(viewOffset(isChatViewClosed, chatScreenOffset)) - } - } -} - -private fun viewOffset(needsOpen: Boolean, offset: Float) = - if (needsOpen) offset else 0f - - -@Composable -private fun chatScreenModifier( - offsetX: Animatable, - requiredOffset: Float, - coroutineScope: CoroutineScope, - onOpen: (Boolean) -> Unit, -) = Modifier - .offset { - IntOffset( - (offsetX.value).roundToInt(), - 0 - ) - } - .pointerInput(Unit) { - detectHorizontalDragGestures({ - //start - }, { - rightViewEndTransition(offsetX, requiredOffset, coroutineScope, onOpen) - }, { - //cancel - - }, { change, dragAmount -> - // this moves the chat view left/right - val summedMain = Offset(x = offsetX.targetValue + dragAmount, y = 0f) - val newDragValueMain = Offset(x = summedMain.x.coerceIn(0f, requiredOffset), y = 0f) - change.consumePositionChange() - coroutineScope.launch { - offsetX.animateTo(newDragValueMain.x, animationSpec = tween(50)) - } - }) - } - -private fun mainScreenModifier( - offsetX: Animatable, - dragOffset: Float, - coroutineScope: CoroutineScope, - onOpenSideNav: (Boolean) -> Unit, - onOpenCloseRightView: (Boolean) -> Unit, - chatViewOffX: Animatable, - chatScreenOffset: Float, -) = Modifier - .offset { - IntOffset( - (offsetX.value).roundToInt(), - 0 - ) - } - .pointerInput(Unit) { - detectHorizontalDragGestures({ - //start - }, { - sideNavigationEndTransition( - offsetX, - dragOffset, - coroutineScope, - onOpenSideNav - ) - rightViewEndTransition( - chatViewOffX, - chatScreenOffset, - coroutineScope, - onOpenCloseRightView - ) - - }, { - //cancel - - }, { change, dragAmount -> - mainAnimateOffset( - offsetX, - dragAmount, - dragOffset, - change, - coroutineScope, - chatViewOffX, - chatScreenOffset - ) - }) - } - -fun rightViewEndTransition( - offsetX: Animatable, - requiredOffset: Float, - coroutineScope: CoroutineScope, - onOpen: (Boolean) -> Unit -) { - //end - if (offsetX.targetValue > requiredOffset / 2) { - coroutineScope.launch { - offsetX.animateTo(requiredOffset, animationSpec = tween(150)) - onOpen(true) - } - } else { - coroutineScope.launch { - offsetX.animateTo(0F, animationSpec = tween(150)) - onOpen(false) - } - } -} - -private fun sideNavigationEndTransition( - offsetX: Animatable, - dragOffset: Float, - coroutineScope: CoroutineScope, - onOpenSideNav: (Boolean) -> Unit -) { - if (offsetX.targetValue > dragOffset / 2) { - coroutineScope.launch { - offsetX.animateTo(dragOffset, animationSpec = tween(150)) - onOpenSideNav(true) - } - } else { - coroutineScope.launch { - offsetX.animateTo(0F, animationSpec = tween(150)) - onOpenSideNav(false) - } - } -} - -private fun mainAnimateOffset( - offsetX: Animatable, - dragAmount: Float, - mainDragOffset: Float, - change: PointerInputChange, - coroutineScope: CoroutineScope, - chatViewOffX: Animatable, - chatScreenOffset: Float -) { - // this moves the chat view from right to left/left to right - if (offsetX.targetValue <= 0f) { - val summedChat = Offset(x = chatViewOffX.targetValue + dragAmount, y = 0f) - val chatNewDragValueMain = Offset(x = summedChat.x.coerceIn(0f, chatScreenOffset), y = 0f) - change.consumePositionChange() - coroutineScope.launch { - chatViewOffX.animateTo(chatNewDragValueMain.x, animationSpec = tween(50)) - } - } - - // this moved the main view left/right - val summedMain = Offset(x = offsetX.targetValue + dragAmount, y = 0f) - val newDragValueMain = Offset(x = summedMain.x.coerceIn(0f, mainDragOffset), y = 0f) - change.consumePositionChange() - coroutineScope.launch { - offsetX.animateTo(newDragValueMain.x, animationSpec = tween(50)) - } - -} \ No newline at end of file diff --git a/commonui/src/main/java/com/mutualmobile/praxis/commonui/reusable/SlackImageBox.kt b/commonui/src/main/java/com/mutualmobile/praxis/commonui/reusable/SlackImageBox.kt deleted file mode 100644 index da069d4..0000000 --- a/commonui/src/main/java/com/mutualmobile/praxis/commonui/reusable/SlackImageBox.kt +++ /dev/null @@ -1,23 +0,0 @@ -package com.mutualmobile.praxis.commonui.reusable - -import androidx.compose.foundation.Image -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import coil.compose.rememberImagePainter -import coil.memory.MemoryCache -import coil.request.CachePolicy -import coil.transform.RoundedCornersTransformation - -@Composable -fun PraxisImageBox(modifier: Modifier, imageUrl: String) { - Image( - painter = rememberImagePainter( - data = imageUrl, - builder = { - transformations(RoundedCornersTransformation(12.0f, 12.0f, 12.0f, 12.0f)) - } - ), - contentDescription = null, - modifier = modifier - ) -} \ No newline at end of file diff --git a/commonui/src/main/java/com/mutualmobile/praxis/commonui/reusable/SlackListItem.kt b/commonui/src/main/java/com/mutualmobile/praxis/commonui/reusable/SlackListItem.kt deleted file mode 100644 index 285e868..0000000 --- a/commonui/src/main/java/com/mutualmobile/praxis/commonui/reusable/SlackListItem.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.mutualmobile.praxis.commonui.reusable - -import androidx.compose.foundation.clickable -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.size -import androidx.compose.material.ExperimentalMaterialApi -import androidx.compose.material.Icon -import androidx.compose.material.Text -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.vector.ImageVector -import androidx.compose.ui.unit.dp -import com.mutualmobile.praxis.commonui.theme.PraxisColorProvider -import com.mutualmobile.praxis.commonui.theme.PraxisTypography - -@OptIn(ExperimentalMaterialApi::class) -@Composable -fun PraxisListItem( - icon: ImageVector, - title: String, - trailingItem: ImageVector? = null, - onItemClick: () -> Unit = {} -) { - Row( - modifier = Modifier - .padding(8.dp) - .clickable { - onItemClick() - }, verticalAlignment = Alignment.CenterVertically - ) { - Icon( - imageVector = icon, - contentDescription = null, - tint = PraxisColorProvider.colors.textPrimary.copy(alpha = 0.4f), - modifier = Modifier - .size(28.dp) - .padding(4.dp) - ) - Text( - text = title, - style = PraxisTypography.subtitle1.copy( - color = PraxisColorProvider.colors.textPrimary.copy( - alpha = 0.8f - ) - ), modifier = Modifier - .weight(1f) - .padding(8.dp) - ) - trailingItem?.let { safeIcon -> - Icon( - imageVector = safeIcon, - contentDescription = null, - tint = PraxisColorProvider.colors.textPrimary.copy(alpha = 0.4f), - modifier = Modifier - .size(24.dp) - .padding(4.dp) - ) - } - } -} \ No newline at end of file diff --git a/commonui/src/main/java/com/mutualmobile/praxis/commonui/theme/Color.kt b/commonui/src/main/java/com/mutualmobile/praxis/commonui/theme/Color.kt deleted file mode 100644 index 875c335..0000000 --- a/commonui/src/main/java/com/mutualmobile/praxis/commonui/theme/Color.kt +++ /dev/null @@ -1,14 +0,0 @@ -package com.mutualmobile.praxis.commonui.theme - -import androidx.compose.ui.graphics.Color - -val PraxisCloneColor = Color(0xff411540) -val DarkAppBarColor = Color(0xff1a1b1e) -val DarkBackground = Color(0xff1b1d21) -val FunctionalRed = Color(0xffd00036) -val FunctionalRedDark = Color(0xffea6d7e) -val PraxisLogoYellow = Color(0xffECB22E) -val LineColorLight = Color.Black.copy(alpha = 0.4f) -val LineColorDark = Color.LightGray.copy(alpha = 0.1f) -const val AlphaNearOpaque = 0.95f -const val AlphaNearTransparent = 0.15f diff --git a/commonui/src/main/java/com/mutualmobile/praxis/commonui/theme/PraxisSurface.kt b/commonui/src/main/java/com/mutualmobile/praxis/commonui/theme/PraxisSurface.kt deleted file mode 100644 index 65b341e..0000000 --- a/commonui/src/main/java/com/mutualmobile/praxis/commonui/theme/PraxisSurface.kt +++ /dev/null @@ -1,79 +0,0 @@ -package com.mutualmobile.praxis.commonui.theme - -import androidx.compose.foundation.BorderStroke -import androidx.compose.foundation.background -import androidx.compose.foundation.border -import androidx.compose.foundation.layout.Box -import androidx.compose.material.LocalContentColor -import androidx.compose.runtime.Composable -import androidx.compose.runtime.CompositionLocalProvider -import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.clip -import androidx.compose.ui.draw.shadow -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.graphics.RectangleShape -import androidx.compose.ui.graphics.Shape -import androidx.compose.ui.graphics.compositeOver -import androidx.compose.ui.unit.Dp -import androidx.compose.ui.unit.dp -import androidx.compose.ui.zIndex -import kotlin.math.ln - -/** - * An alternative to [androidx.compose.material.Surface] - */ -@Composable -fun PraxisSurface( - modifier: Modifier = Modifier, - shape: Shape = RectangleShape, - color: Color = PraxisColorProvider.colors.uiBackground, - contentColor: Color = PraxisColorProvider.colors.textSecondary, - border: BorderStroke? = null, - elevation: Dp = 0.dp, - content: @Composable () -> Unit -) { - Box( - modifier = modifier - .shadow(elevation = elevation, shape = shape, clip = false) - .zIndex(elevation.value) - .then(if (border != null) Modifier.border(border, shape) else Modifier) - .background( - color = getBackgroundColorForElevation(color, elevation), - shape = shape - ) - .clip(shape) - ) { - CompositionLocalProvider(LocalContentColor provides contentColor, content = content) - } -} - -@Composable -private fun getBackgroundColorForElevation( - color: Color, - elevation: Dp -): Color { - return if (elevation > 0.dp - ) { - color.withElevation(elevation) - } else { - color - } -} - -/** - * Applies a [Color.White] overlay to this color based on the [elevation]. This increases visibility - * of elevation for surfaces in a dark theme. - */ -private fun Color.withElevation(elevation: Dp): Color { - val foreground = calculateForeground(elevation) - return foreground.compositeOver(this) -} - -/** - * @return the alpha-modified [Color.White] to overlay on top of the surface color to produce - * the resultant color. - */ -private fun calculateForeground(elevation: Dp): Color { - val alpha = ((4.5f * ln(elevation.value + 1)) + 2f) / 20f - return Color.White.copy(alpha = alpha) -} \ No newline at end of file diff --git a/commonui/src/main/java/com/mutualmobile/praxis/commonui/theme/Shape.kt b/commonui/src/main/java/com/mutualmobile/praxis/commonui/theme/Shape.kt deleted file mode 100644 index 472db0e..0000000 --- a/commonui/src/main/java/com/mutualmobile/praxis/commonui/theme/Shape.kt +++ /dev/null @@ -1,11 +0,0 @@ -package com.mutualmobile.praxis.commonui.theme - -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.Shapes -import androidx.compose.ui.unit.dp - -val PraxisShapes = Shapes( - small = RoundedCornerShape(4.dp), - medium = RoundedCornerShape(6.dp), - large = RoundedCornerShape(10.dp) -) \ No newline at end of file diff --git a/commonui/src/main/java/com/mutualmobile/praxis/commonui/theme/Theme.kt b/commonui/src/main/java/com/mutualmobile/praxis/commonui/theme/Theme.kt deleted file mode 100644 index fd0b2e5..0000000 --- a/commonui/src/main/java/com/mutualmobile/praxis/commonui/theme/Theme.kt +++ /dev/null @@ -1,222 +0,0 @@ -package com.mutualmobile.praxis.commonui.theme - -import androidx.compose.foundation.isSystemInDarkTheme -import androidx.compose.material.Colors -import androidx.compose.material.MaterialTheme -import androidx.compose.runtime.Composable -import androidx.compose.runtime.CompositionLocalProvider -import androidx.compose.runtime.SideEffect -import androidx.compose.runtime.Stable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.runtime.staticCompositionLocalOf -import androidx.compose.ui.graphics.Color -import com.google.accompanist.systemuicontroller.rememberSystemUiController - -private val LightColorPalette = PraxisCloneColorPalette( - brand = PraxisCloneColor, - accent = PraxisCloneColor, - uiBackground = Color.White, - textPrimary = Color.Black, - textSecondary = Color.DarkGray, - error = FunctionalRed, - statusBarColor = PraxisCloneColor, - isDark = false, - buttonColor = Color.Black, - buttonTextColor = Color.White, - darkBackground = DarkBackground, - appBarColor = PraxisCloneColor, - lineColor = LineColorLight, - bottomNavSelectedColor = Color.Black, - bottomNavUnSelectedColor = Color.LightGray, - appBarIconColor = Color.White, - appBarTextTitleColor = Color.White, - appBarTextSubTitleColor = Color.White, - sendButtonDisabled = Color.LightGray, - sendButtonEnabled = Color.Black -) - -private val DarkColorPalette = PraxisCloneColorPalette( - brand = PraxisCloneColor, - accent = DarkBackground, - uiBackground = DarkBackground, - textPrimary = Color.White, - textSecondary = Color.White, - error = FunctionalRedDark, - statusBarColor = PraxisCloneColor, - isDark = true, - buttonColor = Color.White, - buttonTextColor = Color.Black, - darkBackground = DarkBackground, - appBarColor = DarkAppBarColor, - lineColor = LineColorDark, - bottomNavSelectedColor = Color.White, - bottomNavUnSelectedColor = Color.Gray, - appBarIconColor = Color.White, - appBarTextTitleColor = Color.White, - appBarTextSubTitleColor = Color.White, - sendButtonDisabled = Color.White.copy(alpha = 0.4f), - sendButtonEnabled = Color.White -) - -@Composable -fun PraxisTheme( - isDarkTheme: Boolean = isSystemInDarkTheme(), - content: @Composable () -> Unit -) { - val colors = if (isDarkTheme) DarkColorPalette else LightColorPalette - val sysUiController = rememberSystemUiController() - - SideEffect { - sysUiController.setSystemBarsColor(color = colors.appBarColor) - sysUiController.setNavigationBarColor(color = colors.appBarColor) - } - - ProvidePraxisCloneColors(colors) { - MaterialTheme( - colors = debugColors(isDarkTheme), - typography = PraxisTypography, - shapes = PraxisShapes, - content = content - ) - } -} - -object PraxisColorProvider { - val colors: PraxisCloneColorPalette - @Composable - get() = LocalPraxisCloneColor.current -} - -/** - * PraxisClone custom Color Palette - */ -@Stable -class PraxisCloneColorPalette( - brand: Color, - accent: Color, - uiBackground: Color, - textPrimary: Color = brand, - textSecondary: Color, - error: Color, - statusBarColor: Color, - isDark: Boolean, - buttonColor: Color, - buttonTextColor: Color, - darkBackground: Color, - appBarColor: Color, - lineColor: Color, - bottomNavSelectedColor: Color, - bottomNavUnSelectedColor: Color, - appBarIconColor: Color, - appBarTextTitleColor: Color, - appBarTextSubTitleColor: Color, - sendButtonDisabled:Color, - sendButtonEnabled:Color -) { - var brand by mutableStateOf(brand) - private set - var accent by mutableStateOf(accent) - private set - var uiBackground by mutableStateOf(uiBackground) - private set - var statusBarColor by mutableStateOf(statusBarColor) - private set - var textPrimary by mutableStateOf(textPrimary) - private set - var textSecondary by mutableStateOf(textSecondary) - private set - var error by mutableStateOf(error) - private set - var isDark by mutableStateOf(isDark) - private set - var buttonColor by mutableStateOf(buttonColor) - private set - var buttonTextColor by mutableStateOf(buttonTextColor) - private set - var darkBackground by mutableStateOf(darkBackground) - private set - var appBarColor by mutableStateOf(appBarColor) - private set - var lineColor by mutableStateOf(lineColor) - private set - - var bottomNavSelectedColor by mutableStateOf(bottomNavSelectedColor) - private set - var bottomNavUnSelectedColor by mutableStateOf(bottomNavUnSelectedColor) - private set - var appBarIconColor by mutableStateOf(appBarIconColor) - private set - - var appBarTextTitleColor by mutableStateOf(appBarTextTitleColor) - private set - var appBarTextSubTitleColor by mutableStateOf(appBarTextSubTitleColor) - private set - var sendButtonDisabled by mutableStateOf(sendButtonDisabled) - private set - - var sendButtonEnabled by mutableStateOf(sendButtonEnabled) - private set - - - fun update(other: PraxisCloneColorPalette) { - brand = other.brand - uiBackground = other.uiBackground - textPrimary = other.textPrimary - textSecondary = other.textSecondary - error = other.error - statusBarColor = other.statusBarColor - isDark = other.isDark - buttonColor = other.buttonColor - buttonTextColor = other.buttonTextColor - darkBackground = other.darkBackground - appBarColor = other.appBarColor - lineColor = other.lineColor - bottomNavSelectedColor = other.bottomNavSelectedColor - bottomNavUnSelectedColor = other.bottomNavUnSelectedColor - appBarIconColor = other.appBarIconColor - appBarTextTitleColor = other.appBarTextTitleColor - appBarTextSubTitleColor = other.appBarTextSubTitleColor - sendButtonEnabled = other.sendButtonEnabled - sendButtonDisabled = other.sendButtonDisabled - } -} - -@Composable -fun ProvidePraxisCloneColors( - colors: PraxisCloneColorPalette, - content: @Composable () -> Unit -) { - val colorPalette = remember { colors } - colorPalette.update(colors) - CompositionLocalProvider(LocalPraxisCloneColor provides colorPalette, content = content) -} - -private val LocalPraxisCloneColor = staticCompositionLocalOf { - error("No PraxisCloneColorPalette provided") -} - -/** - * A Material [Colors] implementation which sets all colors to [debugColor] to discourage usage of - * [MaterialTheme.colors] in preference to [PraxisColorProvider.colors]. - */ -fun debugColors( - darkTheme: Boolean, - debugColor: Color = Color.Red -) = Colors( - primary = debugColor, - primaryVariant = debugColor, - secondary = debugColor, - secondaryVariant = debugColor, - background = debugColor, - surface = debugColor, - error = debugColor, - onPrimary = debugColor, - onSecondary = debugColor, - onBackground = debugColor, - onSurface = debugColor, - onError = debugColor, - isLight = !darkTheme -) \ No newline at end of file diff --git a/commonui/src/main/java/com/mutualmobile/praxis/commonui/theme/Type.kt b/commonui/src/main/java/com/mutualmobile/praxis/commonui/theme/Type.kt deleted file mode 100644 index 1b40ff3..0000000 --- a/commonui/src/main/java/com/mutualmobile/praxis/commonui/theme/Type.kt +++ /dev/null @@ -1,39 +0,0 @@ -package com.mutualmobile.praxis.commonui.theme - -import androidx.compose.material.Typography -import androidx.compose.ui.text.TextStyle -import androidx.compose.ui.text.font.Font -import androidx.compose.ui.text.font.FontFamily -import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.unit.sp -import com.mutualmobile.praxis.commonui.R - -// Set of Material typography styles to start with - -val praxisFontFamily = - FontFamily( - Font(R.font.lato_bold, weight = FontWeight.Bold), - Font(R.font.lato_light, weight = FontWeight.Light), - Font(R.font.lato_regular) - ) - -val PraxisTypography = Typography( - defaultFontFamily = praxisFontFamily, - body1 = TextStyle( - fontFamily = praxisFontFamily, - fontWeight = FontWeight.Normal, - fontSize = 16.sp - ), - button = TextStyle( - fontFamily = praxisFontFamily, - fontWeight = FontWeight.W500, - fontSize = 14.sp - ), - caption = TextStyle( - fontFamily = praxisFontFamily, - fontWeight = FontWeight.Normal, - fontSize = 12.sp - ) - - -) \ No newline at end of file diff --git a/data/build.gradle.kts b/data/build.gradle.kts index 00e49bf..9b6615e 100644 --- a/data/build.gradle.kts +++ b/data/build.gradle.kts @@ -36,8 +36,6 @@ dependencies { Lib.Networking.ktorList.forEach(::implementation) /*DI*/ implementation(Lib.Di.hilt) - implementation(Lib.Di.hiltNavigationCompose) - implementation(Lib.Di.viewmodel) kapt(Lib.Di.hiltCompiler) kapt(Lib.Di.hiltAndroidCompiler) diff --git a/navigator/build.gradle.kts b/navigator/build.gradle.kts deleted file mode 100644 index fe83c7e..0000000 --- a/navigator/build.gradle.kts +++ /dev/null @@ -1,70 +0,0 @@ -plugins { - id(BuildPlugins.ANDROID_LIBRARY_PLUGIN) - id(BuildPlugins.KOTLIN_ANDROID_PLUGIN) - id(BuildPlugins.KOTLIN_KAPT) -} - -android { - compileSdk = AppVersions.COMPILE_SDK - - defaultConfig { - minSdk = (AppVersions.MIN_SDK) - targetSdk = (AppVersions.TARGET_SDK) - testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - } - - buildTypes { - getByName("release") { - isMinifyEnabled = false - proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro") - } - } - - compileOptions { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 - } - - kotlinOptions { - jvmTarget = "1.8" - } - - composeOptions { - kotlinCompilerExtensionVersion = Lib.Androidx.composeVersion - } -} - -// Required for annotation processing plugins like Dagger -kapt { - generateStubs = true - correctErrorTypes = true -} - -dependencies { - /*Kotlin*/ - - - Lib.Androidx.list.forEach(::implementation) - Lib.Androidx.Compose.list.forEach(::implementation) - Lib.ThirdParty.list.forEach(::implementation) - Lib.Accompanist.list.forEach(::implementation) - Lib.Google.list.forEach(::implementation) - Lib.Kotlin.list.forEach(::implementation) - - /*DI*/ - implementation(Lib.Di.hilt) - implementation(Lib.Di.hiltNavigationCompose) - implementation(Lib.Di.viewmodel) - kapt(Lib.Di.hiltCompiler) - kapt(Lib.Di.hiltAndroidCompiler) - - // Room - implementation(Lib.Room.roomKtx) - implementation(Lib.Room.roomRuntime) - add("kapt", Lib.Room.roomCompiler) - testImplementation(Lib.Room.testing) - - UnitTesting.list.forEach(::testImplementation) - DevDependencies.debugList.forEach(::debugImplementation) - DevDependencies.list.forEach(::implementation) -} \ No newline at end of file diff --git a/navigator/src/main/AndroidManifest.xml b/navigator/src/main/AndroidManifest.xml deleted file mode 100644 index 56cf115..0000000 --- a/navigator/src/main/AndroidManifest.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - \ No newline at end of file diff --git a/navigator/src/main/java/com/mutualmobile/praxis/navigator/NavigationCommand.kt b/navigator/src/main/java/com/mutualmobile/praxis/navigator/NavigationCommand.kt deleted file mode 100644 index 2c0b51b..0000000 --- a/navigator/src/main/java/com/mutualmobile/praxis/navigator/NavigationCommand.kt +++ /dev/null @@ -1,20 +0,0 @@ -package com.mutualmobile.praxis.navigator - -import androidx.navigation.NavOptions - -sealed class NavigationCommand { - object NavigateUp : NavigationCommand() -} - -sealed class ComposeNavigationCommand : NavigationCommand() { - data class NavigateToRoute(val route: String, val options: NavOptions? = null) : - ComposeNavigationCommand() - - data class NavigateUpWithResult( - val key: String, - val result: T, - val route: String? = null - ) : ComposeNavigationCommand() - - data class PopUpToRoute(val route: String, val inclusive: Boolean) : ComposeNavigationCommand() -} \ No newline at end of file diff --git a/navigator/src/main/java/com/mutualmobile/praxis/navigator/NavigationKeys.kt b/navigator/src/main/java/com/mutualmobile/praxis/navigator/NavigationKeys.kt deleted file mode 100644 index ed9291a..0000000 --- a/navigator/src/main/java/com/mutualmobile/praxis/navigator/NavigationKeys.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.mutualmobile.praxis.navigator - -object NavigationKeys { - - const val ForgotPassword = "forgotPassword" -} \ No newline at end of file diff --git a/navigator/src/main/java/com/mutualmobile/praxis/navigator/Navigator.kt b/navigator/src/main/java/com/mutualmobile/praxis/navigator/Navigator.kt deleted file mode 100644 index 4c4d7fb..0000000 --- a/navigator/src/main/java/com/mutualmobile/praxis/navigator/Navigator.kt +++ /dev/null @@ -1,94 +0,0 @@ -package com.mutualmobile.praxis.navigator - -import androidx.lifecycle.LiveData -import androidx.lifecycle.Observer -import androidx.navigation.NavController -import androidx.navigation.NavOptionsBuilder -import kotlinx.coroutines.* -import kotlinx.coroutines.channels.Channel -import kotlinx.coroutines.flow.* - -abstract class Navigator { - val navigationCommands = MutableSharedFlow(extraBufferCapacity = Int.MAX_VALUE) - - // We use a StateFlow here to allow ViewModels to start observing navigation results before the initial composition, - // and still get the navigation result later - val navControllerFlow = MutableStateFlow(null) - - fun navigateUp() { - navigationCommands.tryEmit(NavigationCommand.NavigateUp) - } - -} - -abstract class ComposeNavigator : Navigator() { - abstract fun navigate(route: String, optionsBuilder: (NavOptionsBuilder.() -> Unit)? = null) - abstract fun observeResult(key: String, route: String? = null): Flow - abstract fun navigateBackWithResult(key: String, result: T, route: String?) - - abstract fun popUpTo(route: String, inclusive: Boolean) - abstract fun navigateAndClearBackStack(route: String) - - suspend fun handleNavigationCommands(navController: NavController) { - navigationCommands - .onSubscription { this@ComposeNavigator.navControllerFlow.value = navController } - .onCompletion { this@ComposeNavigator.navControllerFlow.value = null } - .collect { navController.handleComposeNavigationCommand(it) } - } - - private fun NavController.handleComposeNavigationCommand(navigationCommand: NavigationCommand) { - when (navigationCommand) { - is ComposeNavigationCommand.NavigateToRoute -> { - navigate(navigationCommand.route, navigationCommand.options) - } - NavigationCommand.NavigateUp -> navigateUp() - is ComposeNavigationCommand.PopUpToRoute -> popBackStack( - navigationCommand.route, - navigationCommand.inclusive - ) - is ComposeNavigationCommand.NavigateUpWithResult<*> -> { - navUpWithResult(navigationCommand) - } - else -> { - throw RuntimeException("can't handle this with ComposeNavigator") - } - } - } - - private fun NavController.navUpWithResult(navigationCommand: ComposeNavigationCommand.NavigateUpWithResult<*>) { - val backStackEntry = - navigationCommand.route?.let { getBackStackEntry(it) } - ?: previousBackStackEntry - backStackEntry?.savedStateHandle?.set( - navigationCommand.key, - navigationCommand.result - ) - - navigationCommand.route?.let { - popBackStack(it, false) - } ?: run { - navigateUp() - } - } -} - - -@OptIn(DelicateCoroutinesApi::class) -fun LiveData.asFlow(): Flow = flow { - val channel = Channel(Channel.CONFLATED) - val observer = Observer { - channel.trySend(it) - } - withContext(Dispatchers.Main.immediate) { - observeForever(observer) - } - try { - for (value in channel) { - emit(value) - } - } finally { - GlobalScope.launch(Dispatchers.Main.immediate) { - removeObserver(observer) - } - } -} \ No newline at end of file diff --git a/navigator/src/main/java/com/mutualmobile/praxis/navigator/Screens.kt b/navigator/src/main/java/com/mutualmobile/praxis/navigator/Screens.kt deleted file mode 100644 index 623b581..0000000 --- a/navigator/src/main/java/com/mutualmobile/praxis/navigator/Screens.kt +++ /dev/null @@ -1,38 +0,0 @@ -package com.mutualmobile.praxis.navigator - -import androidx.navigation.NamedNavArgument -import androidx.navigation.NavType -import androidx.navigation.navArgument - -sealed class PraxisScreen( - val route: String, - val navArguments: List = emptyList() -) { - val name: String = route.appendArguments(navArguments) - - // onboarding - object GettingStarted : PraxisScreen("gettingStarted") - object SkipTypingScreen : PraxisScreen("SkipTypingUI") - object EmailAddressInputUI : PraxisScreen("EmailAddressInputUI") - object WorkspaceInputUI : PraxisScreen("WorkspaceInputUI") - - object Auth : PraxisScreen("auth") - object ForgotPassword : PraxisScreen("forgotPassword") -} - -sealed class PraxisRoute(val name: String) { - object OnBoarding : PraxisRoute("onboardingRoute") - object Auth : PraxisRoute("authenticationRoute") -} - -private fun String.appendArguments(navArguments: List): String { - val mandatoryArguments = navArguments.filter { it.argument.defaultValue == null } - .takeIf { it.isNotEmpty() } - ?.joinToString(separator = "/", prefix = "/") { "{${it.name}}" } - .orEmpty() - val optionalArguments = navArguments.filter { it.argument.defaultValue != null } - .takeIf { it.isNotEmpty() } - ?.joinToString(separator = "&", prefix = "?") { "${it.name}={${it.name}}" } - .orEmpty() - return "$this$mandatoryArguments$optionalArguments" -} \ No newline at end of file diff --git a/navigator/src/main/java/com/mutualmobile/praxis/navigator/composenavigator/ComposeNavigator.kt b/navigator/src/main/java/com/mutualmobile/praxis/navigator/composenavigator/ComposeNavigator.kt deleted file mode 100644 index 4fcebd7..0000000 --- a/navigator/src/main/java/com/mutualmobile/praxis/navigator/composenavigator/ComposeNavigator.kt +++ /dev/null @@ -1,64 +0,0 @@ -package com.mutualmobile.praxis.navigator.composenavigator - -import androidx.navigation.NavOptionsBuilder -import androidx.navigation.navOptions -import com.mutualmobile.praxis.navigator.ComposeNavigationCommand -import com.mutualmobile.praxis.navigator.ComposeNavigator -import com.mutualmobile.praxis.navigator.asFlow -import kotlinx.coroutines.ExperimentalCoroutinesApi -import kotlinx.coroutines.flow.* -import javax.inject.Inject - -class PraxisCloneComposeNavigator @Inject constructor(): ComposeNavigator() { - - override fun navigate(route: String, optionsBuilder: (NavOptionsBuilder.() -> Unit)?) { - val options = optionsBuilder?.let { navOptions(it) } - navigationCommands.tryEmit(ComposeNavigationCommand.NavigateToRoute(route, options)) - } - - override fun navigateAndClearBackStack(route: String) { - navigationCommands.tryEmit(ComposeNavigationCommand.NavigateToRoute(route, navOptions { - popUpTo(0) - })) - } - - override fun popUpTo(route: String, inclusive: Boolean) { - navigationCommands.tryEmit(ComposeNavigationCommand.PopUpToRoute(route, inclusive)) - } - - override fun navigateBackWithResult( - key: String, - result: T, - route: String? - ) { - navigationCommands.tryEmit( - ComposeNavigationCommand.NavigateUpWithResult( - key = key, - result = result, - route = route - ) - ) - } - - @OptIn(ExperimentalCoroutinesApi::class) - override fun observeResult(key: String, route: String?): Flow { - return navControllerFlow - .filterNotNull() - .flatMapLatest { navController -> - val backStackEntry = route?.let { navController.getBackStackEntry(it) } - ?: navController.currentBackStackEntry - - backStackEntry?.savedStateHandle?.let { savedStateHandle -> - savedStateHandle.getLiveData(key) - .asFlow() - .filter { it != null } - .onEach { - // Nullify the result to avoid resubmitting it - savedStateHandle.set(key, null) - } - } ?: emptyFlow() - } - } - - -} \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index 56f746d..ede8346 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -2,13 +2,11 @@ include(":app") // Feature modules -include(":ui-onboarding") -include(":ui-authentication") +include(":ui-feature1") // Other modules include(":domain") include(":data") include(":common") include(":commonui") -include(":navigator") diff --git a/ui-authentication/.gitignore b/ui-authentication/.gitignore deleted file mode 100644 index 42afabf..0000000 --- a/ui-authentication/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build \ No newline at end of file diff --git a/ui-authentication/consumer-rules.pro b/ui-authentication/consumer-rules.pro deleted file mode 100644 index e69de29..0000000 diff --git a/ui-authentication/proguard-rules.pro b/ui-authentication/proguard-rules.pro deleted file mode 100644 index 481bb43..0000000 --- a/ui-authentication/proguard-rules.pro +++ /dev/null @@ -1,21 +0,0 @@ -# Add project specific ProGuard rules here. -# You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} - -# Uncomment this to preserve the line number information for -# debugging stack traces. -#-keepattributes SourceFile,LineNumberTable - -# If you keep the line number information, uncomment this to -# hide the original source file name. -#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/ui-authentication/src/main/java/com/praxis/feat/authentication/nav/AuthNavGraph.kt b/ui-authentication/src/main/java/com/praxis/feat/authentication/nav/AuthNavGraph.kt deleted file mode 100644 index 777d2a5..0000000 --- a/ui-authentication/src/main/java/com/praxis/feat/authentication/nav/AuthNavGraph.kt +++ /dev/null @@ -1,24 +0,0 @@ -package com.praxis.feat.authentication.nav - -import androidx.navigation.NavGraphBuilder -import androidx.navigation.compose.composable -import androidx.navigation.compose.navigation -import com.mutualmobile.praxis.navigator.PraxisRoute -import com.mutualmobile.praxis.navigator.PraxisScreen -import com.praxis.feat.authentication.ui.AuthenticationUI -import com.praxis.feat.authentication.ui.ForgotPasswordUI - -fun NavGraphBuilder.authNavGraph() { - navigation( - startDestination = PraxisScreen.Auth.route, - route = PraxisRoute.Auth.name - ) { - composable(PraxisScreen.Auth.route) { - AuthenticationUI() - } - composable(PraxisScreen.ForgotPassword.route) { - ForgotPasswordUI() - } - } -} - diff --git a/ui-authentication/src/main/java/com/praxis/feat/authentication/ui/AuthenticationUI.kt b/ui-authentication/src/main/java/com/praxis/feat/authentication/ui/AuthenticationUI.kt deleted file mode 100644 index 7449c1e..0000000 --- a/ui-authentication/src/main/java/com/praxis/feat/authentication/ui/AuthenticationUI.kt +++ /dev/null @@ -1,343 +0,0 @@ -package com.praxis.feat.authentication.ui - -import androidx.compose.animation.AnimatedVisibility -import androidx.compose.foundation.Image -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.* -import androidx.compose.foundation.text.ClickableText -import androidx.compose.foundation.text.KeyboardActions -import androidx.compose.foundation.text.KeyboardOptions -import androidx.compose.material.* -import androidx.compose.runtime.* -import androidx.compose.ui.Alignment -import androidx.compose.ui.ExperimentalComposeUiApi -import androidx.compose.ui.Modifier -import androidx.compose.ui.focus.FocusRequester -import androidx.compose.ui.focus.focusRequester -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.layout.ContentScale -import androidx.compose.ui.platform.LocalSoftwareKeyboardController -import androidx.compose.ui.res.painterResource -import androidx.compose.ui.text.SpanStyle -import androidx.compose.ui.text.buildAnnotatedString -import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.text.input.ImeAction -import androidx.compose.ui.text.input.KeyboardType -import androidx.compose.ui.text.input.PasswordVisualTransformation -import androidx.compose.ui.text.withStyle -import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel -import coil.compose.rememberImagePainter -import com.google.accompanist.insets.navigationBarsPadding -import com.google.accompanist.insets.navigationBarsWithImePadding -import com.google.accompanist.insets.statusBarsPadding -import com.mutualmobile.praxis.commonui.material.DefaultSnackbar -import com.mutualmobile.praxis.commonui.material.PraxisSurfaceAppBar -import com.mutualmobile.praxis.commonui.theme.* -import com.praxis.feat.authentication.R -import com.praxis.feat.authentication.vm.AuthVM -import com.praxis.feat.authentication.vm.streamProgress -import com.praxis.feat.authentication.vm.uri - -@Composable -fun AuthenticationUI( - authVM: AuthVM = hiltViewModel(), -) { - PraxisTheme { - val scaffoldState = rememberScaffoldState() - Scaffold( - backgroundColor = PraxisColorProvider.colors.uiBackground, - contentColor = PraxisColorProvider.colors.textSecondary, - modifier = Modifier - .statusBarsPadding() - .navigationBarsPadding(), - topBar = { - PraxisSurfaceAppBar( - title = { - Text( - text = "Authentication", - style = PraxisTypography.h5.copy( - color = Color.White, - fontWeight = FontWeight.Bold - ) - ) - }, - backgroundColor = PraxisColorProvider.colors.appBarColor, - ) - }, scaffoldState = scaffoldState, snackbarHost = { - scaffoldState.snackbarHostState - } - ) { innerPadding -> - Box(modifier = Modifier.padding(innerPadding)) { - AuthSurface( - authVM = authVM, scaffoldState = scaffoldState - ) - DefaultSnackbar(scaffoldState.snackbarHostState) { - authVM.snackBarState.value = "" - scaffoldState.snackbarHostState.currentSnackbarData?.dismiss() - } - } - - } - } -} - -@OptIn(ExperimentalComposeUiApi::class) -@Composable -private fun AuthSurface( - authVM: AuthVM, - scaffoldState: ScaffoldState, -) { - PraxisSurface( - modifier = Modifier - .fillMaxHeight() - .fillMaxWidth() - ) { - - val resetPasswordState by authVM.snackBarState.collectAsState() - val uiState by authVM.formUiState.collectAsState() - val randomPhotoState by authVM.randomPhotoState.collectAsState() - - Box() { - AnimatedVisibility(visible = uiState is AuthVM.UiState.SuccessState || randomPhotoState is AuthVM.UiState.Streaming) { - Column( - verticalArrangement = Arrangement.Center, - horizontalAlignment = Alignment.CenterHorizontally - ) { - Box(Modifier.background(Color.Black)) { - Image( - painter = rememberImagePainter(randomPhotoState.uri()), - contentScale = ContentScale.Crop, - contentDescription = null, modifier = Modifier.fillMaxSize(), - ) - - Column( - Modifier.align(Alignment.BottomCenter), - verticalArrangement = Arrangement.Center, - horizontalAlignment = Alignment.CenterHorizontally - ) { - Text( - text = randomPhotoState.streamProgress() ?: "", - style = PraxisTypography.subtitle1.copy(color = PraxisColorProvider.colors.appBarTextTitleColor) - ) - - RandomPhotoButton(authVM) - - LogoutButton(authVM) - } - } - - - } - } - Column( - Modifier - .padding(16.dp) - .navigationBarsWithImePadding() - .fillMaxWidth() - .fillMaxHeight(), - verticalArrangement = Arrangement.Center, - horizontalAlignment = Alignment.CenterHorizontally - ) { - - val (focusRequester) = FocusRequester.createRefs() - - AnimatedVisibility(visible = randomPhotoState !is AuthVM.UiState.Streaming) { - Image( - painter = painterResource(id = R.mipmap.ic_launcher), - contentDescription = "Logo", Modifier.size(128.dp) - ) - } - - AnimatedVisibility(visible = uiState is AuthVM.UiState.Empty) { - EmailTF(authVM, focusRequester) - } - - AnimatedVisibility(visible = uiState is AuthVM.UiState.Empty) { - PasswordTF(authVM, focusRequester) - } - - AnimatedVisibility(visible = (uiState is AuthVM.UiState.LoadingState)) { - CircularProgressIndicator(modifier = Modifier.padding(8.dp)) - } - - AnimatedVisibility(visible = uiState is AuthVM.UiState.Empty) { - LoginButton(authVM = authVM) - } - - AnimatedVisibility(visible = uiState is AuthVM.UiState.Empty) { - ForgotPasswordText(authVM) - } - - if (resetPasswordState.isNotEmpty()) { - LaunchedEffect(scaffoldState) { - scaffoldState.snackbarHostState.showSnackbar( - message = resetPasswordState, - actionLabel = "Ok" - ) - } - } - } - } - - } -} - - -@Composable -fun RandomPhotoButton(authVM: AuthVM) { - Button( - onClick = { - authVM.fetchRandomPhoto() - }, Modifier.wrapContentWidth(), - colors = ButtonDefaults.buttonColors(backgroundColor = PraxisColorProvider.colors.buttonColor) - ) { - Text( - text = "Load Random Photo", - style = MaterialTheme.typography.body1.copy(color = PraxisColorProvider.colors.buttonTextColor) - ) - } -} - -@Composable -fun LogoutButton(authVM: AuthVM) { - Button( - onClick = { - authVM.logout() - }, Modifier.wrapContentWidth(), - colors = ButtonDefaults.buttonColors(backgroundColor = PraxisColorProvider.colors.buttonColor) - ) { - Text( - text = "Logout", - style = MaterialTheme.typography.body1.copy(color = PraxisColorProvider.colors.buttonTextColor) - ) - } -} - -@Composable -fun ForgotPasswordText(authVM: AuthVM) { - ClickableText(text = buildAnnotatedString { - - withStyle( - style = SpanStyle( - color = PraxisColorProvider.colors.textPrimary, - ) - ) { - append("Forgot Password? ") - } - - }, onClick = { - authVM.navigateForgotPassword() - }, modifier = Modifier.padding(8.dp)) -} - -@Composable -private fun LoginButton( - authVM: AuthVM, -) { - Button( - onClick = { - authVM.loginNow() - }, Modifier.fillMaxWidth(), - colors = ButtonDefaults.buttonColors(backgroundColor = PraxisColorProvider.colors.buttonColor) - ) { - Text( - text = "Login", - style = MaterialTheme.typography.body1.copy(color = PraxisColorProvider.colors.buttonTextColor) - ) - } -} - -@ExperimentalComposeUiApi -@Composable -private fun PasswordTF(authVM: AuthVM, focusRequester: FocusRequester) { - val credentials by authVM.credentials.collectAsState() - val keyboardController = LocalSoftwareKeyboardController.current - - TextField( - value = credentials.password ?: "", - onValueChange = { - authVM.credentials.value = credentials.copy(password = it) - }, - modifier = Modifier - .padding(16.dp) - .focusRequester(focusRequester) - .fillMaxWidth(), - label = { - Text( - text = "Password", - style = MaterialTheme.typography.body2.copy(color = PraxisColorProvider.colors.textPrimary) - ) - }, - shape = PraxisShapes.large, - keyboardActions = KeyboardActions( - onDone = { keyboardController?.hide() }), - keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done), - leadingIcon = { - Image( - painter = painterResource(id = R.drawable.ic_eye), - contentDescription = "email" - ) - }, - colors = textFieldColors(), - maxLines = 1, - singleLine = true, - visualTransformation = PasswordVisualTransformation() - ) -} - -@ExperimentalComposeUiApi -@Composable -private fun EmailTF(authVM: AuthVM, focusRequester: FocusRequester) { - val credentials by authVM.credentials.collectAsState() - - TextField( - value = credentials.email ?: "", - onValueChange = { - authVM.credentials.value = credentials.copy(email = it) - }, - Modifier - .padding(16.dp) - .fillMaxWidth(), label = { - Text( - text = "Email", - style = MaterialTheme.typography.body2.copy(color = PraxisColorProvider.colors.textPrimary) - ) - }, - shape = PraxisShapes.large, - keyboardOptions = KeyboardOptions( - imeAction = ImeAction.Next, keyboardType = KeyboardType.Email - ), - keyboardActions = KeyboardActions( - onNext = { - focusRequester.requestFocus() - }, - ), - leadingIcon = { - Image( - painter = painterResource(id = R.drawable.ic_email), - contentDescription = "Email" - ) - }, - colors = textFieldColors(), - maxLines = 1, - singleLine = true - ) -} - -@Composable -private fun textFieldColors() = TextFieldDefaults.textFieldColors( - focusedIndicatorColor = Color.Transparent, - disabledIndicatorColor = Color.Transparent, - unfocusedIndicatorColor = Color.Transparent, - backgroundColor = PraxisColorProvider.colors.accent.copy(alpha = AlphaNearTransparent), -) - -@Preview("Light+Dark") -@Composable -fun PreviewAuth() { - PraxisTheme(isDarkTheme = true) { - AuthenticationUI() - } -} \ No newline at end of file diff --git a/ui-authentication/src/main/java/com/praxis/feat/authentication/ui/ForgotPasswordUI.kt b/ui-authentication/src/main/java/com/praxis/feat/authentication/ui/ForgotPasswordUI.kt deleted file mode 100644 index b444c5d..0000000 --- a/ui-authentication/src/main/java/com/praxis/feat/authentication/ui/ForgotPasswordUI.kt +++ /dev/null @@ -1,126 +0,0 @@ -package com.praxis.feat.authentication.ui - -import androidx.compose.foundation.Image -import androidx.compose.foundation.layout.* -import androidx.compose.material.* -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.res.painterResource -import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel -import com.google.accompanist.insets.navigationBarsPadding -import com.google.accompanist.insets.statusBarsPadding -import com.mutualmobile.praxis.commonui.material.PraxisSurfaceAppBar -import com.mutualmobile.praxis.commonui.theme.* -import com.praxis.feat.authentication.R -import com.praxis.feat.authentication.vm.ForgotPasswordVM - -@Composable -fun ForgotPasswordUI(forgotPasswordVM: ForgotPasswordVM = hiltViewModel()){ - PraxisTheme() { - Scaffold( - backgroundColor = PraxisColorProvider.colors.uiBackground, - contentColor = PraxisColorProvider.colors.textSecondary, - modifier = Modifier - .statusBarsPadding() - .navigationBarsPadding(), - topBar = { - PraxisSurfaceAppBar( - title = { - Text( - text = "Forgot password", - style = PraxisTypography.h5.copy( - color = Color.White, - fontWeight = FontWeight.Bold - ) - ) - }, - backgroundColor = PraxisColorProvider.colors.appBarColor, - ) - }) { - ForgotPasswordSurface(forgotPasswordVM) - } - } - -} - -@Composable -private fun ForgotPasswordSurface(forgotPasswordVM: ForgotPasswordVM) { - PraxisSurface( - modifier = Modifier - .fillMaxHeight() - .fillMaxWidth() - ) { - Column( - Modifier - .padding(16.dp) - .fillMaxWidth() - .fillMaxHeight(), - verticalArrangement = Arrangement.Center, - horizontalAlignment = Alignment.CenterHorizontally - ) { - Image( - painter = painterResource(id = R.mipmap.ic_launcher), - contentDescription = "Logo", Modifier.size(128.dp) - ) - - EmailTF(forgotPasswordVM) - - ForgotPasswordButton(forgotPasswordVM) - - } - } -} - -@Composable -private fun ForgotPasswordButton(forgotPasswordVM: ForgotPasswordVM) { - Button( - onClick = { - forgotPasswordVM.navigateBack() - }, Modifier.fillMaxWidth(), - colors = ButtonDefaults.buttonColors(backgroundColor = PraxisColorProvider.colors.buttonColor) - ) { - Text( - text = "Reset Password", - style = MaterialTheme.typography.body1.copy(color = PraxisColorProvider.colors.buttonTextColor) - ) - } -} - -@Composable -private fun EmailTF(forgotPasswordVM: ForgotPasswordVM) { - TextField( - value = forgotPasswordVM.email.value, onValueChange = { - forgotPasswordVM.email.value = it - }, - Modifier - .padding(16.dp) - .fillMaxWidth(), label = { - Text( - text = "Email", - style = MaterialTheme.typography.body2.copy(color = PraxisColorProvider.colors.textPrimary) - ) - }, - shape = PraxisShapes.large, - leadingIcon = { - Image( - painter = painterResource(id = R.drawable.ic_email), - contentDescription = "Email" - ) - }, - colors = textFieldColors(), - maxLines = 1, - singleLine = true - ) -} - -@Composable -private fun textFieldColors() = TextFieldDefaults.textFieldColors( - focusedIndicatorColor = Color.Transparent, - disabledIndicatorColor = Color.Transparent, - unfocusedIndicatorColor = Color.Transparent, - backgroundColor = PraxisColorProvider.colors.accent.copy(alpha = AlphaNearTransparent), -) \ No newline at end of file diff --git a/ui-authentication/src/main/java/com/praxis/feat/authentication/vm/AuthVM.kt b/ui-authentication/src/main/java/com/praxis/feat/authentication/vm/AuthVM.kt deleted file mode 100644 index ecb1eaf..0000000 --- a/ui-authentication/src/main/java/com/praxis/feat/authentication/vm/AuthVM.kt +++ /dev/null @@ -1,148 +0,0 @@ -package com.praxis.feat.authentication.vm - -import android.net.Uri -import androidx.lifecycle.* -import com.mutualmobile.praxis.domain.model.StreamingFile -import com.mutualmobile.praxis.domain.usecases.FetchRandomPhotoUseCase -import com.mutualmobile.praxis.navigator.ComposeNavigator -import com.mutualmobile.praxis.navigator.NavigationKeys -import com.mutualmobile.praxis.navigator.PraxisScreen -import com.praxis.feat.authentication.ui.exceptions.FormValidationFailed -import com.praxis.feat.authentication.ui.model.LoginForm -import dagger.hilt.android.lifecycle.HiltViewModel -import kotlinx.coroutines.* -import kotlinx.coroutines.flow.* -import java.io.FileNotFoundException -import java.net.UnknownHostException -import javax.inject.Inject - -@HiltViewModel -class AuthVM @Inject constructor( - private val savedStateHandle: SavedStateHandle, - private val composeNavigator: ComposeNavigator, - private val fetchPhotoUseCase: FetchRandomPhotoUseCase -) : ViewModel() { - - private var fetchJob: Job? = null - - var credentials = MutableStateFlow(LoginForm()) - private set - var snackBarState = MutableStateFlow("") - private set - var formUiState = MutableStateFlow(UiState.Empty) - private set - var randomPhotoState = MutableStateFlow(UiState.Empty) - private set - - private val exceptionHandler = CoroutineExceptionHandler { _, throwable -> - when (throwable) { - is FormValidationFailed -> { - snackBarState.value = throwable.failType.message - } - is FileNotFoundException -> { - snackBarState.value = "File Not found" - } - is CancellationException -> { - when (throwable.cause) { - is UnknownHostException -> { - snackBarState.value = "No Network" - } - else -> { - snackBarState.value = "Some error happened" - } - } - } - else -> { - snackBarState.value = (throwable.message ?: "") - } - } - - formUiState.value = UiState.ErrorState(throwable) - formUiState.value = UiState.Empty - } - - init { - observePasswordReset() - } - - private fun observePasswordReset() { - composeNavigator.observeResult(NavigationKeys.ForgotPassword).onStart { - val message = savedStateHandle.get(NavigationKeys.ForgotPassword) - message?.let { - emit(it) - } - } - .onEach { snackBarState.value = it } - .launchIn(viewModelScope) - } - - fun loginNow() { - viewModelScope.launch(exceptionHandler) { - formUiState.value = UiState.LoadingState - credentials.value.validate() - snackBarState.value = "" - delay(1500) - formUiState.value = UiState.SuccessState("some-token") - fetchRandomPhoto() - } - } - - fun navigateForgotPassword() { - composeNavigator.navigate(PraxisScreen.ForgotPassword.route) - } - - fun logout() { - viewModelScope.launch(exceptionHandler) { - formUiState.value = UiState.LoadingState - randomPhotoState.value = UiState.Empty - delay(1500) - snackBarState.value = "Logged out!" - formUiState.value = UiState.Empty - } - } - - - fun fetchRandomPhoto() { - fetchJob?.cancel() - fetchJob = viewModelScope.launch(exceptionHandler) { - fetchPhotoUseCase.performStreaming(null).handleErrors().collect { streamingFile -> - randomPhotoState.value = UiState.Streaming(streamingFile) - } - } - } - - private fun Flow.handleErrors(): Flow = flow { - try { - collect { value -> emit(value) } - } catch (e: Throwable) { - formUiState.value = UiState.ErrorState(e) - } - } - - sealed class UiState { - object Empty : UiState() - data class Streaming(val result: StreamingFile) : UiState() - object LoadingState : UiState() - data class SuccessState( - val authToken: String, - ) : UiState() - - data class ErrorState(val throwable: Throwable) : UiState() - } -} - -fun AuthVM.UiState.uri(): Uri? { - return if (this is AuthVM.UiState.Streaming && this.result.isComplete) { - Uri.fromFile(this.result.file) - } else { - null - } -} - -fun AuthVM.UiState.streamProgress(): String? { - return if (this is AuthVM.UiState.Streaming) { - return "${this.result.progress} bytes downloaded." - } else { - null - } -} \ No newline at end of file diff --git a/ui-authentication/src/main/java/com/praxis/feat/authentication/vm/ForgotPasswordVM.kt b/ui-authentication/src/main/java/com/praxis/feat/authentication/vm/ForgotPasswordVM.kt deleted file mode 100644 index 1b9cb21..0000000 --- a/ui-authentication/src/main/java/com/praxis/feat/authentication/vm/ForgotPasswordVM.kt +++ /dev/null @@ -1,21 +0,0 @@ -package com.praxis.feat.authentication.vm - -import androidx.compose.runtime.mutableStateOf -import androidx.lifecycle.ViewModel -import com.mutualmobile.praxis.navigator.ComposeNavigator -import com.mutualmobile.praxis.navigator.NavigationKeys -import com.mutualmobile.praxis.navigator.PraxisScreen -import dagger.hilt.android.lifecycle.HiltViewModel -import javax.inject.Inject - -@HiltViewModel -class ForgotPasswordVM @Inject constructor(private val navigator: ComposeNavigator) : ViewModel() { - var email = mutableStateOf("") - - fun navigateBack() { - navigator.navigateBackWithResult( - NavigationKeys.ForgotPassword, "Reset Password Done!", - PraxisScreen.Auth.route - ) - } -} \ No newline at end of file diff --git a/navigator/.gitignore b/ui-feature1/.gitignore similarity index 100% rename from navigator/.gitignore rename to ui-feature1/.gitignore diff --git a/ui-authentication/build.gradle.kts b/ui-feature1/build.gradle.kts similarity index 90% rename from ui-authentication/build.gradle.kts rename to ui-feature1/build.gradle.kts index f976ad7..fd52f42 100644 --- a/ui-authentication/build.gradle.kts +++ b/ui-feature1/build.gradle.kts @@ -24,7 +24,7 @@ android { } buildFeatures { - compose = true + viewBinding = true } composeOptions { @@ -59,15 +59,10 @@ dependencies { implementation(project(":data")) implementation(project(":domain")) implementation(project(":common")) - implementation(project(":navigator")) implementation(project(":commonui")) - Lib.Androidx.list.forEach(::implementation) - Lib.Androidx.Compose.list.forEach(::implementation) - Lib.ThirdParty.list.forEach(::implementation) - Lib.Accompanist.list.forEach(::implementation) Lib.Google.list.forEach(::implementation) Lib.Kotlin.list.forEach(::implementation) diff --git a/navigator/consumer-rules.pro b/ui-feature1/consumer-rules.pro similarity index 100% rename from navigator/consumer-rules.pro rename to ui-feature1/consumer-rules.pro diff --git a/navigator/proguard-rules.pro b/ui-feature1/proguard-rules.pro similarity index 100% rename from navigator/proguard-rules.pro rename to ui-feature1/proguard-rules.pro diff --git a/ui-authentication/src/main/AndroidManifest.xml b/ui-feature1/src/main/AndroidManifest.xml similarity index 100% rename from ui-authentication/src/main/AndroidManifest.xml rename to ui-feature1/src/main/AndroidManifest.xml diff --git a/ui-authentication/src/main/java/com/praxis/feat/authentication/services/Validatable.kt b/ui-feature1/src/main/java/com/praxis/feat/authentication/services/Validatable.kt similarity index 100% rename from ui-authentication/src/main/java/com/praxis/feat/authentication/services/Validatable.kt rename to ui-feature1/src/main/java/com/praxis/feat/authentication/services/Validatable.kt diff --git a/ui-feature1/src/main/java/com/praxis/feat/authentication/ui/MainActivity.kt b/ui-feature1/src/main/java/com/praxis/feat/authentication/ui/MainActivity.kt new file mode 100644 index 0000000..b899205 --- /dev/null +++ b/ui-feature1/src/main/java/com/praxis/feat/authentication/ui/MainActivity.kt @@ -0,0 +1,99 @@ +package com.praxis.feat.authentication.ui + +import android.net.Uri +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import androidx.activity.viewModels +import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen +import com.google.android.material.snackbar.BaseTransientBottomBar.LENGTH_SHORT +import com.google.android.material.snackbar.Snackbar +import com.mutualmobile.praxis.domain.model.StreamingFile +import com.praxis.feat.authentication.R +import com.praxis.feat.authentication.databinding.ViewRandomPhotosBinding +import com.praxis.feat.authentication.vm.RandomViewModel +import dagger.hilt.android.AndroidEntryPoint +import timber.log.Timber +import java.io.FileNotFoundException +import java.net.UnknownHostException +import kotlin.coroutines.cancellation.CancellationException + +@AndroidEntryPoint +class MainActivity : AppCompatActivity() { + private val viewModel: RandomViewModel by viewModels() + private lateinit var binding: ViewRandomPhotosBinding + + override fun onCreate(savedInstanceState: Bundle?) { + installSplashScreen() + super.onCreate(savedInstanceState) + binding = ViewRandomPhotosBinding.inflate(LayoutInflater.from(this)) + setContentView(binding.root) + viewModel.randomViewState.observe(this) { randomPhotoViewState -> + randomPhotoViewState?.let { + receiveViewState(randomPhotoViewState) + } + } + binding.randomPhotoButton.setOnClickListener { + viewModel.fetchRandomPhoto() + } + } + + private fun receiveViewState(randomPhotoViewState: RandomViewModel.RandomPhotoViewState) { + when (randomPhotoViewState) { + is RandomViewModel.RandomPhotoViewState.Empty -> { + Timber.e("No Data") + setImageForFile(randomPhotoViewState.result) + } + is RandomViewModel.RandomPhotoViewState.Exception -> { + randomPhotoViewState.throwable.printStackTrace() + Timber.e(randomPhotoViewState.throwable.message ?: "") + when (randomPhotoViewState.throwable) { + is FileNotFoundException -> { + showSnackbarMessage(getString(R.string.except_file_not_found)) + } + is CancellationException -> { + when (randomPhotoViewState.throwable.cause) { + is UnknownHostException -> { + showSnackbarMessage(getString(R.string.except_no_network)) + } + else -> { + showSnackbarMessage(getString(R.string.except_generic)) + } + } + } + else -> { + showSnackbarMessage(randomPhotoViewState.throwable.message ?: "") + } + } + } + is RandomViewModel.RandomPhotoViewState.Streaming -> { + binding.progressText.visibility = View.VISIBLE + + if (randomPhotoViewState.result.isComplete) { + setImageForFile(randomPhotoViewState.result) + } else { + binding.progressText.text = + getString(R.string.downloading_glue, randomPhotoViewState.result.progress) + } + Timber.d( + "${randomPhotoViewState.result.file.absolutePath} ${randomPhotoViewState.result.file.length()}" + ) + } + } + } + + private fun setImageForFile(file: StreamingFile?) { + binding.photoView.setImageResource(android.R.drawable.gallery_thumb) // to avoid redraw issues + file?.let { streamingFile -> + binding.photoView.setImageURI(Uri.fromFile(streamingFile.file)) + binding.progressText.visibility = View.VISIBLE + binding.progressText.text = + getString(R.string.downloaded_glue, streamingFile.file.length()) + } + } + + private fun showSnackbarMessage(message: String) { + Snackbar.make(binding.root, message, LENGTH_SHORT).show() + } +} \ No newline at end of file diff --git a/ui-authentication/src/main/java/com/praxis/feat/authentication/ui/exceptions/FormValidationFailed.kt b/ui-feature1/src/main/java/com/praxis/feat/authentication/ui/exceptions/FormValidationFailed.kt similarity index 100% rename from ui-authentication/src/main/java/com/praxis/feat/authentication/ui/exceptions/FormValidationFailed.kt rename to ui-feature1/src/main/java/com/praxis/feat/authentication/ui/exceptions/FormValidationFailed.kt diff --git a/ui-authentication/src/main/java/com/praxis/feat/authentication/ui/model/FailureType.kt b/ui-feature1/src/main/java/com/praxis/feat/authentication/ui/model/FailureType.kt similarity index 100% rename from ui-authentication/src/main/java/com/praxis/feat/authentication/ui/model/FailureType.kt rename to ui-feature1/src/main/java/com/praxis/feat/authentication/ui/model/FailureType.kt diff --git a/ui-authentication/src/main/java/com/praxis/feat/authentication/ui/model/LoginForm.kt b/ui-feature1/src/main/java/com/praxis/feat/authentication/ui/model/LoginForm.kt similarity index 100% rename from ui-authentication/src/main/java/com/praxis/feat/authentication/ui/model/LoginForm.kt rename to ui-feature1/src/main/java/com/praxis/feat/authentication/ui/model/LoginForm.kt diff --git a/ui-feature1/src/main/java/com/praxis/feat/authentication/vm/RandomViewModel.kt b/ui-feature1/src/main/java/com/praxis/feat/authentication/vm/RandomViewModel.kt new file mode 100644 index 0000000..95975bc --- /dev/null +++ b/ui-feature1/src/main/java/com/praxis/feat/authentication/vm/RandomViewModel.kt @@ -0,0 +1,73 @@ +package com.praxis.feat.authentication.vm + +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import com.mutualmobile.praxis.domain.model.StreamingFile +import com.mutualmobile.praxis.domain.repositories.RandomFileService +import com.mutualmobile.praxis.domain.usecases.FetchRandomPhotoUseCase +import dagger.hilt.android.lifecycle.HiltViewModel +import kotlinx.coroutines.CoroutineExceptionHandler +import kotlinx.coroutines.Job +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.collectLatest +import kotlinx.coroutines.flow.flow +import kotlinx.coroutines.launch +import javax.inject.Inject + +@HiltViewModel +class RandomViewModel @Inject constructor( + private val fetchPhotoUseCase: FetchRandomPhotoUseCase, + private val randomFileService: RandomFileService +) : + ViewModel() { + private var fetchJob: Job? = null + private val viewState = MutableLiveData( + RandomPhotoViewState.Empty(null) + ) + + init { + initialState() + } + + private fun initialState() { + viewModelScope.launch { + val file = randomFileService.getTempFile() + val initialState = RandomPhotoViewState.Empty( + StreamingFile(file.length(), file, true) + ) + viewState.value = initialState + } + } + + val randomViewState: LiveData = viewState + + private val exceptionHandler: CoroutineExceptionHandler = + CoroutineExceptionHandler { _, throwable -> + viewState.value = RandomPhotoViewState.Exception(throwable) + } + + fun fetchRandomPhoto() { + fetchJob?.cancel() + fetchJob = viewModelScope.launch(exceptionHandler) { + fetchPhotoUseCase.performStreaming(null).handleErrors().collect { streamingFile -> + viewState.value = RandomPhotoViewState.Streaming(streamingFile) + } + } + } + + sealed class RandomPhotoViewState { + class Exception(val throwable: Throwable) : RandomPhotoViewState() + class Streaming(val result: StreamingFile) : RandomPhotoViewState() + class Empty(val result: StreamingFile?) : RandomPhotoViewState() + } + + private fun Flow.handleErrors(): Flow = flow { + try { + collect { value -> emit(value) } + } catch (e: Throwable) { + viewState.value = RandomPhotoViewState.Exception(e) + } + } +} \ No newline at end of file diff --git a/ui-feature1/src/main/res/layout/view_random_photos.xml b/ui-feature1/src/main/res/layout/view_random_photos.xml new file mode 100644 index 0000000..8626ad5 --- /dev/null +++ b/ui-feature1/src/main/res/layout/view_random_photos.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ui-feature1/src/main/res/values/colors.xml b/ui-feature1/src/main/res/values/colors.xml new file mode 100644 index 0000000..1aba706 --- /dev/null +++ b/ui-feature1/src/main/res/values/colors.xml @@ -0,0 +1,4 @@ + + + #000000 + \ No newline at end of file diff --git a/ui-feature1/src/main/res/values/dimens.xml b/ui-feature1/src/main/res/values/dimens.xml new file mode 100644 index 0000000..25e630d --- /dev/null +++ b/ui-feature1/src/main/res/values/dimens.xml @@ -0,0 +1,5 @@ + + + 200dp + 8dp + \ No newline at end of file diff --git a/ui-feature1/src/main/res/values/strings.xml b/ui-feature1/src/main/res/values/strings.xml new file mode 100644 index 0000000..0529baf --- /dev/null +++ b/ui-feature1/src/main/res/values/strings.xml @@ -0,0 +1,9 @@ + + + Random Photo + Could not save the image, FileNotFound! + Downloaded Size %d bytes + Downloading %d bytes + No network available! + Some error occurred + \ No newline at end of file diff --git a/ui-authentication/src/test/java/com/praxis/feat/authentication/vm/AuthVMTest.kt b/ui-feature1/src/test/java/com/praxis/feat/authentication/vm/AuthVMTest.kt similarity index 100% rename from ui-authentication/src/test/java/com/praxis/feat/authentication/vm/AuthVMTest.kt rename to ui-feature1/src/test/java/com/praxis/feat/authentication/vm/AuthVMTest.kt diff --git a/ui-onboarding/.gitignore b/ui-onboarding/.gitignore deleted file mode 100644 index 42afabf..0000000 --- a/ui-onboarding/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build \ No newline at end of file diff --git a/ui-onboarding/build.gradle.kts b/ui-onboarding/build.gradle.kts deleted file mode 100644 index ced77d9..0000000 --- a/ui-onboarding/build.gradle.kts +++ /dev/null @@ -1,91 +0,0 @@ -plugins { - id(BuildPlugins.ANDROID_LIBRARY_PLUGIN) - id(BuildPlugins.KOTLIN_ANDROID_PLUGIN) - id(BuildPlugins.KOTLIN_KAPT) - id(BuildPlugins.DAGGER_HILT) - id(BuildPlugins.KOTLIN_PARCELABLE_PLUGIN) - id("org.jlleitschuh.gradle.ktlint") -} - -android { - compileSdk = AppVersions.COMPILE_SDK - - defaultConfig { - minSdk = (AppVersions.MIN_SDK) - targetSdk = (AppVersions.TARGET_SDK) - testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - } - - buildTypes { - getByName("release") { - isMinifyEnabled = false - proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro") - } - } - - buildFeatures { - compose = true - } - - composeOptions { - kotlinCompilerExtensionVersion = Lib.Androidx.composeVersion - } - packagingOptions { - resources.excludes.add("META-INF/LICENSE.txt") - resources.excludes.add("META-INF/NOTICE.txt") - resources.excludes.add("LICENSE.txt") - resources.excludes.add( "/META-INF/{AL2.0,LGPL2.1}") - } - - compileOptions { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 - } - - kotlinOptions { - jvmTarget = "1.8" - } - -} - -// Required for annotation processing plugins like Dagger -kapt { - generateStubs = true - correctErrorTypes = true -} - -dependencies { - - - /*Kotlin*/ - implementation(project(":data")) - implementation(project(":domain")) - implementation(project(":common")) - implementation(project(":navigator")) - implementation(project(":commonui")) - - - Lib.Androidx.list.forEach(::implementation) - Lib.Androidx.Compose.list.forEach(::implementation) - Lib.ThirdParty.list.forEach(::implementation) - Lib.Accompanist.list.forEach(::implementation) - Lib.Google.list.forEach(::implementation) - Lib.Kotlin.list.forEach(::implementation) - - /*DI*/ - implementation(Lib.Di.hilt) - implementation(Lib.Di.hiltNavigationCompose) - implementation(Lib.Di.viewmodel) - kapt(Lib.Di.hiltCompiler) - kapt(Lib.Di.hiltAndroidCompiler) - - // Room - implementation(Lib.Room.roomKtx) - implementation(Lib.Room.roomRuntime) - kapt(Lib.Room.roomCompiler) - testImplementation(Lib.Room.testing) - - UnitTesting.list.forEach(::testImplementation) - DevDependencies.debugList.forEach(::debugImplementation) - DevDependencies.list.forEach(::implementation) -} \ No newline at end of file diff --git a/ui-onboarding/consumer-rules.pro b/ui-onboarding/consumer-rules.pro deleted file mode 100644 index e69de29..0000000 diff --git a/ui-onboarding/proguard-rules.pro b/ui-onboarding/proguard-rules.pro deleted file mode 100644 index 481bb43..0000000 --- a/ui-onboarding/proguard-rules.pro +++ /dev/null @@ -1,21 +0,0 @@ -# Add project specific ProGuard rules here. -# You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} - -# Uncomment this to preserve the line number information for -# debugging stack traces. -#-keepattributes SourceFile,LineNumberTable - -# If you keep the line number information, uncomment this to -# hide the original source file name. -#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/ui-onboarding/src/androidTest/java/com/mutualmobile/praxis/uionboarding/ExampleInstrumentedTest.kt b/ui-onboarding/src/androidTest/java/com/mutualmobile/praxis/uionboarding/ExampleInstrumentedTest.kt deleted file mode 100644 index abeba48..0000000 --- a/ui-onboarding/src/androidTest/java/com/mutualmobile/praxis/uionboarding/ExampleInstrumentedTest.kt +++ /dev/null @@ -1,24 +0,0 @@ -package com.mutualmobile.praxis.uionboarding - -import androidx.test.platform.app.InstrumentationRegistry -import androidx.test.ext.junit.runners.AndroidJUnit4 - -import org.junit.Test -import org.junit.runner.RunWith - -import org.junit.Assert.* - -/** - * Instrumented test, which will execute on an Android device. - * - * See [testing documentation](http://d.android.com/tools/testing). - */ -@RunWith(AndroidJUnit4::class) -class ExampleInstrumentedTest { - @Test - fun useAppContext() { - // Context of the app under test. - val appContext = InstrumentationRegistry.getInstrumentation().targetContext - assertEquals("com.mutualmobile.praxis.uionboarding.test", appContext.packageName) - } -} \ No newline at end of file diff --git a/ui-onboarding/src/main/AndroidManifest.xml b/ui-onboarding/src/main/AndroidManifest.xml deleted file mode 100644 index ad77223..0000000 --- a/ui-onboarding/src/main/AndroidManifest.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - \ No newline at end of file diff --git a/ui-onboarding/src/main/java/com/mutualmobile/praxis/uionboarding/compose/CommonInputUI.kt b/ui-onboarding/src/main/java/com/mutualmobile/praxis/uionboarding/compose/CommonInputUI.kt deleted file mode 100644 index 65592eb..0000000 --- a/ui-onboarding/src/main/java/com/mutualmobile/praxis/uionboarding/compose/CommonInputUI.kt +++ /dev/null @@ -1,119 +0,0 @@ -package com.mutualmobile.praxis.uionboarding.compose - -import androidx.compose.foundation.layout.* -import androidx.compose.material.* -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.unit.dp -import androidx.constraintlayout.compose.ConstraintLayout -import com.google.accompanist.insets.navigationBarsPadding -import com.google.accompanist.insets.navigationBarsWithImePadding -import com.google.accompanist.insets.statusBarsPadding -import com.mutualmobile.praxis.commonui.theme.PraxisSurface -import com.mutualmobile.praxis.commonui.theme.PraxisTheme -import com.mutualmobile.praxis.commonui.theme.PraxisColorProvider -import com.mutualmobile.praxis.commonui.theme.PraxisTypography -import com.mutualmobile.praxis.navigator.ComposeNavigator -import com.mutualmobile.praxis.navigator.PraxisRoute -import com.mutualmobile.praxis.navigator.PraxisScreen - -@Composable -fun CommonInputUI( - composeNavigator: ComposeNavigator, - TopView: @Composable (modifier: Modifier) -> Unit, - subtitleText: String -) { - val scaffoldState = rememberScaffoldState() - - PraxisTheme { - Scaffold( - backgroundColor = PraxisColorProvider.colors.uiBackground, - contentColor = PraxisColorProvider.colors.textSecondary, - modifier = Modifier - .statusBarsPadding() - .navigationBarsPadding(), - scaffoldState = scaffoldState, - snackbarHost = { - scaffoldState.snackbarHostState - } - ) { innerPadding -> - Box(modifier = Modifier.padding(innerPadding)) { - PraxisSurface( - color = PraxisColorProvider.colors.uiBackground, - modifier = Modifier - ) { - ConstraintLayout( - modifier = Modifier - .padding(12.dp) - .navigationBarsWithImePadding() - .fillMaxHeight() - .fillMaxWidth() - ) { - // Create references for the composables to constrain - val (inputView, subtitle, button) = createRefs() - - TopView(modifier = Modifier.constrainAs(inputView) { - top.linkTo(parent.top) - bottom.linkTo(button.top) - start.linkTo(parent.start) - end.linkTo(parent.end) - }) - SubTitle(modifier = Modifier.constrainAs(subtitle) { - top.linkTo(inputView.bottom) - }, subtitleText) - NextButton(modifier = Modifier.constrainAs(button) { - bottom.linkTo(parent.bottom) - start.linkTo(parent.start) - end.linkTo(parent.end) - }, composeNavigator) - } - } - } - - } - } -} - -@Composable -fun NextButton(modifier: Modifier = Modifier, composeNavigator: ComposeNavigator) { - Button( - onClick = { - composeNavigator.navigate(PraxisRoute.Auth.name) { - this.popUpTo(PraxisRoute.OnBoarding.name) { - this.inclusive = true - } - } - }, - modifier - .fillMaxWidth() - .height(50.dp) - .padding(top = 8.dp), - colors = ButtonDefaults.buttonColors( - backgroundColor = PraxisColorProvider.colors.buttonColor - ) - ) { - Text( - text = "Next", - style = PraxisTypography.subtitle2.copy(color = PraxisColorProvider.colors.buttonTextColor) - ) - } -} - -@Composable -private fun SubTitle(modifier: Modifier = Modifier, subtitleText: String) { - Text( - subtitleText, - modifier = modifier - .fillMaxWidth() - .wrapContentWidth(align = Alignment.Start), - style = PraxisTypography.subtitle2.copy( - color = PraxisColorProvider.colors.textPrimary.copy(alpha = 0.8f), - fontWeight = FontWeight.Normal, - textAlign = TextAlign.Start - ) - ) -} - diff --git a/ui-onboarding/src/main/java/com/mutualmobile/praxis/uionboarding/compose/EmailInputView.kt b/ui-onboarding/src/main/java/com/mutualmobile/praxis/uionboarding/compose/EmailInputView.kt deleted file mode 100644 index cd109f5..0000000 --- a/ui-onboarding/src/main/java/com/mutualmobile/praxis/uionboarding/compose/EmailInputView.kt +++ /dev/null @@ -1,100 +0,0 @@ -package com.mutualmobile.praxis.uionboarding.compose - -import androidx.compose.foundation.layout.* -import androidx.compose.foundation.text.KeyboardActions -import androidx.compose.foundation.text.KeyboardOptions -import androidx.compose.material.Icon -import androidx.compose.material.Text -import androidx.compose.material.TextField -import androidx.compose.material.TextFieldDefaults -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.Email -import androidx.compose.runtime.* -import androidx.compose.ui.Alignment -import androidx.compose.ui.ExperimentalComposeUiApi -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.platform.LocalSoftwareKeyboardController -import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.text.input.ImeAction -import androidx.compose.ui.text.input.KeyboardType -import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.unit.dp -import com.mutualmobile.praxis.commonui.theme.PraxisColorProvider -import com.mutualmobile.praxis.commonui.theme.PraxisTypography - -@OptIn(ExperimentalComposeUiApi::class) -@Composable -fun EmailInputView(modifier: Modifier = Modifier) { - Column( - modifier = modifier - .fillMaxWidth() - .wrapContentWidth() - ) { - Text( - text = "Email", style = PraxisTypography.caption.copy( - color = PraxisColorProvider.colors.textPrimary.copy(alpha = 0.7f), - fontWeight = FontWeight.Normal, - textAlign = TextAlign.Start - ), modifier = Modifier.padding(bottom = 4.dp) - ) - Row( - modifier = modifier - .fillMaxWidth(), - verticalAlignment = Alignment.CenterVertically, - horizontalArrangement = Arrangement.Start - ) { - EmailTF() - } - } - -} - -@ExperimentalComposeUiApi -@Composable -private fun EmailTF() { - var email by remember { mutableStateOf("") } - val keyboardController = LocalSoftwareKeyboardController.current - - TextField( - value = email, - onValueChange = { newEmail -> - email = newEmail - }, - textStyle = textStyleField(), - leadingIcon = { - Icon(imageVector = Icons.Default.Email, contentDescription = null, tint = PraxisColorProvider.colors.textPrimary) - }, - placeholder = { - Text( - text = "Your email address", - style = textStyleField(), - textAlign = TextAlign.Start - ) - }, - keyboardOptions = KeyboardOptions.Default.copy( - autoCorrect = false, - keyboardType = KeyboardType.Email, - imeAction = ImeAction.Done, - ), - keyboardActions = KeyboardActions(onDone = { keyboardController?.hide() }), - colors = textFieldColors(), - singleLine = true, - maxLines = 1 - ) -} - -@Composable -private fun textFieldColors() = TextFieldDefaults.textFieldColors( - backgroundColor = Color.Transparent, - cursorColor = PraxisColorProvider.colors.textPrimary, - unfocusedIndicatorColor = Color.Transparent, - focusedIndicatorColor = Color.Transparent -) - -@Composable -private fun textStyleField() = PraxisTypography.h6.copy( - color = PraxisColorProvider.colors.textPrimary, - fontWeight = FontWeight.Normal, - textAlign = TextAlign.Start -) \ No newline at end of file diff --git a/ui-onboarding/src/main/java/com/mutualmobile/praxis/uionboarding/compose/GettingStarted.kt b/ui-onboarding/src/main/java/com/mutualmobile/praxis/uionboarding/compose/GettingStarted.kt deleted file mode 100644 index 270d36b..0000000 --- a/ui-onboarding/src/main/java/com/mutualmobile/praxis/uionboarding/compose/GettingStarted.kt +++ /dev/null @@ -1,210 +0,0 @@ -package com.mutualmobile.praxis.uionboarding.compose - -import androidx.compose.animation.* -import androidx.compose.foundation.Image -import androidx.compose.foundation.layout.* -import androidx.compose.material.* -import androidx.compose.runtime.* -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.platform.LocalDensity -import androidx.compose.ui.res.painterResource -import androidx.compose.ui.text.SpanStyle -import androidx.compose.ui.text.buildAnnotatedString -import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.text.withStyle -import androidx.compose.ui.unit.Density -import androidx.compose.ui.unit.dp -import com.google.accompanist.insets.statusBarsPadding -import com.google.accompanist.systemuicontroller.rememberSystemUiController -import com.mutualmobile.praxis.commonui.theme.* -import com.mutualmobile.praxis.navigator.ComposeNavigator -import com.mutualmobile.praxis.navigator.PraxisScreen -import com.mutualmobile.praxis.uionboarding.R - -@Composable -fun GettingStartedUI(composeNavigator: ComposeNavigator) { - PraxisTheme { - val scaffoldState = rememberScaffoldState() - val sysUiController = rememberSystemUiController() - - SideEffect { - sysUiController.setNavigationBarColor(color = PraxisCloneColor) - sysUiController.setSystemBarsColor(color = PraxisCloneColor) - } - - Scaffold( - backgroundColor = PraxisCloneColor, - contentColor = PraxisColorProvider.colors.textSecondary, - modifier = Modifier.statusBarsPadding(), scaffoldState = scaffoldState, snackbarHost = { - scaffoldState.snackbarHostState - } - ) { innerPadding -> - Box(modifier = Modifier.padding(innerPadding)) { - PraxisSurface( - color = PraxisCloneColor, - modifier = Modifier - .padding(28.dp) - ) { - Column( - verticalArrangement = Arrangement.SpaceAround, - horizontalAlignment = Alignment.CenterHorizontally, - modifier = Modifier - .fillMaxHeight() - .fillMaxWidth() - ) { - IntroText(modifier = Modifier.padding(top = 12.dp)) - CenterImage() - Spacer(Modifier.padding(8.dp)) - GetStartedButton(composeNavigator) - } - - } - } - - } - } -} - -@Composable -private fun CenterImage() { - - var expanded by remember { mutableStateOf(false) } - - LaunchedEffect(Unit) { - expanded = !expanded - } - AnimatedVisibility( - visible = expanded, enter = ImageEnterTransition(), - exit = ImageExitTrans() - ) { - Image( - painter = painterResource(id = R.drawable.gettingstarted), - contentDescription = "Logo", - Modifier - ) - } -} - -@Composable -private fun ImageExitTrans() = shrinkOut() + fadeOut() - -@Composable -private fun ImageEnterTransition() = expandIn( - expandFrom = Alignment.Center -) + fadeIn( - // Fade in with the initial alpha of 0.3f. - initialAlpha = 0.3f -) - -@OptIn(ExperimentalAnimationApi::class) -@Composable -private fun GetStartedButton(composeNavigator: ComposeNavigator) { - var expanded by remember { mutableStateOf(false) } - - LaunchedEffect(Unit) { - expanded = !expanded - } - val density = LocalDensity.current - - AnimatedVisibility( - visible = expanded, enter = GetStartedEnterTransition(density), - exit = GetStartedExitTrans() - ) { - Button( - onClick = { - composeNavigator.navigate(PraxisScreen.SkipTypingScreen.name) - }, - Modifier - .fillMaxWidth() - .height(40.dp), - colors = ButtonDefaults.buttonColors(backgroundColor = Color.White) - ) { - Text( - text = "Get started", - style = PraxisTypography.subtitle2.copy(color = PraxisCloneColor) - ) - } - } -} - -@Composable -private fun GetStartedExitTrans() = slideOutVertically() + shrinkVertically() + fadeOut() - -@Composable -private fun GetStartedEnterTransition(density: Density) = - slideInVertically { - // Slide in from 40 dp from the bottom. - with(density) { +5680.dp.roundToPx() } - } + expandVertically( - // Expand from the top. - expandFrom = Alignment.Top - ) + fadeIn( - // Fade in with the initial alpha of 0.3f. - initialAlpha = 0.3f - ) - -@Composable -private fun IntroText(modifier: Modifier = Modifier) { - var expanded by remember { mutableStateOf(false) } - - LaunchedEffect(Unit) { - expanded = !expanded - } - val density = LocalDensity.current - - AnimatedVisibility( - visible = expanded, enter = IntroEnterTransition(density), - exit = IntroExitTransition() - ) { - Text( - text = buildAnnotatedString { - withStyle( - style = SpanStyle( - fontFamily = praxisFontFamily, - fontWeight = FontWeight.Bold, color = Color.White - ) - ) { - append("Picture this: a\n") - } - withStyle( - style = SpanStyle( - fontFamily = praxisFontFamily, - fontWeight = FontWeight.Bold, color = Color.White - ) - ) { - append("messaging app,\n") - } - withStyle( - style = SpanStyle( - PraxisLogoYellow, - fontFamily = praxisFontFamily, fontWeight = FontWeight.Bold - ) - ) { - append("but built for\nwork.") - } - }, - textAlign = TextAlign.Left, - modifier = modifier.fillMaxWidth(), - style = PraxisTypography.h4 - ) - } - -} - -@Composable -private fun IntroExitTransition() = slideOutHorizontally() + shrinkHorizontally() + fadeOut() - -@Composable -private fun IntroEnterTransition(density: Density) = slideInHorizontally { - // Slide in from 12580 dp from the left. - with(density) { -12580.dp.roundToPx() } -} + expandHorizontally( - // Expand from the top. - expandFrom = Alignment.Start -) + fadeIn( - // Fade in with the initial alpha of 0.3f. - initialAlpha = 0.3f -) diff --git a/ui-onboarding/src/main/java/com/mutualmobile/praxis/uionboarding/compose/ScreenInputUI.kt b/ui-onboarding/src/main/java/com/mutualmobile/praxis/uionboarding/compose/ScreenInputUI.kt deleted file mode 100644 index 11751dd..0000000 --- a/ui-onboarding/src/main/java/com/mutualmobile/praxis/uionboarding/compose/ScreenInputUI.kt +++ /dev/null @@ -1,34 +0,0 @@ -package com.mutualmobile.praxis.uionboarding.compose - -import androidx.compose.runtime.* -import androidx.compose.ui.res.stringResource -import com.mutualmobile.praxis.commonui.theme.PraxisTheme -import com.mutualmobile.praxis.navigator.ComposeNavigator -import com.mutualmobile.praxis.uionboarding.R - -@Composable -fun EmailAddressInputUI(composeNavigator: ComposeNavigator) { - PraxisTheme() { - CommonInputUI( - composeNavigator, - { modifier -> - EmailInputView(modifier) - }, - stringResource(id = R.string.subtitle_this_email_slack) - ) - } -} - -@Composable -fun WorkspaceInputUI(composeNavigator: ComposeNavigator) { - PraxisTheme() { - CommonInputUI( - composeNavigator, - { - WorkspaceInputView(it) - }, - stringResource(id = R.string.subtitle_this_address_slack) - ) - } -} - diff --git a/ui-onboarding/src/main/java/com/mutualmobile/praxis/uionboarding/compose/SkipTypingScreen.kt b/ui-onboarding/src/main/java/com/mutualmobile/praxis/uionboarding/compose/SkipTypingScreen.kt deleted file mode 100644 index 15e9e02..0000000 --- a/ui-onboarding/src/main/java/com/mutualmobile/praxis/uionboarding/compose/SkipTypingScreen.kt +++ /dev/null @@ -1,167 +0,0 @@ -package com.mutualmobile.praxis.uionboarding.compose - -import androidx.compose.foundation.BorderStroke -import androidx.compose.foundation.Image -import androidx.compose.foundation.layout.* -import androidx.compose.material.* -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.Clear -import androidx.compose.runtime.Composable -import androidx.compose.runtime.SideEffect -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.res.painterResource -import androidx.compose.ui.text.SpanStyle -import androidx.compose.ui.text.buildAnnotatedString -import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.text.withStyle -import androidx.compose.ui.unit.dp -import com.google.accompanist.insets.statusBarsPadding -import com.google.accompanist.systemuicontroller.rememberSystemUiController -import com.mutualmobile.praxis.commonui.material.PraxisSurfaceAppBar -import com.mutualmobile.praxis.commonui.theme.* -import com.mutualmobile.praxis.navigator.ComposeNavigator -import com.mutualmobile.praxis.navigator.PraxisScreen -import com.mutualmobile.praxis.uionboarding.R - -@Composable -fun SkipTypingUI(composeNavigator: ComposeNavigator) { - PraxisTheme() { - val scaffoldState = rememberScaffoldState() - val sysUiController = rememberSystemUiController() - SideEffect { - sysUiController.setNavigationBarColor(color = PraxisCloneColor) - sysUiController.setSystemBarsColor(color = PraxisCloneColor) - } - Scaffold( - backgroundColor = PraxisCloneColor, - contentColor = PraxisColorProvider.colors.textSecondary, - modifier = Modifier.statusBarsPadding(), scaffoldState = scaffoldState, - topBar = { - PraxisSurfaceAppBar( - title = { - - }, - navigationIcon = { - IconButton(onClick = { - composeNavigator.navigateUp() - }) { - Icon( - imageVector = Icons.Filled.Clear, - contentDescription = "Clear", - modifier = Modifier.padding(start = 8.dp), tint = Color.White - ) - } - }, - backgroundColor = PraxisCloneColor, - elevation = 0.dp - ) - }, - snackbarHost = { - scaffoldState.snackbarHostState - } - ) { innerPadding -> - Box(modifier = Modifier.padding(innerPadding)) { - PraxisSurface( - color = PraxisCloneColor, - modifier = Modifier - .padding(28.dp) - ) { - Column( - verticalArrangement = Arrangement.SpaceAround, - horizontalAlignment = Alignment.CenterHorizontally, - modifier = Modifier - .fillMaxHeight() - .fillMaxWidth() - ) { - Image( - painter = painterResource(id = R.drawable.gettingstarted), - contentDescription = "Logo", - Modifier - ) - TitleSubtitleText() - Spacer(Modifier.padding(8.dp)) - Column { - EmailMeMagicLink(composeNavigator) - Box(modifier = Modifier.height(12.dp)) - IWillSignInManually(composeNavigator) - } - - } - - } - } - - } - } - - -} - -@Composable -fun EmailMeMagicLink(composeNavigator: ComposeNavigator) { - OutlinedButton( - onClick = { - composeNavigator.navigate(PraxisScreen.EmailAddressInputUI.name) - }, - border = BorderStroke(1.dp, color = Color.White), - colors = ButtonDefaults.buttonColors(backgroundColor = Color.Transparent), - modifier = Modifier - .fillMaxWidth() - .height(40.dp), - ) { - Text( - text = "Email me a magic link", - style = PraxisTypography.subtitle2.copy(color = Color.White) - ) - } -} - -@Composable -private fun IWillSignInManually(composeNavigator: ComposeNavigator) { - Button( - onClick = { - composeNavigator.navigate(PraxisScreen.WorkspaceInputUI.name) - }, - Modifier - .fillMaxWidth() - .height(40.dp), - colors = ButtonDefaults.buttonColors(backgroundColor = Color.White) - ) { - Text( - text = "I'll sign in manually", - style = PraxisTypography.subtitle2.copy(color = PraxisCloneColor) - ) - } -} - -@Composable -private fun TitleSubtitleText(modifier: Modifier = Modifier) { - Text( - text = buildAnnotatedString { - withStyle( - style = SpanStyle( - fontFamily = praxisFontFamily, - fontWeight = FontWeight.Bold, - fontSize = PraxisTypography.h6.fontSize, color = Color.White - ) - ) { - append("Want to skip the typing ?\n\n") - } - withStyle( - style = SpanStyle( - fontFamily = praxisFontFamily, - fontWeight = FontWeight.Normal, - fontSize = PraxisTypography.subtitle2.fontSize, color = Color.White - ) - ) { - append("We can email you a magic sign-in link that adds all your workspaces at once") - } - }, - textAlign = TextAlign.Center, - modifier = modifier.fillMaxWidth(), - style = PraxisTypography.h4 - ) -} diff --git a/ui-onboarding/src/main/java/com/mutualmobile/praxis/uionboarding/compose/WorkspaceInputView.kt b/ui-onboarding/src/main/java/com/mutualmobile/praxis/uionboarding/compose/WorkspaceInputView.kt deleted file mode 100644 index 8c842c7..0000000 --- a/ui-onboarding/src/main/java/com/mutualmobile/praxis/uionboarding/compose/WorkspaceInputView.kt +++ /dev/null @@ -1,85 +0,0 @@ -package com.mutualmobile.praxis.uionboarding.compose - -import androidx.compose.foundation.layout.* -import androidx.compose.material.Text -import androidx.compose.material.TextField -import androidx.compose.material.TextFieldDefaults -import androidx.compose.runtime.* -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.unit.dp -import com.mutualmobile.praxis.commonui.theme.PraxisColorProvider -import com.mutualmobile.praxis.commonui.theme.PraxisTypography - -@Composable -fun WorkspaceInputView(modifier: Modifier) { - Column( - modifier = modifier - .fillMaxWidth() - .wrapContentWidth() - ) { - Text( - text = "Workspace URL", style = PraxisTypography.caption.copy( - color = PraxisColorProvider.colors.textPrimary.copy(alpha = 0.7f), - fontWeight = FontWeight.Normal, - textAlign = TextAlign.Start - ), modifier = Modifier.padding(bottom = 4.dp) - ) - Row( - modifier = modifier - .fillMaxWidth(), - verticalAlignment = Alignment.CenterVertically, - horizontalArrangement = Arrangement.Start - ) { - WorkspaceTF() - } - } -} - - -@Composable -private fun WorkspaceTF() { - var workspace by remember { mutableStateOf("") } - - TextField( - value = workspace, - onValueChange = { newEmail -> - workspace = newEmail - }, - textStyle = textStyleField(), - leadingIcon = { - Text(text = "https://", style = textStyleField().copy(color = PraxisColorProvider.colors.textPrimary.copy(alpha = 0.4f))) - }, - trailingIcon = { - Text(".slack.com", style = textStyleField().copy(color = PraxisColorProvider.colors.textPrimary.copy(alpha = 0.4f))) - }, - placeholder = { - Text( - text = "your-workspace", - style = textStyleField(), - textAlign = TextAlign.Start - ) - }, - colors = textFieldColors(), - singleLine = true, - maxLines = 1, - ) -} - -@Composable -private fun textFieldColors() = TextFieldDefaults.textFieldColors( - backgroundColor = Color.Transparent, - cursorColor = PraxisColorProvider.colors.textPrimary, - unfocusedIndicatorColor = Color.Transparent, - focusedIndicatorColor = Color.Transparent -) - -@Composable -private fun textStyleField() = PraxisTypography.h6.copy( - color = PraxisColorProvider.colors.textPrimary.copy(alpha = 0.7f), - fontWeight = FontWeight.Normal, - textAlign = TextAlign.Start -) \ No newline at end of file diff --git a/ui-onboarding/src/main/java/com/mutualmobile/praxis/uionboarding/nav/OnboardingNavigation.kt b/ui-onboarding/src/main/java/com/mutualmobile/praxis/uionboarding/nav/OnboardingNavigation.kt deleted file mode 100644 index fd6f075..0000000 --- a/ui-onboarding/src/main/java/com/mutualmobile/praxis/uionboarding/nav/OnboardingNavigation.kt +++ /dev/null @@ -1,36 +0,0 @@ -package com.mutualmobile.praxis.uionboarding.nav - - -import androidx.navigation.NavGraphBuilder -import androidx.navigation.compose.composable -import androidx.navigation.navigation -import com.mutualmobile.praxis.navigator.ComposeNavigator -import com.mutualmobile.praxis.navigator.PraxisRoute -import com.mutualmobile.praxis.navigator.PraxisScreen -import com.mutualmobile.praxis.uionboarding.compose.EmailAddressInputUI -import com.mutualmobile.praxis.uionboarding.compose.GettingStartedUI -import com.mutualmobile.praxis.uionboarding.compose.SkipTypingUI -import com.mutualmobile.praxis.uionboarding.compose.WorkspaceInputUI - -fun NavGraphBuilder.onboardingNavigation( - composeNavigator: ComposeNavigator, -) { - navigation( - startDestination = PraxisScreen.GettingStarted.name, - route = PraxisRoute.OnBoarding.name - ) { - composable(PraxisScreen.GettingStarted.name) { - GettingStartedUI(composeNavigator) - } - composable(PraxisScreen.SkipTypingScreen.name) { - SkipTypingUI(composeNavigator) - } - composable(PraxisScreen.WorkspaceInputUI.name) { - WorkspaceInputUI(composeNavigator) - } - composable(PraxisScreen.EmailAddressInputUI.name) { - EmailAddressInputUI(composeNavigator) - } - } - -} \ No newline at end of file diff --git a/ui-onboarding/src/main/res/drawable-hdpi/gettingstarted.png b/ui-onboarding/src/main/res/drawable-hdpi/gettingstarted.png deleted file mode 100644 index 317cec3355afd1f8a6bbb603e3a0b4f3988b3059..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26976 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 diff --git a/ui-onboarding/src/main/res/drawable-xxhdpi/gettingstarted.png b/ui-onboarding/src/main/res/drawable-xxhdpi/gettingstarted.png deleted file mode 100644 index 4e7dad74875741b04aebe068700548fe8b5b227f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100557 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⩔X!8#r)@zW(-2qq~-=qvT5$7S-$5 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

pPfDYjqDzs&UVMNNf}>t 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 diff --git a/ui-onboarding/src/main/res/values/strings.xml b/ui-onboarding/src/main/res/values/strings.xml deleted file mode 100644 index ca6a699..0000000 --- a/ui-onboarding/src/main/res/values/strings.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - This is the address you use to sign in to Praxis - We\'ll send you an email that\'ll instantly sign you in. - \ No newline at end of file diff --git a/ui-onboarding/src/test/java/com/mutualmobile/praxis/uionboarding/ExampleUnitTest.kt b/ui-onboarding/src/test/java/com/mutualmobile/praxis/uionboarding/ExampleUnitTest.kt deleted file mode 100644 index c4d6e13..0000000 --- a/ui-onboarding/src/test/java/com/mutualmobile/praxis/uionboarding/ExampleUnitTest.kt +++ /dev/null @@ -1,17 +0,0 @@ -package com.mutualmobile.praxis.uionboarding - -import org.junit.Test - -import org.junit.Assert.* - -/** - * Example local unit test, which will execute on the development machine (host). - * - * See [testing documentation](http://d.android.com/tools/testing). - */ -class ExampleUnitTest { - @Test - fun addition_isCorrect() { - assertEquals(4, 2 + 2) - } -} \ No newline at end of file