diff --git a/android/app/src/androidTest/kotlin/com/flagship/abox/manager/ui/login/LoginScreenTest.kt b/android/app/src/androidTest/kotlin/com/flagship/abox/manager/ui/login/LoginScreenTest.kt
index 451585b..7b6e87e 100644
--- a/android/app/src/androidTest/kotlin/com/flagship/abox/manager/ui/login/LoginScreenTest.kt
+++ b/android/app/src/androidTest/kotlin/com/flagship/abox/manager/ui/login/LoginScreenTest.kt
@@ -1,9 +1,11 @@
package com.flagship.abox.manager.ui.login
import androidx.activity.ComponentActivity
+import androidx.compose.ui.test.assertCountEquals
import androidx.compose.ui.test.assertIsEnabled
import androidx.compose.ui.test.assertIsNotEnabled
import androidx.compose.ui.test.junit4.createAndroidComposeRule
+import androidx.compose.ui.test.onAllNodesWithText
import androidx.compose.ui.test.onNodeWithContentDescription
import androidx.compose.ui.test.onNodeWithText
import androidx.compose.ui.test.performClick
@@ -29,7 +31,7 @@ class LoginScreenTest {
)
@Test
- fun backControlsSwitchProviderBeforeLogin() {
+ fun topBackControlSwitchesProviderBeforeLogin() {
var switches = 0
composeRule.setContent {
ABoxTheme {
@@ -49,8 +51,8 @@ class LoginScreenTest {
composeRule.onNodeWithContentDescription("back-to-providers")
.assertIsEnabled()
.performClick()
- composeRule.onNodeWithText("Back to providers").performClick()
- assertEquals(2, switches)
+ composeRule.onAllNodesWithText("Back to providers").assertCountEquals(0)
+ assertEquals(1, switches)
}
@Test
@@ -94,6 +96,6 @@ class LoginScreenTest {
}
composeRule.onNodeWithContentDescription("back-to-providers").assertIsNotEnabled()
- composeRule.onNodeWithText("Back to providers").assertIsNotEnabled()
+ composeRule.onAllNodesWithText("Back to providers").assertCountEquals(0)
}
}
diff --git a/android/app/src/main/kotlin/com/flagship/abox/manager/ui/ABoxManagerApp.kt b/android/app/src/main/kotlin/com/flagship/abox/manager/ui/ABoxManagerApp.kt
index 1de1c84..9a2dc11 100644
--- a/android/app/src/main/kotlin/com/flagship/abox/manager/ui/ABoxManagerApp.kt
+++ b/android/app/src/main/kotlin/com/flagship/abox/manager/ui/ABoxManagerApp.kt
@@ -60,7 +60,6 @@ fun ABoxManagerApp(
is AppSessionUiState.Authenticated -> MainAppShell(
userName = state.username.value,
providerName = state.profile.displayName,
- onSwitchProvider = sessionActionsViewModel::switchProvider,
onLogout = sessionActionsViewModel::logout,
actionInProgress = actionState.inProgress,
errorMessage = actionState.errorMessage,
diff --git a/android/app/src/main/kotlin/com/flagship/abox/manager/ui/authenticated/AuthenticatedScreen.kt b/android/app/src/main/kotlin/com/flagship/abox/manager/ui/authenticated/AuthenticatedScreen.kt
deleted file mode 100644
index 1df3284..0000000
--- a/android/app/src/main/kotlin/com/flagship/abox/manager/ui/authenticated/AuthenticatedScreen.kt
+++ /dev/null
@@ -1,79 +0,0 @@
-package com.flagship.abox.manager.ui.authenticated
-
-import androidx.compose.foundation.layout.Arrangement
-import androidx.compose.foundation.layout.Box
-import androidx.compose.foundation.layout.Column
-import androidx.compose.foundation.layout.fillMaxSize
-import androidx.compose.foundation.layout.fillMaxWidth
-import androidx.compose.foundation.layout.padding
-import androidx.compose.foundation.layout.widthIn
-import androidx.compose.foundation.rememberScrollState
-import androidx.compose.foundation.verticalScroll
-import androidx.compose.material3.ExperimentalMaterial3Api
-import androidx.compose.material3.MaterialTheme
-import androidx.compose.material3.Scaffold
-import androidx.compose.material3.Text
-import androidx.compose.material3.TopAppBar
-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.unit.dp
-import com.flagship.abox.manager.R
-import com.flagship.abox.manager.designsystem.ABoxButton
-import com.flagship.abox.manager.domain.ProviderProfile
-
-@OptIn(ExperimentalMaterial3Api::class)
-@Composable
-fun AuthenticatedPlaceholderScreen(
- profile: ProviderProfile,
- actionInProgress: Boolean,
- errorMessage: String?,
- onLogout: () -> Unit,
- onSwitchProvider: () -> Unit,
-) {
- Scaffold(
- topBar = {
- TopAppBar(
- title = { Text(stringResource(R.string.authenticated_title, profile.displayName)) },
- )
- },
- ) { contentPadding ->
- Box(
- modifier = Modifier
- .fillMaxSize()
- .padding(contentPadding),
- contentAlignment = Alignment.Center,
- ) {
- Column(
- modifier = Modifier
- .widthIn(max = 520.dp)
- .fillMaxWidth()
- .verticalScroll(rememberScrollState())
- .padding(24.dp),
- horizontalAlignment = Alignment.CenterHorizontally,
- verticalArrangement = Arrangement.spacedBy(14.dp),
- ) {
- Text(
- text = stringResource(R.string.authenticated_description),
- color = MaterialTheme.colorScheme.onSurfaceVariant,
- )
- errorMessage?.let { Text(it, color = MaterialTheme.colorScheme.error) }
- ABoxButton(
- onClick = onLogout,
- enabled = !actionInProgress,
- modifier = Modifier.fillMaxWidth(),
- ) {
- Text(stringResource(R.string.action_logout))
- }
- ABoxButton(
- onClick = onSwitchProvider,
- enabled = !actionInProgress,
- modifier = Modifier.fillMaxWidth(),
- ) {
- Text(stringResource(R.string.action_switch_provider))
- }
- }
- }
- }
-}
diff --git a/android/app/src/main/kotlin/com/flagship/abox/manager/ui/login/LoginScreen.kt b/android/app/src/main/kotlin/com/flagship/abox/manager/ui/login/LoginScreen.kt
index 51b6ddb..4ef1e85 100644
--- a/android/app/src/main/kotlin/com/flagship/abox/manager/ui/login/LoginScreen.kt
+++ b/android/app/src/main/kotlin/com/flagship/abox/manager/ui/login/LoginScreen.kt
@@ -184,13 +184,6 @@ fun LoginScreen(
}
else Text(stringResource(R.string.action_login))
}
- ABoxButton(
- onClick = onSwitchProvider,
- enabled = navigationEnabled,
- modifier = Modifier.fillMaxWidth(),
- ) {
- Text(stringResource(R.string.login_back_to_providers))
- }
}
}
}
diff --git a/android/app/src/main/kotlin/com/flagship/abox/manager/ui/shell/AccountProviderBottomSheet.kt b/android/app/src/main/kotlin/com/flagship/abox/manager/ui/shell/AccountProviderBottomSheet.kt
index bb650de..2a18070 100644
--- a/android/app/src/main/kotlin/com/flagship/abox/manager/ui/shell/AccountProviderBottomSheet.kt
+++ b/android/app/src/main/kotlin/com/flagship/abox/manager/ui/shell/AccountProviderBottomSheet.kt
@@ -15,7 +15,6 @@ import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.automirrored.filled.ExitToApp
import androidx.compose.material.icons.filled.CloudDone
-import androidx.compose.material.icons.filled.SwapHoriz
import androidx.compose.material3.ButtonDefaults
import androidx.compose.material3.Card
import androidx.compose.material3.CardDefaults
@@ -50,7 +49,6 @@ fun AccountProviderBottomSheet(
userName: String,
providerName: String,
onDismissRequest: () -> Unit,
- onSwitchProvider: () -> Unit,
onLogout: () -> Unit,
actionInProgress: Boolean,
errorMessage: String?,
@@ -146,22 +144,7 @@ fun AccountProviderBottomSheet(
Spacer(modifier = Modifier.height(8.dp))
- // Action Buttons
- OutlinedButton(
- onClick = onSwitchProvider,
- enabled = !actionInProgress,
- modifier = Modifier.fillMaxWidth(),
- shape = RoundedCornerShape(12.dp),
- ) {
- Icon(
- imageVector = Icons.Default.SwapHoriz,
- contentDescription = null,
- modifier = Modifier.size(20.dp),
- )
- Spacer(modifier = Modifier.size(8.dp))
- Text(stringResource(R.string.account_sheet_switch_provider))
- }
-
+ // Action button
ABoxButton(
onClick = onLogout,
enabled = !actionInProgress,
diff --git a/android/app/src/main/kotlin/com/flagship/abox/manager/ui/shell/MainAppShell.kt b/android/app/src/main/kotlin/com/flagship/abox/manager/ui/shell/MainAppShell.kt
index 1f9ff41..84cc457 100644
--- a/android/app/src/main/kotlin/com/flagship/abox/manager/ui/shell/MainAppShell.kt
+++ b/android/app/src/main/kotlin/com/flagship/abox/manager/ui/shell/MainAppShell.kt
@@ -42,7 +42,6 @@ import com.flagship.abox.manager.designsystem.ABoxTopPillBar
fun MainAppShell(
userName: String,
providerName: String,
- onSwitchProvider: () -> Unit,
onLogout: () -> Unit,
modifier: Modifier = Modifier,
initialTab: MainTab = MainTab.DEVICES,
@@ -125,7 +124,6 @@ fun MainAppShell(
userName = userName,
providerName = providerName,
onDismissRequest = { showAccountSheet = false },
- onSwitchProvider = onSwitchProvider,
onLogout = onLogout,
actionInProgress = actionInProgress,
errorMessage = errorMessage,
diff --git a/android/app/src/main/res/values-zh-rCN/strings.xml b/android/app/src/main/res/values-zh-rCN/strings.xml
index 9fa1d6b..696dc16 100644
--- a/android/app/src/main/res/values-zh-rCN/strings.xml
+++ b/android/app/src/main/res/values-zh-rCN/strings.xml
@@ -8,7 +8,6 @@
无需网络,通过本地模拟设备体验应用。
登录 %1$s
当前提供方:%1$s
- 返回提供方选择
用户名
密码
记住用户名
@@ -35,7 +34,6 @@
账户与提供方
当前登录为
当前提供方
- 切换提供方
退出登录
关闭
设备列表
diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml
index 2b263fd..c8818bb 100644
--- a/android/app/src/main/res/values/strings.xml
+++ b/android/app/src/main/res/values/strings.xml
@@ -8,7 +8,6 @@
Explore the app with simulated local devices and no network connection.
Sign in to %1$s
Selected provider: %1$s
- Back to providers
Username
Password
Remember username
@@ -35,7 +34,6 @@
Account & Provider
Signed in as
Active Provider
- Switch Provider
Sign Out
Close
Device List