From 926783276319b64dfae16be1052f9e76ca160768 Mon Sep 17 00:00:00 2001 From: aritra Date: Sat, 9 Nov 2024 13:46:25 +0530 Subject: [PATCH 1/7] Added loading state in the Button --- .../aritradas/uncrack/components/UCButton.kt | 53 ++++++++++++++----- .../presentation/auth/AuthViewModel.kt | 3 ++ .../presentation/auth/signup/SignupScreen.kt | 2 + .../uncrack/presentation/vault/VaultScreen.kt | 1 + .../com/aritradas/uncrack/ui/theme/Theme.kt | 3 ++ 5 files changed, 50 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/aritradas/uncrack/components/UCButton.kt b/app/src/main/java/com/aritradas/uncrack/components/UCButton.kt index 7b7fbba..a1b33c0 100644 --- a/app/src/main/java/com/aritradas/uncrack/components/UCButton.kt +++ b/app/src/main/java/com/aritradas/uncrack/components/UCButton.kt @@ -2,9 +2,11 @@ package com.aritradas.uncrack.components import androidx.compose.foundation.layout.defaultMinSize import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.Icon import androidx.compose.material3.Text import androidx.compose.runtime.Composable @@ -25,6 +27,8 @@ fun UCButton( enabled: Boolean = true, trailingIcon: Painter? = null, leadingIcon: Painter? = null, + isLoading: Boolean = false, + loadingText: String? = null, onClick: () -> Unit ) { Button( @@ -39,19 +43,44 @@ fun UCButton( colors = ButtonDefaults.buttonColors( containerColor = PrimaryLight ), - enabled = enabled + enabled = enabled && !isLoading ) { - leadingIcon?.let { - Icon(modifier = Modifier.padding(end = 4.dp), painter = it, contentDescription = null) - } - Text( - text = text, - color = if (enabled) Color.White else SurfaceTintLight, - fontFamily = DMSansFontFamily, - fontSize = 14.sp - ) - trailingIcon?.let { - Icon(modifier = Modifier.padding(start = 4.dp), painter = it, contentDescription = null) + if (isLoading) { + CircularProgressIndicator( + modifier = Modifier.size(24.dp), + color = Color.White, + strokeWidth = 2.dp + ) + loadingText?.let { + Text( + modifier = Modifier.padding(start = 8.dp), + text = it, + color = Color.White, + fontFamily = DMSansFontFamily, + fontSize = 14.sp + ) + } + } else { + leadingIcon?.let { + Icon( + modifier = Modifier.padding(end = 4.dp), + painter = it, + contentDescription = null + ) + } + Text( + text = text, + color = if (enabled) Color.White else SurfaceTintLight, + fontFamily = DMSansFontFamily, + fontSize = 14.sp + ) + trailingIcon?.let { + Icon( + modifier = Modifier.padding(start = 4.dp), + painter = it, + contentDescription = null + ) + } } } } \ No newline at end of file diff --git a/app/src/main/java/com/aritradas/uncrack/presentation/auth/AuthViewModel.kt b/app/src/main/java/com/aritradas/uncrack/presentation/auth/AuthViewModel.kt index ce8464f..2e52c79 100644 --- a/app/src/main/java/com/aritradas/uncrack/presentation/auth/AuthViewModel.kt +++ b/app/src/main/java/com/aritradas/uncrack/presentation/auth/AuthViewModel.kt @@ -10,6 +10,7 @@ import com.google.firebase.auth.FirebaseUser import com.google.firebase.auth.ktx.auth import com.google.firebase.firestore.FirebaseFirestore import com.google.firebase.ktx.Firebase +import kotlinx.coroutines.delay import timber.log.Timber class AuthViewModel : ViewModel() { @@ -30,6 +31,7 @@ class AuthViewModel : ViewModel() { } fun logIn(email: String, password: String) = runIO { + delay(2000L) auth.signInWithEmailAndPassword(email, password) .addOnCompleteListener { task -> if (task.isSuccessful) { @@ -73,6 +75,7 @@ class AuthViewModel : ViewModel() { password: String, onSignedUp: (FirebaseUser) -> Unit, ) = runIO { + delay(2000L) auth.createUserWithEmailAndPassword(email, password) .addOnCompleteListener { task -> if (task.isSuccessful) { diff --git a/app/src/main/java/com/aritradas/uncrack/presentation/auth/signup/SignupScreen.kt b/app/src/main/java/com/aritradas/uncrack/presentation/auth/signup/SignupScreen.kt index 56da59a..76eb64a 100644 --- a/app/src/main/java/com/aritradas/uncrack/presentation/auth/signup/SignupScreen.kt +++ b/app/src/main/java/com/aritradas/uncrack/presentation/auth/signup/SignupScreen.kt @@ -244,6 +244,8 @@ fun SignupContent( modifier = Modifier .fillMaxWidth(), text = stringResource(id = R.string.register), + isLoading = isLoading, + loadingText = "Creating your account", onClick = { isLoading = true authViewModel.signUp( diff --git a/app/src/main/java/com/aritradas/uncrack/presentation/vault/VaultScreen.kt b/app/src/main/java/com/aritradas/uncrack/presentation/vault/VaultScreen.kt index 850a191..6a2a48d 100644 --- a/app/src/main/java/com/aritradas/uncrack/presentation/vault/VaultScreen.kt +++ b/app/src/main/java/com/aritradas/uncrack/presentation/vault/VaultScreen.kt @@ -150,6 +150,7 @@ fun VaultScreen( } else { item { EmptyState( + modifier = Modifier.padding(top = 100.dp), stateTitle = "Hey ${user.name}, \n currently there are no passwords saved", image = R.drawable.vault_empty_state ) diff --git a/app/src/main/java/com/aritradas/uncrack/ui/theme/Theme.kt b/app/src/main/java/com/aritradas/uncrack/ui/theme/Theme.kt index 07267aa..129acdc 100644 --- a/app/src/main/java/com/aritradas/uncrack/ui/theme/Theme.kt +++ b/app/src/main/java/com/aritradas/uncrack/ui/theme/Theme.kt @@ -9,13 +9,16 @@ import androidx.compose.material3.darkColorScheme import androidx.compose.material3.dynamicDarkColorScheme import androidx.compose.material3.dynamicLightColorScheme import androidx.compose.material3.lightColorScheme +import androidx.compose.material3.surfaceColorAtElevation import androidx.compose.runtime.Composable import androidx.compose.runtime.SideEffect import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue +import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalView +import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import com.aritradas.uncrack.sharedViewModel.ThemeViewModel From 6f4a3262356fcd7840fe70d12d3958e41949f15f Mon Sep 17 00:00:00 2001 From: aritra Date: Sun, 10 Nov 2024 00:02:40 +0530 Subject: [PATCH 2/7] Created loading state for Create Master Key screen and Login Screen --- .../uncrack/presentation/auth/login/LoginScreens.kt | 2 ++ .../uncrack/presentation/masterKey/KeyViewModel.kt | 8 ++++++++ .../masterKey/createMasterKey/CreateMasterKeyScreen.kt | 3 +++ 3 files changed, 13 insertions(+) diff --git a/app/src/main/java/com/aritradas/uncrack/presentation/auth/login/LoginScreens.kt b/app/src/main/java/com/aritradas/uncrack/presentation/auth/login/LoginScreens.kt index 5cb94ea..985da85 100644 --- a/app/src/main/java/com/aritradas/uncrack/presentation/auth/login/LoginScreens.kt +++ b/app/src/main/java/com/aritradas/uncrack/presentation/auth/login/LoginScreens.kt @@ -220,6 +220,8 @@ fun LoginContent( UCButton( modifier = Modifier.fillMaxWidth(), text = stringResource(R.string.login), + isLoading = isLoading, + loadingText = "Logging you in..", onClick = { isLoading = true viewModel.logIn(email, password) diff --git a/app/src/main/java/com/aritradas/uncrack/presentation/masterKey/KeyViewModel.kt b/app/src/main/java/com/aritradas/uncrack/presentation/masterKey/KeyViewModel.kt index bdd2913..68073e2 100644 --- a/app/src/main/java/com/aritradas/uncrack/presentation/masterKey/KeyViewModel.kt +++ b/app/src/main/java/com/aritradas/uncrack/presentation/masterKey/KeyViewModel.kt @@ -10,6 +10,7 @@ import com.aritradas.uncrack.domain.model.Key import com.aritradas.uncrack.domain.repository.KeyRepository import com.aritradas.uncrack.util.runIO import dagger.hilt.android.lifecycle.HiltViewModel +import kotlinx.coroutines.delay import javax.inject.Inject @HiltViewModel @@ -34,6 +35,10 @@ class KeyViewModel @Inject constructor( private val _hasSymbol = MutableLiveData(false) val hasSymbol: LiveData = _hasSymbol + private val _isLoading = MutableLiveData() + val isLoading: LiveData = _isLoading + + fun setMasterKey(masterKey: String) { _masterKeyLiveData.value = masterKey validatePassword(masterKey) @@ -60,7 +65,10 @@ class KeyViewModel @Inject constructor( } fun saveMasterKey(key: Key) = runIO { + delay(2000L) + _isLoading.postValue(true) repository.setMasterKey(key) + _isLoading.postValue(false) } fun getMasterKey() = runIO { diff --git a/app/src/main/java/com/aritradas/uncrack/presentation/masterKey/createMasterKey/CreateMasterKeyScreen.kt b/app/src/main/java/com/aritradas/uncrack/presentation/masterKey/createMasterKey/CreateMasterKeyScreen.kt index 457f21d..a497be0 100644 --- a/app/src/main/java/com/aritradas/uncrack/presentation/masterKey/createMasterKey/CreateMasterKeyScreen.kt +++ b/app/src/main/java/com/aritradas/uncrack/presentation/masterKey/createMasterKey/CreateMasterKeyScreen.kt @@ -66,6 +66,7 @@ fun CreateMasterKeyContent( val enableButtonObserver by masterKeyViewModel.enableButtonLiveData.observeAsState(false) var passwordVisibility by remember { mutableStateOf(false) } var confirmPasswordVisibility by remember { mutableStateOf(false) } + val isLoading by masterKeyViewModel.isLoading.observeAsState(false) Scaffold( modifier.fillMaxSize() @@ -169,6 +170,8 @@ fun CreateMasterKeyContent( UCButton( modifier = Modifier.fillMaxWidth(), text = stringResource(R.string.save), + isLoading = isLoading, + loadingText = "Creating you Master Key", onClick = { val key = Key(0, masterKeyObserver) masterKeyViewModel.saveMasterKey(key) From da00797e0f079b31c7867f249d7172fc1aae8632 Mon Sep 17 00:00:00 2001 From: aritra Date: Sun, 10 Nov 2024 00:30:52 +0530 Subject: [PATCH 3/7] Added more Accounts --- .../uncrack/domain/model/AccountType.kt | 12 +++ .../vault/AccountSelectionScreen.kt | 26 +++++ .../uncrack/presentation/vault/VaultScreen.kt | 2 +- .../com/aritradas/uncrack/util/UtilsKt.kt | 29 +++++- app/src/main/res/drawable/dropbox_new.xml | 17 ++++ app/src/main/res/drawable/github.xml | 14 +++ app/src/main/res/drawable/gitlab.xml | 22 +++++ app/src/main/res/drawable/google_drive.xml | 67 +++++++++++++ app/src/main/res/drawable/line.xml | 22 +++++ app/src/main/res/drawable/medium.xml | 9 ++ .../main/res/drawable/microsoft_onedrive.xml | 18 ++++ app/src/main/res/drawable/signal.xml | 9 ++ app/src/main/res/drawable/skype.xml | 95 +++++++++++++++++++ app/src/main/res/drawable/stackoverflow.xml | 13 +++ app/src/main/res/drawable/wechat.xml | 37 ++++++++ app/src/main/res/drawable/zoom.xml | 15 +++ 16 files changed, 405 insertions(+), 2 deletions(-) create mode 100644 app/src/main/res/drawable/dropbox_new.xml create mode 100644 app/src/main/res/drawable/github.xml create mode 100644 app/src/main/res/drawable/gitlab.xml create mode 100644 app/src/main/res/drawable/google_drive.xml create mode 100644 app/src/main/res/drawable/line.xml create mode 100644 app/src/main/res/drawable/medium.xml create mode 100644 app/src/main/res/drawable/microsoft_onedrive.xml create mode 100644 app/src/main/res/drawable/signal.xml create mode 100644 app/src/main/res/drawable/skype.xml create mode 100644 app/src/main/res/drawable/stackoverflow.xml create mode 100644 app/src/main/res/drawable/wechat.xml create mode 100644 app/src/main/res/drawable/zoom.xml diff --git a/app/src/main/java/com/aritradas/uncrack/domain/model/AccountType.kt b/app/src/main/java/com/aritradas/uncrack/domain/model/AccountType.kt index c174287..b5243e1 100644 --- a/app/src/main/java/com/aritradas/uncrack/domain/model/AccountType.kt +++ b/app/src/main/java/com/aritradas/uncrack/domain/model/AccountType.kt @@ -12,6 +12,18 @@ enum class AccountType(val text: String) { SLACK("Slack"), TELEGRAM("Telegram"), DISCORD("Discord"), + SIGNAL("Signal"), + LINE("Line"), + WECHAT("WeChat"), + SKYPE("Skype"), + ZOOM("Zoom"), + STACKOVERFLOW("Stack Overflow"), + MEDIUM("Medium"), + GITHUB("GitHub"), + GITLAB("GitLab"), + MICROSOFTONEDRIVE("Microsoft OneDrive"), + DROPBOX("DropBox"), + GOOGLEDRIVE("Google Drive"), DRIBBLE("Dribble"), BEHANCE("Behance"), REDDIT("Reddit"), diff --git a/app/src/main/java/com/aritradas/uncrack/presentation/vault/AccountSelectionScreen.kt b/app/src/main/java/com/aritradas/uncrack/presentation/vault/AccountSelectionScreen.kt index 4df2ccf..79a8c61 100644 --- a/app/src/main/java/com/aritradas/uncrack/presentation/vault/AccountSelectionScreen.kt +++ b/app/src/main/java/com/aritradas/uncrack/presentation/vault/AccountSelectionScreen.kt @@ -28,6 +28,7 @@ import com.aritradas.uncrack.util.UtilsKt.getCommunitiesAccounts import com.aritradas.uncrack.util.UtilsKt.getCrowdSourcingAccounts import com.aritradas.uncrack.util.UtilsKt.getPortfolioAccounts import com.aritradas.uncrack.util.UtilsKt.getSocialAccounts +import com.aritradas.uncrack.util.UtilsKt.getWorkAccounts @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -78,6 +79,31 @@ fun AccountSelectionScreen( } } + item { + Spacer(modifier = Modifier.height(10.dp)) + + Text( + text = stringResource(id = R.string.work), + style = medium20.copy(Color.Black) + ) + Spacer(modifier = Modifier.height(10.dp)) + } + + items(getWorkAccounts().size) { index -> + val entry = getWorkAccounts().entries.elementAt(index) + val accountText = entry.key + val iconId = entry.value + val category = stringResource(id = R.string.work) + + AccountCard( + icon = iconId, + text = accountText.text, + ) { + addEditViewModel.resetState() + goToAddPasswordScreen(iconId, accountText.text, category) + } + } + item { Spacer(modifier = Modifier.height(10.dp)) diff --git a/app/src/main/java/com/aritradas/uncrack/presentation/vault/VaultScreen.kt b/app/src/main/java/com/aritradas/uncrack/presentation/vault/VaultScreen.kt index 6a2a48d..0ae3568 100644 --- a/app/src/main/java/com/aritradas/uncrack/presentation/vault/VaultScreen.kt +++ b/app/src/main/java/com/aritradas/uncrack/presentation/vault/VaultScreen.kt @@ -101,7 +101,7 @@ fun VaultScreen( placeholder = { Row { Text( - text = "Search here ", + text = "Search for ", style = normal16.copy(OnSurfaceVariantLight), ) TypewriterText(texts = listOf( diff --git a/app/src/main/java/com/aritradas/uncrack/util/UtilsKt.kt b/app/src/main/java/com/aritradas/uncrack/util/UtilsKt.kt index ff04ea1..7b69eb3 100644 --- a/app/src/main/java/com/aritradas/uncrack/util/UtilsKt.kt +++ b/app/src/main/java/com/aritradas/uncrack/util/UtilsKt.kt @@ -122,6 +122,16 @@ object UtilsKt { ) } + fun getWorkAccounts(): Map { + return mapOf( + AccountType.MICROSOFTONEDRIVE to R.drawable.microsoft_onedrive, + AccountType.DROPBOX to R.drawable.dropbox_new, + AccountType.GOOGLEDRIVE to R.drawable.google_drive, + AccountType.MEDIUM to R.drawable.medium, + AccountType.GITHUB to R.drawable.github, + AccountType.GITLAB to R.drawable.gitlab, + ) + } fun getCrowdSourcingAccounts(): Map { return mapOf( AccountType.BUYMEACOFFEE to R.drawable.new_buy_me_a_coffee, @@ -134,6 +144,11 @@ object UtilsKt { AccountType.SLACK to R.drawable.slack, AccountType.TELEGRAM to R.drawable.telegram, AccountType.DISCORD to R.drawable.new_discord, + AccountType.SIGNAL to R.drawable.signal, + AccountType.LINE to R.drawable.line, + AccountType.ZOOM to R.drawable.zoom, + AccountType.SKYPE to R.drawable.skype, + AccountType.WECHAT to R.drawable.wechat ) } @@ -148,7 +163,8 @@ object UtilsKt { return mapOf( AccountType.REDDIT to R.drawable.reddit, AccountType.MEETUP to R.drawable.meetup, - AccountType.PINTEREST to R.drawable.pinterest + AccountType.PINTEREST to R.drawable.pinterest, + AccountType.STACKOVERFLOW to R.drawable.stackoverflow ) } @@ -161,6 +177,17 @@ object UtilsKt { "Snapchat" -> painterResource(id = R.drawable.snapchat) "Twitter" -> painterResource(id = R.drawable.twitter) "Messenger" -> painterResource(id = R.drawable.messenger) + "Microsoft OneDrive" -> painterResource(id = R.drawable.microsoft_onedrive) + "DropBox" -> painterResource(id = R.drawable.dropbox_new) + "Google Drive" -> painterResource(id = R.drawable.google_drive) + "Medium" -> painterResource(id = R.drawable.medium) + "GitHub" -> painterResource(id = R.drawable.github) + "GitLab" -> painterResource(id = R.drawable.gitlab) + "Signal" -> painterResource(id = R.drawable.signal) + "Line" -> painterResource(id = R.drawable.line) + "Zoom" -> painterResource(id = R.drawable.zoom) + "Skype" -> painterResource(id = R.drawable.skype) + "WeChat" -> painterResource(id = R.drawable.wechat) "Buy Me a Coffee" -> painterResource(id = R.drawable.new_buy_me_a_coffee) "Patreon" -> painterResource(id = R.drawable.patreon) "Slack" -> painterResource(id = R.drawable.slack) diff --git a/app/src/main/res/drawable/dropbox_new.xml b/app/src/main/res/drawable/dropbox_new.xml new file mode 100644 index 0000000..8a7e400 --- /dev/null +++ b/app/src/main/res/drawable/dropbox_new.xml @@ -0,0 +1,17 @@ + + + + + + + diff --git a/app/src/main/res/drawable/github.xml b/app/src/main/res/drawable/github.xml new file mode 100644 index 0000000..34f5054 --- /dev/null +++ b/app/src/main/res/drawable/github.xml @@ -0,0 +1,14 @@ + + + + + + diff --git a/app/src/main/res/drawable/gitlab.xml b/app/src/main/res/drawable/gitlab.xml new file mode 100644 index 0000000..ac05ac1 --- /dev/null +++ b/app/src/main/res/drawable/gitlab.xml @@ -0,0 +1,22 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable/google_drive.xml b/app/src/main/res/drawable/google_drive.xml new file mode 100644 index 0000000..940bc01 --- /dev/null +++ b/app/src/main/res/drawable/google_drive.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/line.xml b/app/src/main/res/drawable/line.xml new file mode 100644 index 0000000..aa4f1ad --- /dev/null +++ b/app/src/main/res/drawable/line.xml @@ -0,0 +1,22 @@ + + + + + + + + diff --git a/app/src/main/res/drawable/medium.xml b/app/src/main/res/drawable/medium.xml new file mode 100644 index 0000000..fe9e6a8 --- /dev/null +++ b/app/src/main/res/drawable/medium.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/microsoft_onedrive.xml b/app/src/main/res/drawable/microsoft_onedrive.xml new file mode 100644 index 0000000..f744a5c --- /dev/null +++ b/app/src/main/res/drawable/microsoft_onedrive.xml @@ -0,0 +1,18 @@ + + + + + + diff --git a/app/src/main/res/drawable/signal.xml b/app/src/main/res/drawable/signal.xml new file mode 100644 index 0000000..f2c85ed --- /dev/null +++ b/app/src/main/res/drawable/signal.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/skype.xml b/app/src/main/res/drawable/skype.xml new file mode 100644 index 0000000..cd8dbb7 --- /dev/null +++ b/app/src/main/res/drawable/skype.xml @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/stackoverflow.xml b/app/src/main/res/drawable/stackoverflow.xml new file mode 100644 index 0000000..042d94f --- /dev/null +++ b/app/src/main/res/drawable/stackoverflow.xml @@ -0,0 +1,13 @@ + + + + diff --git a/app/src/main/res/drawable/wechat.xml b/app/src/main/res/drawable/wechat.xml new file mode 100644 index 0000000..79b307b --- /dev/null +++ b/app/src/main/res/drawable/wechat.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/zoom.xml b/app/src/main/res/drawable/zoom.xml new file mode 100644 index 0000000..36dc7dc --- /dev/null +++ b/app/src/main/res/drawable/zoom.xml @@ -0,0 +1,15 @@ + + + + + From 40f5a6ead5a6ebd9e20cfc8c18916390a3288199 Mon Sep 17 00:00:00 2001 From: aritra Date: Sun, 10 Nov 2024 17:40:42 +0530 Subject: [PATCH 4/7] Fixed the edge-to-edge issues --- .../java/com/aritradas/uncrack/MainActivity.kt | 17 +++++++++++++++-- .../presentation/auth/login/LoginScreens.kt | 13 ++++++++++++- .../presentation/auth/signup/SignupScreen.kt | 14 +++++++++++++- .../confirmMasterKey/ConfirmMasterKeyScreen.kt | 13 ++++++++++++- .../createMasterKey/CreateMasterKeyScreen.kt | 13 ++++++++++++- 5 files changed, 64 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/aritradas/uncrack/MainActivity.kt b/app/src/main/java/com/aritradas/uncrack/MainActivity.kt index 2cff675..8eee43a 100644 --- a/app/src/main/java/com/aritradas/uncrack/MainActivity.kt +++ b/app/src/main/java/com/aritradas/uncrack/MainActivity.kt @@ -4,12 +4,16 @@ import android.os.Build import android.os.Bundle import android.widget.Toast import androidx.activity.ComponentActivity +import androidx.activity.SystemBarStyle import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.activity.result.ActivityResult import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.viewModels import androidx.annotation.RequiresApi +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.toArgb +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 @@ -40,8 +44,19 @@ class MainActivity : ComponentActivity() { @RequiresApi(Build.VERSION_CODES.O) override fun onCreate(savedInstanceState: Bundle?) { + enableEdgeToEdge( + statusBarStyle = SystemBarStyle.light( + Color.Transparent.toArgb(), Color.Transparent.toArgb() + ), + navigationBarStyle = SystemBarStyle.light( + Color.Transparent.toArgb(), Color.Transparent.toArgb() + ) + ) + super.onCreate(savedInstanceState) + WindowCompat.setDecorFitsSystemWindows(window, false) + settingsViewModel.isScreenshotEnabled.observe(this) { isEnabled -> if (isEnabled) { window.clearFlags(android.view.WindowManager.LayoutParams.FLAG_SECURE) @@ -51,8 +66,6 @@ class MainActivity : ComponentActivity() { } } - enableEdgeToEdge() - checkForAppUpdate() setContent { diff --git a/app/src/main/java/com/aritradas/uncrack/presentation/auth/login/LoginScreens.kt b/app/src/main/java/com/aritradas/uncrack/presentation/auth/login/LoginScreens.kt index 985da85..35fddb2 100644 --- a/app/src/main/java/com/aritradas/uncrack/presentation/auth/login/LoginScreens.kt +++ b/app/src/main/java/com/aritradas/uncrack/presentation/auth/login/LoginScreens.kt @@ -5,6 +5,7 @@ import android.content.Intent import android.os.Bundle import android.widget.Toast import androidx.activity.ComponentActivity +import androidx.activity.SystemBarStyle import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.compose.foundation.clickable @@ -35,6 +36,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource @@ -45,6 +47,7 @@ import androidx.compose.ui.text.input.PasswordVisualTransformation import androidx.compose.ui.text.input.VisualTransformation import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp +import androidx.core.view.WindowCompat import androidx.hilt.navigation.compose.hiltViewModel import com.aritradas.uncrack.R import com.aritradas.uncrack.components.NoInternetScreen @@ -76,8 +79,16 @@ class LoginScreens : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { - enableEdgeToEdge() + enableEdgeToEdge( + statusBarStyle = SystemBarStyle.light( + Color.Transparent.toArgb(), Color.Transparent.toArgb() + ), + navigationBarStyle = SystemBarStyle.light( + Color.Transparent.toArgb(), Color.Transparent.toArgb() + ) + ) super.onCreate(savedInstanceState) + WindowCompat.setDecorFitsSystemWindows(window, false) connectivityObserver = NetworkConnectivityObserver(applicationContext) setContent { diff --git a/app/src/main/java/com/aritradas/uncrack/presentation/auth/signup/SignupScreen.kt b/app/src/main/java/com/aritradas/uncrack/presentation/auth/signup/SignupScreen.kt index 76eb64a..e3ccbf8 100644 --- a/app/src/main/java/com/aritradas/uncrack/presentation/auth/signup/SignupScreen.kt +++ b/app/src/main/java/com/aritradas/uncrack/presentation/auth/signup/SignupScreen.kt @@ -5,6 +5,7 @@ import android.content.Intent import android.os.Bundle import android.widget.Toast import androidx.activity.ComponentActivity +import androidx.activity.SystemBarStyle import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.compose.foundation.clickable @@ -33,6 +34,7 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource @@ -43,6 +45,7 @@ import androidx.compose.ui.text.input.PasswordVisualTransformation import androidx.compose.ui.text.input.VisualTransformation import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp +import androidx.core.view.WindowCompat import androidx.hilt.navigation.compose.hiltViewModel import com.aritradas.uncrack.R import com.aritradas.uncrack.components.NoInternetScreen @@ -79,8 +82,17 @@ class SignupScreen : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { - enableEdgeToEdge() + enableEdgeToEdge( + statusBarStyle = SystemBarStyle.light( + Color.Transparent.toArgb(), Color.Transparent.toArgb() + ), + navigationBarStyle = SystemBarStyle.light( + Color.Transparent.toArgb(), Color.Transparent.toArgb() + ) + ) super.onCreate(savedInstanceState) + + WindowCompat.setDecorFitsSystemWindows(window, false) connectivityObserver = NetworkConnectivityObserver(applicationContext) setContent { diff --git a/app/src/main/java/com/aritradas/uncrack/presentation/masterKey/confirmMasterKey/ConfirmMasterKeyScreen.kt b/app/src/main/java/com/aritradas/uncrack/presentation/masterKey/confirmMasterKey/ConfirmMasterKeyScreen.kt index 904fbe2..d44f4fb 100644 --- a/app/src/main/java/com/aritradas/uncrack/presentation/masterKey/confirmMasterKey/ConfirmMasterKeyScreen.kt +++ b/app/src/main/java/com/aritradas/uncrack/presentation/masterKey/confirmMasterKey/ConfirmMasterKeyScreen.kt @@ -4,6 +4,7 @@ import android.app.Activity import android.content.Intent import android.os.Bundle import androidx.activity.ComponentActivity +import androidx.activity.SystemBarStyle import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.compose.foundation.background @@ -27,6 +28,7 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource @@ -35,6 +37,7 @@ import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.text.input.PasswordVisualTransformation import androidx.compose.ui.text.input.VisualTransformation import androidx.compose.ui.unit.dp +import androidx.core.view.WindowCompat import androidx.hilt.navigation.compose.hiltViewModel import com.aritradas.uncrack.MainActivity import com.aritradas.uncrack.R @@ -52,9 +55,17 @@ class ConfirmMasterKeyScreen : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { - enableEdgeToEdge() + enableEdgeToEdge( + statusBarStyle = SystemBarStyle.light( + Color.Transparent.toArgb(), Color.Transparent.toArgb() + ), + navigationBarStyle = SystemBarStyle.light( + Color.Transparent.toArgb(), Color.Transparent.toArgb() + ) + ) super.onCreate(savedInstanceState) + WindowCompat.setDecorFitsSystemWindows(window, false) setContent { UnCrackTheme { diff --git a/app/src/main/java/com/aritradas/uncrack/presentation/masterKey/createMasterKey/CreateMasterKeyScreen.kt b/app/src/main/java/com/aritradas/uncrack/presentation/masterKey/createMasterKey/CreateMasterKeyScreen.kt index a497be0..04fd876 100644 --- a/app/src/main/java/com/aritradas/uncrack/presentation/masterKey/createMasterKey/CreateMasterKeyScreen.kt +++ b/app/src/main/java/com/aritradas/uncrack/presentation/masterKey/createMasterKey/CreateMasterKeyScreen.kt @@ -4,6 +4,7 @@ import android.app.Activity import android.content.Intent import android.os.Bundle import androidx.activity.ComponentActivity +import androidx.activity.SystemBarStyle import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.compose.foundation.background @@ -14,6 +15,7 @@ import androidx.compose.runtime.* import androidx.compose.runtime.livedata.observeAsState import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource @@ -22,6 +24,7 @@ import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.text.input.PasswordVisualTransformation import androidx.compose.ui.text.input.VisualTransformation import androidx.compose.ui.unit.dp +import androidx.core.view.WindowCompat import androidx.hilt.navigation.compose.hiltViewModel import com.aritradas.uncrack.MainActivity import com.aritradas.uncrack.R @@ -39,9 +42,17 @@ class CreateMasterKeyScreen : ComponentActivity() { private lateinit var masterKeyViewModel: KeyViewModel override fun onCreate(savedInstanceState: Bundle?) { - enableEdgeToEdge() + enableEdgeToEdge( + statusBarStyle = SystemBarStyle.light( + Color.Transparent.toArgb(), Color.Transparent.toArgb() + ), + navigationBarStyle = SystemBarStyle.light( + Color.Transparent.toArgb(), Color.Transparent.toArgb() + ) + ) super.onCreate(savedInstanceState) + WindowCompat.setDecorFitsSystemWindows(window, false) setContent { UnCrackTheme { From 2db84716314f98f2dadbab4871422213aeaaf68d Mon Sep 17 00:00:00 2001 From: aritra Date: Sun, 10 Nov 2024 17:41:36 +0530 Subject: [PATCH 5/7] Added animations for icon size in Bottom Navigation Bar --- .../aritradas/uncrack/navigation/Navigation.kt | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/aritradas/uncrack/navigation/Navigation.kt b/app/src/main/java/com/aritradas/uncrack/navigation/Navigation.kt index e9ef5dc..e92c7f5 100644 --- a/app/src/main/java/com/aritradas/uncrack/navigation/Navigation.kt +++ b/app/src/main/java/com/aritradas/uncrack/navigation/Navigation.kt @@ -4,6 +4,7 @@ import android.annotation.SuppressLint import android.app.Activity import android.os.Build import androidx.annotation.RequiresApi +import androidx.compose.animation.core.animateFloatAsState import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.material3.Icon import androidx.compose.material3.NavigationBar @@ -13,7 +14,9 @@ import androidx.compose.material3.Scaffold import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.State +import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.scale import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.font.FontWeight @@ -279,13 +282,20 @@ fun ShowBottomNavigation( ) bottomNavItems.forEach { item -> + val isSelected = backStackEntry.value?.destination?.route == item.route + val animateIconSize by animateFloatAsState( + if (isSelected) 1f else 0.9f, + label = "iconScale" + ) + NavigationBarItem( alwaysShowLabel = true, icon = { Icon( + modifier = Modifier.scale(animateIconSize), imageVector = item.icon, contentDescription = item.name, - tint = if (backStackEntry.value?.destination?.route == item.route) + tint = if (isSelected) OnPrimaryContainerLight else OnSurfaceVariantLight @@ -295,17 +305,17 @@ fun ShowBottomNavigation( Text( text = item.name, fontFamily = DMSansFontFamily, - color = if (backStackEntry.value?.destination?.route == item.route) + color = if (isSelected) OnPrimaryContainerLight else OnSurfaceVariantLight, - fontWeight = if (backStackEntry.value?.destination?.route == item.route) + fontWeight = if (isSelected) FontWeight.SemiBold else FontWeight.Normal, ) }, - selected = backStackEntry.value?.destination?.route == item.route, + selected = isSelected, onClick = { val currentDestination = navController.currentBackStackEntry?.destination?.route From e19283d453cb396dd9f35df2757d412983b40bf6 Mon Sep 17 00:00:00 2001 From: aritra Date: Tue, 12 Nov 2024 23:03:40 +0530 Subject: [PATCH 6/7] Made some UI improvements in the Add Password Screen --- app/build.gradle.kts | 5 +- .../presentation/vault/AddPasswordScreen.kt | 75 +++++++++++++++++-- 2 files changed, 74 insertions(+), 6 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 2cd2967..0d4b6be 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -53,6 +53,7 @@ android { dependencies { + implementation("androidx.compose.animation:animation-graphics-android:1.7.5") val roomVersion = "2.6.1" val viewModelVersion = "2.5.1" val navVersion = "2.7.2" @@ -65,7 +66,8 @@ dependencies { implementation("androidx.compose.foundation:foundation") implementation("androidx.compose.foundation:foundation-layout") implementation("androidx.compose.material:material") - implementation("androidx.compose.material3:material3:1.3.0") + implementation("androidx.compose.material3:material3:1.3.1") + implementation("androidx.compose.material:material-icons-extended:1.7.5") implementation("androidx.compose.runtime:runtime-livedata") implementation("androidx.compose.ui:ui-tooling") implementation("androidx.compose.ui:ui-graphics") @@ -74,6 +76,7 @@ dependencies { implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.7.0") implementation("androidx.activity:activity-compose:1.9.0-alpha03") implementation("androidx.navigation:navigation-compose:2.8.0") + implementation("androidx.compose.animation:animation:1.7.5") // Compose Test diff --git a/app/src/main/java/com/aritradas/uncrack/presentation/vault/AddPasswordScreen.kt b/app/src/main/java/com/aritradas/uncrack/presentation/vault/AddPasswordScreen.kt index 51693b3..2a4d317 100644 --- a/app/src/main/java/com/aritradas/uncrack/presentation/vault/AddPasswordScreen.kt +++ b/app/src/main/java/com/aritradas/uncrack/presentation/vault/AddPasswordScreen.kt @@ -2,6 +2,7 @@ package com.aritradas.uncrack.presentation.vault import android.os.Build import androidx.annotation.RequiresApi +import androidx.compose.animation.graphics.ExperimentalAnimationGraphicsApi import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column @@ -13,6 +14,8 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.text.KeyboardOptions +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Clear import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.IconButton @@ -52,7 +55,7 @@ import java.time.LocalDateTime import java.time.format.DateTimeFormatter @RequiresApi(Build.VERSION_CODES.O) -@OptIn(ExperimentalMaterial3Api::class) +@OptIn(ExperimentalMaterial3Api::class, ExperimentalAnimationGraphicsApi::class) @Composable fun AddPasswordScreen( navController: NavHostController, @@ -114,11 +117,26 @@ fun AddPasswordScreen( .fillMaxWidth(), maxLines = 1, headerText = stringResource(id = R.string.email), - keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Email, imeAction = ImeAction.Next), + hintText = "user@example.com", + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Email, + imeAction = ImeAction.Next + ), value = email, onValueChange = { addEditViewModel.setEmail(it) }, + trailingIcon = { + if (email.isNotEmpty()) { + IconButton( + onClick = { + addEditViewModel.setEmail("") + } + ) { + Icon(Icons.Default.Clear, contentDescription = null) + } + } + } ) Spacer(modifier = Modifier.height(21.dp)) @@ -128,10 +146,25 @@ fun AddPasswordScreen( .fillMaxWidth(), maxLines = 1, headerText = stringResource(id = R.string.username), - keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Text, imeAction = ImeAction.Next), + hintText = "user.example", + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Text, + imeAction = ImeAction.Next + ), value = username, onValueChange = { addEditViewModel.setUserName(it) + }, + trailingIcon = { + if (username.isNotEmpty()) { + IconButton( + onClick = { + addEditViewModel.setUserName("") + } + ) { + Icon(Icons.Default.Clear, contentDescription = null) + } + } } ) @@ -142,7 +175,11 @@ fun AddPasswordScreen( .fillMaxWidth(), maxLines = 1, headerText = stringResource(id = R.string.password), - keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Password, imeAction = ImeAction.Done), + hintText = "Hit dice to generate password", + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Password, + imeAction = ImeAction.Done + ), value = password, onValueChange = { addEditViewModel.setPassword(it) @@ -156,6 +193,19 @@ fun AddPasswordScreen( Row( horizontalArrangement = Arrangement.SpaceBetween ) { + if (password.isNotEmpty()) { + IconButton( + onClick = { + addEditViewModel.setPassword("") + } + ) { + Icon( + Icons.Default.Clear, + contentDescription = null, + ) + } + } + IconButton(onClick = { passwordVisibility = passwordVisibility.not() }) { Icon( modifier = Modifier.size(24.dp), @@ -167,6 +217,7 @@ fun AddPasswordScreen( IconButton(onClick = { val generatedPassword = generateRandomPassword(12) addEditViewModel.setPassword(generatedPassword) + passwordVisibility = true }) { Icon( painter = painterResource(id = R.drawable.dice), @@ -183,10 +234,24 @@ fun AddPasswordScreen( modifier = Modifier .fillMaxWidth(), headerText = stringResource(id = R.string.note), - keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Email, imeAction = ImeAction.Done), + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Text, + imeAction = ImeAction.Done + ), value = note, onValueChange = { addEditViewModel.setNote(it) + }, + trailingIcon = { + if (note.isNotEmpty()) { + IconButton( + onClick = { + addEditViewModel.setNote("") + } + ) { + Icon(Icons.Default.Clear, contentDescription = null) + } + } } ) From af9184a03dcba057febb65c902a7baf8e7285b9c Mon Sep 17 00:00:00 2001 From: aritra Date: Wed, 13 Nov 2024 23:48:26 +0530 Subject: [PATCH 7/7] Made some UI improvements --- .../uncrack/presentation/vault/AddPasswordScreen.kt | 6 +++--- .../uncrack/presentation/vault/EditPasswordScreen.kt | 9 ++++++--- .../uncrack/presentation/vault/ViewPasswordScreen.kt | 7 ++++--- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/aritradas/uncrack/presentation/vault/AddPasswordScreen.kt b/app/src/main/java/com/aritradas/uncrack/presentation/vault/AddPasswordScreen.kt index 2a4d317..c2f7aa7 100644 --- a/app/src/main/java/com/aritradas/uncrack/presentation/vault/AddPasswordScreen.kt +++ b/app/src/main/java/com/aritradas/uncrack/presentation/vault/AddPasswordScreen.kt @@ -49,7 +49,7 @@ import com.aritradas.uncrack.domain.model.Account import com.aritradas.uncrack.navigation.Screen import com.aritradas.uncrack.presentation.vault.viewmodel.AddEditViewModel import com.aritradas.uncrack.ui.theme.BackgroundLight -import com.aritradas.uncrack.ui.theme.normal20 +import com.aritradas.uncrack.ui.theme.medium22 import com.aritradas.uncrack.util.UtilsKt.generateRandomPassword import java.time.LocalDateTime import java.time.format.DateTimeFormatter @@ -98,7 +98,7 @@ fun AddPasswordScreen( horizontalAlignment = Alignment.CenterHorizontally ) { Image( - modifier = Modifier.size(80.dp), + modifier = Modifier.size(100.dp), painter = rememberAsyncImagePainter(model = accountIcon), contentDescription = null ) @@ -107,7 +107,7 @@ fun AddPasswordScreen( Text( text = accountName, - style = normal20.copy(Color.Black) + style = medium22.copy(Color.Black) ) Spacer(modifier = Modifier.height(20.dp)) diff --git a/app/src/main/java/com/aritradas/uncrack/presentation/vault/EditPasswordScreen.kt b/app/src/main/java/com/aritradas/uncrack/presentation/vault/EditPasswordScreen.kt index e245b5c..d890faa 100644 --- a/app/src/main/java/com/aritradas/uncrack/presentation/vault/EditPasswordScreen.kt +++ b/app/src/main/java/com/aritradas/uncrack/presentation/vault/EditPasswordScreen.kt @@ -45,7 +45,7 @@ import com.aritradas.uncrack.domain.model.Account import com.aritradas.uncrack.navigation.Screen import com.aritradas.uncrack.presentation.vault.viewmodel.ViewPasswordViewModel import com.aritradas.uncrack.ui.theme.SurfaceVariantLight -import com.aritradas.uncrack.ui.theme.normal20 +import com.aritradas.uncrack.ui.theme.medium22 import com.aritradas.uncrack.util.UtilsKt.generateRandomPassword import com.aritradas.uncrack.util.UtilsKt.getAccountImage import java.time.LocalDateTime @@ -98,7 +98,7 @@ fun EditPasswordScreen( ) { Image( - modifier = Modifier.size(80.dp), + modifier = Modifier.size(100.dp), painter = getAccountImage(accountName), contentDescription = null ) @@ -107,7 +107,7 @@ fun EditPasswordScreen( Text( text = accountName, - style = normal20.copy(Color.Black) + style = medium22.copy(Color.Black) ) Spacer(modifier = Modifier.height(20.dp)) @@ -116,6 +116,7 @@ fun EditPasswordScreen( modifier = Modifier .fillMaxWidth(), headerText = stringResource(id = R.string.email), + hintText = "user@example.com", maxLines = 1, keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Email, imeAction = ImeAction.Next), value = accountEmail, @@ -130,6 +131,7 @@ fun EditPasswordScreen( modifier = Modifier .fillMaxWidth(), headerText = stringResource(id = R.string.username), + hintText = "user.example", maxLines = 1, keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Text, imeAction = ImeAction.Next), value = accountUserName, @@ -144,6 +146,7 @@ fun EditPasswordScreen( modifier = Modifier .fillMaxWidth(), headerText = stringResource(id = R.string.password), + hintText = "Hit dice to generate password", maxLines = 1, keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Password, imeAction = ImeAction.Done), value = accountPassword, diff --git a/app/src/main/java/com/aritradas/uncrack/presentation/vault/ViewPasswordScreen.kt b/app/src/main/java/com/aritradas/uncrack/presentation/vault/ViewPasswordScreen.kt index 647c981..b68f9b6 100644 --- a/app/src/main/java/com/aritradas/uncrack/presentation/vault/ViewPasswordScreen.kt +++ b/app/src/main/java/com/aritradas/uncrack/presentation/vault/ViewPasswordScreen.kt @@ -57,9 +57,9 @@ import com.aritradas.uncrack.ui.theme.OnSurfaceVariantLight import com.aritradas.uncrack.ui.theme.SurfaceTintLight import com.aritradas.uncrack.ui.theme.SurfaceVariantLight import com.aritradas.uncrack.ui.theme.medium14 +import com.aritradas.uncrack.ui.theme.medium22 import com.aritradas.uncrack.ui.theme.normal12 import com.aritradas.uncrack.ui.theme.normal16 -import com.aritradas.uncrack.ui.theme.normal20 import com.aritradas.uncrack.ui.theme.oldPassword import com.aritradas.uncrack.ui.theme.strongPassword import com.aritradas.uncrack.ui.theme.weakPassword @@ -189,7 +189,7 @@ fun ViewPasswordScreen( ) { Image( - modifier = Modifier.size(80.dp), + modifier = Modifier.size(100.dp), painter = getAccountImage(accountCompany), contentDescription = null ) @@ -198,7 +198,7 @@ fun ViewPasswordScreen( Text( text = accountCompany, - style = normal20.copy(Color.Black) + style = medium22.copy(Color.Black) ) Spacer(modifier = Modifier.height(30.dp)) @@ -206,6 +206,7 @@ fun ViewPasswordScreen( Row( modifier = Modifier .fillMaxWidth() + .padding(horizontal = 16.dp) .clip(RoundedCornerShape(10.dp)) .shadow( elevation = 10.dp,