Skip to content

Commit

Permalink
Converted Login Screen from Activity -> Composable Screen
Browse files Browse the repository at this point in the history
  • Loading branch information
aritra-tech committed Jan 4, 2025
1 parent ded8c41 commit c752a18
Show file tree
Hide file tree
Showing 10 changed files with 296 additions and 386 deletions.
54 changes: 19 additions & 35 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,20 @@
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="32"
tools:ignore="ScopedStorage" />
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />

<application
android:name=".UnCrackApplication"
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="true"
android:icon="@drawable/logo_uncrack"
android:label="@string/app_name"
android:name=".UnCrackApplication"
android:roundIcon="@drawable/dark_uncrack_cutout"
android:supportsRtl="true"
android:theme="@style/Theme.UnCrack"
Expand All @@ -26,11 +27,7 @@
android:name=".MainActivity"
android:exported="true"
android:label="UnCrack"
android:theme="@style/Theme.UnCrack"/>

<activity
android:name=".presentation.intro.SplashScreen"
android:exported="true"
android:windowSoftInputMode="adjustResize"
android:theme="@style/Theme.UnCrack">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
Expand All @@ -40,45 +37,32 @@
</activity>

<activity
android:name=".presentation.intro.OnboardingScreen"
android:exported="true"
android:theme="@style/Theme.UnCrack">
</activity>

<activity android:name=".presentation.auth.login.LoginScreens"
android:exported="true"
android:theme="@style/Theme.UnCrack">
</activity>

<activity android:name=".presentation.auth.signup.SignupScreen"
android:name=".presentation.auth.signup.SignupScreen"
android:exported="true"
android:theme="@style/Theme.UnCrack">
</activity>
android:theme="@style/Theme.UnCrack"></activity>

<activity android:name=".presentation.auth.forgotPassword.ForgotPasswordScreen"
<activity
android:name=".presentation.auth.forgotPassword.ForgotPasswordScreen"
android:exported="true"
android:theme="@style/Theme.UnCrack">
</activity>
android:theme="@style/Theme.UnCrack"></activity>

<activity android:name=".presentation.masterKey.createMasterKey.CreateMasterKeyScreen"
<activity
android:name=".presentation.masterKey.createMasterKey.CreateMasterKeyScreen"
android:exported="true"
android:theme="@style/Theme.UnCrack">
</activity>
android:theme="@style/Theme.UnCrack"></activity>

<activity android:name=".presentation.masterKey.confirmMasterKey.ConfirmMasterKeyScreen"
<activity
android:name=".presentation.masterKey.confirmMasterKey.ConfirmMasterKeyScreen"
android:exported="true"
android:theme="@style/Theme.UnCrack">
</activity>


android:theme="@style/Theme.UnCrack"></activity>


<service
android:name=".services.UnCrackMessagingService"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
<action android:name="com.google.firebase.MESSAGING_EVENT" />

</intent-filter>
</service>
Expand All @@ -87,7 +71,7 @@
android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver"
android:enabled="true"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND" >
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
Expand Down
4 changes: 3 additions & 1 deletion app/src/main/java/com/aritradas/uncrack/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import androidx.core.view.WindowCompat
import com.aritradas.uncrack.navigation.Navigation
import com.aritradas.uncrack.presentation.settings.SettingsViewModel
import com.aritradas.uncrack.ui.theme.UnCrackTheme
import com.aritradas.uncrack.util.NetworkConnectivityObserver
import com.google.android.gms.tasks.Task
import com.google.android.play.core.appupdate.AppUpdateManagerFactory
import com.google.android.play.core.appupdate.AppUpdateInfo
Expand Down Expand Up @@ -70,7 +71,8 @@ class MainActivity : ComponentActivity() {

setContent {
UnCrackTheme {
Navigation(this)
val connectivityObserver = NetworkConnectivityObserver(applicationContext)
Navigation(this, connectivityObserver)
}
}
}
Expand Down
32 changes: 30 additions & 2 deletions app/src/main/java/com/aritradas/uncrack/navigation/Navigation.kt
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,12 @@ import androidx.navigation.compose.currentBackStackEntryAsState
import androidx.navigation.compose.rememberNavController
import androidx.navigation.navArgument
import com.aritradas.uncrack.R
import com.aritradas.uncrack.presentation.auth.AuthViewModel
import com.aritradas.uncrack.presentation.auth.login.LoginScreen
import com.aritradas.uncrack.presentation.browse.BrowseScreen
import com.aritradas.uncrack.presentation.browse.category.CategoryScreen
import com.aritradas.uncrack.presentation.intro.OnboardingScreen
import com.aritradas.uncrack.presentation.intro.SplashScreen
import com.aritradas.uncrack.presentation.masterKey.KeyViewModel
import com.aritradas.uncrack.presentation.masterKey.updateMasterKey.UpdateMasterKey
import com.aritradas.uncrack.presentation.profile.HelpScreen
Expand Down Expand Up @@ -63,6 +67,7 @@ import com.aritradas.uncrack.ui.theme.OnPrimaryContainerLight
import com.aritradas.uncrack.ui.theme.OnSurfaceVariantLight
import com.aritradas.uncrack.ui.theme.PrimaryDark
import com.aritradas.uncrack.util.BackPressHandler
import com.aritradas.uncrack.util.ConnectivityObserver
import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.persistentListOf

