summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/CredentialManager/wear/src/com/android/credentialmanager/CredentialSelectorActivity.kt2
-rw-r--r--packages/CredentialManager/wear/src/com/android/credentialmanager/ui/components/CredentialsScreenChip.kt36
-rw-r--r--packages/CredentialManager/wear/src/com/android/credentialmanager/ui/components/Texts.kt7
-rw-r--r--packages/CredentialManager/wear/src/com/android/credentialmanager/ui/mappers/CredentialSelectorUiStateGetMapper.kt3
-rw-r--r--packages/CredentialManager/wear/src/com/android/credentialmanager/ui/screens/multiple/MultiCredentialsFlattenScreen.kt5
-rw-r--r--packages/CredentialManager/wear/src/com/android/credentialmanager/ui/screens/multiple/MultiCredentialsFoldScreen.kt35
6 files changed, 48 insertions, 40 deletions
diff --git a/packages/CredentialManager/wear/src/com/android/credentialmanager/CredentialSelectorActivity.kt b/packages/CredentialManager/wear/src/com/android/credentialmanager/CredentialSelectorActivity.kt
index 5728c8cb9263..35addb341c72 100644
--- a/packages/CredentialManager/wear/src/com/android/credentialmanager/CredentialSelectorActivity.kt
+++ b/packages/CredentialManager/wear/src/com/android/credentialmanager/CredentialSelectorActivity.kt
@@ -24,7 +24,6 @@ import androidx.activity.compose.setContent
import androidx.activity.viewModels
import com.android.credentialmanager.ui.theme.WearCredentialSelectorTheme
import com.android.credentialmanager.ui.WearApp
-import com.google.android.horologist.annotations.ExperimentalHorologistApi
import dagger.hilt.android.AndroidEntryPoint
@AndroidEntryPoint(ComponentActivity::class)
@@ -32,7 +31,6 @@ class CredentialSelectorActivity : Hilt_CredentialSelectorActivity() {
private val viewModel: CredentialSelectorViewModel by viewModels()
- @OptIn(ExperimentalHorologistApi::class)
override fun onCreate(savedInstanceState: Bundle?) {
Log.d(TAG, "onCreate, intent: $intent")
super.onCreate(savedInstanceState)
diff --git a/packages/CredentialManager/wear/src/com/android/credentialmanager/ui/components/CredentialsScreenChip.kt b/packages/CredentialManager/wear/src/com/android/credentialmanager/ui/components/CredentialsScreenChip.kt
index c641d7f9f48f..25bc38133e38 100644
--- a/packages/CredentialManager/wear/src/com/android/credentialmanager/ui/components/CredentialsScreenChip.kt
+++ b/packages/CredentialManager/wear/src/com/android/credentialmanager/ui/components/CredentialsScreenChip.kt
@@ -15,6 +15,7 @@
*/
package com.android.credentialmanager.ui.components
+import androidx.wear.compose.material.MaterialTheme as WearMaterialTheme
import androidx.compose.foundation.layout.Row
import androidx.compose.material3.Icon
import android.graphics.drawable.Drawable
@@ -22,7 +23,11 @@ import androidx.compose.foundation.layout.BoxScope
import androidx.compose.foundation.layout.RowScope
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.material.icons.Icons
+import androidx.compose.material.icons.outlined.Lock
+import androidx.compose.material.icons.outlined.LockOpen
import androidx.compose.runtime.Composable
+import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
@@ -46,7 +51,7 @@ fun CredentialsScreenChip(
onClick: () -> Unit,
secondaryLabel: String? = null,
icon: Drawable? = null,
- isAuthenticationEntryLocked: Boolean = false,
+ isAuthenticationEntryLocked: Boolean? = null,
textAlign: TextAlign = TextAlign.Center,
modifier: Modifier = Modifier,
colors: ChipColors = ChipDefaults.secondaryChipColors()
@@ -77,7 +82,7 @@ fun CredentialsScreenChip(
text: @Composable () -> Unit,
secondaryLabel: String? = null,
icon: Drawable? = null,
- isAuthenticationEntryLocked: Boolean = false,
+ isAuthenticationEntryLocked: Boolean? = null,
modifier: Modifier = Modifier,
colors: ChipColors = ChipDefaults.primaryChipColors(),
) {
@@ -94,16 +99,23 @@ fun CredentialsScreenChip(
text = secondaryLabel,
)
- if (isAuthenticationEntryLocked)
- // TODO(b/324465527) change this to lock icon and correct size once figma mocks are
- // updated
- Icon(
- bitmap = checkNotNull(icon?.toBitmap()?.asImageBitmap()),
- // Decorative purpose only.
- contentDescription = null,
- modifier = Modifier.size(10.dp),
- tint = Color.Unspecified
- )
+ if (isAuthenticationEntryLocked != null) {
+ if (isAuthenticationEntryLocked) {
+ Icon(
+ Icons.Outlined.Lock,
+ contentDescription = null,
+ modifier = Modifier.size(12.dp).align(Alignment.CenterVertically),
+ tint = WearMaterialTheme.colors.onSurfaceVariant
+ )
+ } else {
+ Icon(
+ Icons.Outlined.LockOpen,
+ contentDescription = null,
+ modifier = Modifier.size(12.dp).align(Alignment.CenterVertically),
+ tint = WearMaterialTheme.colors.onSurfaceVariant
+ )
+ }
+ }
}
}
}
diff --git a/packages/CredentialManager/wear/src/com/android/credentialmanager/ui/components/Texts.kt b/packages/CredentialManager/wear/src/com/android/credentialmanager/ui/components/Texts.kt
index 22f6bf0f37ee..282fea0d7218 100644
--- a/packages/CredentialManager/wear/src/com/android/credentialmanager/ui/components/Texts.kt
+++ b/packages/CredentialManager/wear/src/com/android/credentialmanager/ui/components/Texts.kt
@@ -22,7 +22,6 @@ import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
-import androidx.compose.ui.text.TextLayoutResult
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
@@ -57,7 +56,6 @@ fun WearUsernameText(
text: String,
textAlign: TextAlign = TextAlign.Center,
modifier: Modifier = Modifier,
- onTextLayout: (TextLayoutResult) -> Unit = {},
) {
Text(
modifier = modifier.padding(start = 8.dp, end = 8.dp).wrapContentSize(),
@@ -67,7 +65,6 @@ fun WearUsernameText(
overflow = TextOverflow.Ellipsis,
textAlign = textAlign,
maxLines = 2,
- onTextLayout = onTextLayout,
)
}
@@ -79,7 +76,6 @@ fun WearButtonText(
maxLines: Int = 1,
modifier: Modifier = Modifier,
color: Color = WearMaterialTheme.colors.onSurface,
- onTextLayout: (TextLayoutResult) -> Unit = {},
) {
Text(
modifier = modifier.wrapContentSize(),
@@ -89,7 +85,6 @@ fun WearButtonText(
overflow = TextOverflow.Ellipsis,
textAlign = textAlign,
maxLines = maxLines,
- onTextLayout = onTextLayout,
)
}
@@ -97,7 +92,6 @@ fun WearButtonText(
fun WearSecondaryLabel(
text: String,
modifier: Modifier = Modifier,
- onTextLayout: (TextLayoutResult) -> Unit = {},
) {
Text(
modifier = modifier.wrapContentSize(),
@@ -107,6 +101,5 @@ fun WearSecondaryLabel(
overflow = TextOverflow.Ellipsis,
textAlign = TextAlign.Start,
maxLines = 1,
- onTextLayout = onTextLayout,
)
}
diff --git a/packages/CredentialManager/wear/src/com/android/credentialmanager/ui/mappers/CredentialSelectorUiStateGetMapper.kt b/packages/CredentialManager/wear/src/com/android/credentialmanager/ui/mappers/CredentialSelectorUiStateGetMapper.kt
index 473094cc1308..265627520cf7 100644
--- a/packages/CredentialManager/wear/src/com/android/credentialmanager/ui/mappers/CredentialSelectorUiStateGetMapper.kt
+++ b/packages/CredentialManager/wear/src/com/android/credentialmanager/ui/mappers/CredentialSelectorUiStateGetMapper.kt
@@ -43,7 +43,8 @@ fun Request.Get.toGet(isPrimary: Boolean): CredentialSelectorUiState.Get {
var icon: Drawable? = null
// provide icon if all entries have the same provider
- if (sortedEntries.all {it.providerId == sortedEntries[0].providerId}) {
+ if (sortedEntries.isNotEmpty() &&
+ sortedEntries.all {it.providerId == sortedEntries[0].providerId}) {
icon = providerInfos[0].icon
}
diff --git a/packages/CredentialManager/wear/src/com/android/credentialmanager/ui/screens/multiple/MultiCredentialsFlattenScreen.kt b/packages/CredentialManager/wear/src/com/android/credentialmanager/ui/screens/multiple/MultiCredentialsFlattenScreen.kt
index fb81e736171b..36e97929e883 100644
--- a/packages/CredentialManager/wear/src/com/android/credentialmanager/ui/screens/multiple/MultiCredentialsFlattenScreen.kt
+++ b/packages/CredentialManager/wear/src/com/android/credentialmanager/ui/screens/multiple/MultiCredentialsFlattenScreen.kt
@@ -75,7 +75,10 @@ fun MultiCredentialsFlattenScreen(
CredentialsScreenChip(
label = credential.userName,
onClick = { selectEntry(credential, false) },
- secondaryLabel = credential.credentialTypeDisplayName,
+ secondaryLabel =
+ credential.credentialTypeDisplayName.ifEmpty {
+ credential.providerDisplayName
+ },
icon = credential.icon,
textAlign = TextAlign.Start
)
diff --git a/packages/CredentialManager/wear/src/com/android/credentialmanager/ui/screens/multiple/MultiCredentialsFoldScreen.kt b/packages/CredentialManager/wear/src/com/android/credentialmanager/ui/screens/multiple/MultiCredentialsFoldScreen.kt
index 7addc74aecd0..ce2bad0f71ad 100644
--- a/packages/CredentialManager/wear/src/com/android/credentialmanager/ui/screens/multiple/MultiCredentialsFoldScreen.kt
+++ b/packages/CredentialManager/wear/src/com/android/credentialmanager/ui/screens/multiple/MultiCredentialsFoldScreen.kt
@@ -61,13 +61,12 @@ fun MultiCredentialsFoldScreen(
val credentials = credentialSelectorUiState.sortedEntries
item {
var title = stringResource(R.string.choose_sign_in_title)
-
- if (credentials.isEmpty()) {
- title = stringResource(R.string.choose_sign_in_title)
- } else if (credentials.all{ it.credentialType == CredentialType.PASSKEY }) {
- title = stringResource(R.string.choose_passkey_title)
- } else if (credentials.all { it.credentialType == CredentialType.PASSWORD }) {
- title = stringResource(R.string.choose_password_title)
+ if (credentials.isNotEmpty()) {
+ if (credentials.all { it.credentialType == CredentialType.PASSKEY }) {
+ title = stringResource(R.string.choose_passkey_title)
+ } else if (credentials.all { it.credentialType == CredentialType.PASSWORD }) {
+ title = stringResource(R.string.choose_password_title)
+ }
}
SignInHeader(
@@ -77,16 +76,19 @@ fun MultiCredentialsFoldScreen(
}
credentials.forEach { credential: CredentialEntryInfo ->
- item {
- CredentialsScreenChip(
- label = credential.userName,
- onClick = { selectEntry(credential, false) },
- secondaryLabel = credential.credentialTypeDisplayName,
- icon = credential.icon,
- )
- CredentialsScreenChipSpacer()
+ item {
+ CredentialsScreenChip(
+ label = credential.userName,
+ onClick = { selectEntry(credential, false) },
+ secondaryLabel =
+ credential.credentialTypeDisplayName.ifEmpty {
+ credential.providerDisplayName
+ },
+ icon = credential.icon,
+ )
+ CredentialsScreenChipSpacer()
+ }
}
- }
credentialSelectorUiState.authenticationEntryList.forEach { authenticationEntryInfo ->
item {
@@ -96,7 +98,6 @@ fun MultiCredentialsFoldScreen(
CredentialsScreenChipSpacer()
}
}
-
item {
Spacer(modifier = Modifier.size(8.dp))
}