diff --git a/app/src/androidTest/java/com/tangem/wallet/ExampleInstrumentedTest.kt b/app/src/androidTest/java/com/tangem/wallet/ExampleInstrumentedTest.kt deleted file mode 100644 index 9a7a795e39..0000000000 --- a/app/src/androidTest/java/com/tangem/wallet/ExampleInstrumentedTest.kt +++ /dev/null @@ -1,24 +0,0 @@ -package com.tangem.wallet - -import android.support.test.InstrumentationRegistry -import android.support.test.runner.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.getTargetContext() - assertEquals("com.tangem.wallet", appContext.packageName) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/details/ui/cardsettings/CardSettingsScreen.kt b/app/src/main/java/com/tangem/tap/features/details/ui/cardsettings/CardSettingsScreen.kt index 92eec4c59b..2de4f118fb 100644 --- a/app/src/main/java/com/tangem/tap/features/details/ui/cardsettings/CardSettingsScreen.kt +++ b/app/src/main/java/com/tangem/tap/features/details/ui/cardsettings/CardSettingsScreen.kt @@ -2,7 +2,6 @@ package com.tangem.tap.features.details.ui.cardsettings import androidx.compose.foundation.Image import androidx.compose.foundation.clickable -import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer @@ -10,6 +9,10 @@ import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll import androidx.compose.material.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier @@ -51,14 +54,12 @@ fun CardSettingsReadCard( Column( modifier = modifier .fillMaxSize(), - verticalArrangement = Arrangement.SpaceBetween, ) { - Box( modifier = modifier - .fillMaxWidth(), - - ) { + .fillMaxWidth() + .padding(bottom = 40.dp), + ) { Image( modifier = modifier .fillMaxWidth() @@ -77,16 +78,13 @@ fun CardSettingsReadCard( contentDescription = "", contentScale = ContentScale.FillWidth, ) - } - - + Spacer(modifier = Modifier.weight(1f)) Column( modifier = modifier .fillMaxWidth() .padding(start = 16.dp, end = 16.dp, bottom = 32.dp), ) { - Text( text = stringResource(id = R.string.scan_card_settings_title), color = colorResource(id = R.color.text_primary_1), @@ -97,6 +95,9 @@ fun CardSettingsReadCard( text = stringResource(id = R.string.scan_card_settings_message), color = colorResource(id = R.color.text_secondary), style = TangemTypography.body1, + modifier = modifier + .verticalScroll(rememberScrollState()) + .weight(weight = 1f, fill = false), ) Spacer(modifier = modifier.size(29.dp)) DetailsMainButton( @@ -113,11 +114,13 @@ fun CardSettings( state: CardSettingsScreenState, modifier: Modifier = Modifier, ) { - Column( + if (state.cardDetails == null) return + + LazyColumn( modifier = modifier .fillMaxWidth(), ) { - state.cardDetails?.map { + items(state.cardDetails) { val paddingBottom = when (it) { is CardInfo.CardId, is CardInfo.Issuer -> 12.dp is CardInfo.SignedHashes -> 14.dp @@ -156,9 +159,7 @@ fun CardSettings( style = TangemTypography.body2, ) } - } - } } diff --git a/app/src/main/java/com/tangem/tap/features/details/ui/resetcard/ResetCardScreen.kt b/app/src/main/java/com/tangem/tap/features/details/ui/resetcard/ResetCardScreen.kt index 2c07b092ad..eda5e31bcc 100644 --- a/app/src/main/java/com/tangem/tap/features/details/ui/resetcard/ResetCardScreen.kt +++ b/app/src/main/java/com/tangem/tap/features/details/ui/resetcard/ResetCardScreen.kt @@ -1,18 +1,18 @@ package com.tangem.tap.features.details.ui.resetcard import androidx.compose.foundation.Image -import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.defaultMinSize import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.offset import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll import androidx.compose.material.Icon import androidx.compose.material.IconToggleButton import androidx.compose.material.Text @@ -36,18 +36,11 @@ fun ResetCardScreen( onBackPressed: () -> Unit, modifier: Modifier = Modifier, ) { - Box(modifier = modifier.background(colorResource(id = R.color.background_primary))) { - Image( - painter = painterResource(id = R.drawable.ic_reset_background), - contentDescription = "", - modifier = modifier.offset(y = (-16).dp), - ) SettingsScreensScaffold( content = { ResetCardView(state = state, modifier = modifier) }, onBackClick = onBackPressed, backgroundColor = Color.Transparent, ) - } } @Composable @@ -57,81 +50,91 @@ fun ResetCardView( ) { Column( modifier = modifier - .fillMaxSize(), - verticalArrangement = Arrangement.Bottom, + .fillMaxSize() + .verticalScroll(rememberScrollState()), + verticalArrangement = Arrangement.SpaceBetween, ) { Box( modifier = modifier, ) { + Image( + painter = painterResource(id = R.drawable.ic_reset_background), + contentDescription = "", + modifier = modifier.offset(y = (-82).dp), + ) ScreenTitle(titleRes = R.string.reset_card_to_factory_navigation_title) } Spacer( + modifier = modifier.weight(1f), + ) + Column( modifier = modifier - .defaultMinSize(20.dp) - .weight(1f), - ) - Text( - text = stringResource(id = R.string.common_attention), - modifier = modifier.padding(start = 20.dp, end = 20.dp), - style = TangemTypography.headline3, - color = colorResource(id = R.color.text_primary_1), - ) - - Spacer(modifier = modifier.size(24.dp)) - - Text( - text = stringResource(id = R.string.reset_card_to_factory_message), - modifier = modifier.padding(start = 20.dp, end = 20.dp), - style = TangemTypography.body1, - color = colorResource(id = R.color.text_secondary), - ) - - Spacer(modifier = modifier.size(44.dp)) - Row( - modifier = modifier - .fillMaxWidth() - .padding(end = 20.dp), + .offset(y = (-32).dp), + verticalArrangement = Arrangement.Bottom, ) { - IconToggleButton( - checked = state.accepted, - onCheckedChange = state.onAcceptWarningToggleClick, - modifier = modifier.padding(start = 20.dp, end = 20.dp), - ) { - Icon( - painter = painterResource( - if (state.accepted) { - R.drawable.ic_accepted - } else { - R.drawable.ic_unticked - }, - ), - contentDescription = null, - tint = if (state.accepted) { - colorResource(id = R.color.icon_accent) - } else { - colorResource(id = R.color.icon_secondary) - }, - ) - } Text( - text = stringResource(id = R.string.reset_card_to_factory_warning_message), - style = TangemTypography.body2, + text = stringResource(id = R.string.common_attention), + modifier = modifier.padding(start = 20.dp, end = 20.dp), + style = TangemTypography.headline3, + color = colorResource(id = R.color.text_primary_1), + ) + + Spacer(modifier = modifier.size(24.dp)) + + Text( + text = stringResource(id = R.string.reset_card_to_factory_message), + modifier = modifier + .padding(start = 20.dp, end = 20.dp), + style = TangemTypography.body1, color = colorResource(id = R.color.text_secondary), ) - } - Spacer(modifier = modifier.size(32.dp)) - Box( - modifier = modifier - .padding(start = 16.dp, end = 16.dp, bottom = 32.dp), - ) { - DetailsMainButton( - title = stringResource(id = R.string.reset_card_to_factory_button_title), - onClick = state.onResetButtonClick, - enabled = state.resetButtonEnabled, - ) - } + Spacer(modifier = modifier.size(44.dp)) + Row( + modifier = modifier + .fillMaxWidth() + .padding(end = 20.dp), + ) { + IconToggleButton( + checked = state.accepted, + onCheckedChange = state.onAcceptWarningToggleClick, + modifier = modifier.padding(start = 20.dp, end = 20.dp), + ) { + Icon( + painter = painterResource( + if (state.accepted) { + R.drawable.ic_accepted + } else { + R.drawable.ic_unticked + }, + ), + contentDescription = null, + tint = if (state.accepted) { + colorResource(id = R.color.icon_accent) + } else { + colorResource(id = R.color.icon_secondary) + }, + ) + } + Text( + text = stringResource(id = R.string.reset_card_to_factory_warning_message), + style = TangemTypography.body2, + color = colorResource(id = R.color.text_secondary), + ) + } + Spacer(modifier = modifier.size(32.dp)) + Box( + modifier = modifier + .padding(start = 16.dp, end = 16.dp), + ) { + DetailsMainButton( + title = stringResource(id = R.string.reset_card_to_factory_button_title), + onClick = state.onResetButtonClick, + enabled = state.resetButtonEnabled, + ) + } + } } } diff --git a/app/src/main/java/com/tangem/tap/features/details/ui/securitymode/SecurityModeScreen.kt b/app/src/main/java/com/tangem/tap/features/details/ui/securitymode/SecurityModeScreen.kt index e18146767f..66f6adcab7 100644 --- a/app/src/main/java/com/tangem/tap/features/details/ui/securitymode/SecurityModeScreen.kt +++ b/app/src/main/java/com/tangem/tap/features/details/ui/securitymode/SecurityModeScreen.kt @@ -6,10 +6,11 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.offset import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size +import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.selection.selectable +import androidx.compose.foundation.verticalScroll import androidx.compose.material.RadioButton import androidx.compose.material.RadioButtonDefaults import androidx.compose.material.Text @@ -22,6 +23,7 @@ import androidx.compose.ui.unit.dp import com.tangem.tap.common.compose.TangemTypography import com.tangem.tap.features.details.redux.SecurityOption import com.tangem.tap.features.details.ui.common.DetailsMainButton +import com.tangem.tap.features.details.ui.common.ScreenTitle import com.tangem.tap.features.details.ui.common.SettingsScreensScaffold import com.tangem.wallet.R @@ -33,7 +35,7 @@ fun SecurityModeScreen( ) { SettingsScreensScaffold( content = { SecurityModeOptions(state = state, modifier = modifier) }, - titleRes = R.string.card_settings_security_mode, + // titleRes = R.string.card_settings_security_mode, onBackClick = onBackPressed, ) } @@ -47,10 +49,13 @@ fun SecurityModeOptions( Column( modifier = modifier .fillMaxSize() - .padding(bottom = 28.dp) - .offset(y = (-16).dp), + .verticalScroll(rememberScrollState()) + .padding(bottom = 28.dp), verticalArrangement = Arrangement.SpaceBetween, ) { + ScreenTitle(titleRes = R.string.card_settings_security_mode, modifier.padding(bottom = 36.dp)) + + state.availableOptions.map { SecurityOption(option = it, state = state, modifier = modifier) }