Expand All @@ -71,7 +76,9 @@ import kotlinx.collections.immutable.persistentListOf
@Composable
fun Navigation(
activity: Activity,
connectivityObserver: ConnectivityObserver,
modifier: Modifier = Modifier,
authViewModel: AuthViewModel = hiltViewModel(),
masterKeyViewModel: KeyViewModel = hiltViewModel(),
passwordGeneratorViewModel: PasswordGeneratorViewModel = hiltViewModel(),
userViewModel: UserViewModel = hiltViewModel(),
Expand All @@ -87,6 +94,9 @@ fun Navigation(
val backStackEntry = navController.currentBackStackEntryAsState()

val screensWithoutNavigationBar = persistentListOf(
Screen.OnboardingScreen.name,
Screen.LoginScreen.name,
Screen.SignUpScreen.name,
Screen.AccountSelectionScreen.name,
"${Screen.AddPasswordScreen.name}?accountIcon={accountIcon}&accountName={accountName}&accountCategory={accountCategory}",
"${Screen.EditPasswordScreen.name}/{accountID}",
Expand All @@ -102,7 +112,9 @@ fun Navigation(
BackPressHandler()

Scaffold(
modifier = Modifier.fillMaxSize().then(modifier),
modifier = Modifier
.fillMaxSize()
.then(modifier),
bottomBar = {
ShowBottomNavigation(
backStackEntry,
Expand All @@ -113,13 +125,29 @@ fun Navigation(
) {
NavHost(
navController = navController,
startDestination = "vault_screen",
startDestination = "splash_screen",
enterTransition = { FadeIn },
exitTransition = { FadeOut },
popEnterTransition = { FadeIn },
popExitTransition = { FadeOut }
) {

composable(route = Screen.SplashScreen.name) {
SplashScreen(navController)
}
composable(route = Screen.OnboardingScreen.name) {
OnboardingScreen(navController)
}

composable(route = Screen.LoginScreen.name) {
LoginScreen(
navController,
viewModel = authViewModel,
connectivityObserver
)
}


composable(route = Screen.BrowseScreen.name) {
BrowseScreen(
navController
Expand Down
7 changes: 7 additions & 0 deletions app/src/main/java/com/aritradas/uncrack/navigation/Screen.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@ package com.aritradas.uncrack.navigation

sealed class Screen(val name: String) {

data object SplashScreen: Screen("splash_screen")
data object OnboardingScreen: Screen("onboarding_screen")
data object LoginScreen: Screen("login_screen")
data object SignUpScreen: Screen("signup_screen")
data object ForgetPasswordScreen: Screen("forgot_password_screen")
data object CreateMasterKeyScreen: Screen("create_master_key_scree")
data object ConfirmMasterKeyScreen: Screen("confirm_master_key_scree")
data object BrowseScreen : Screen("home_screen")
data object VaultScreen : Screen("vault_screen")
data object ToolsScreen : Screen("tools_screen")
Expand Down
Loading

0 comments on commit c752a18

Please sign in to comment.