Skip to content

Commit 817bc59

Browse files
committed
Fix findings
1 parent f42998c commit 817bc59

File tree

4 files changed

+32
-4
lines changed

4 files changed

+32
-4
lines changed

libs/horizon/src/main/java/com/instructure/horizon/features/account/AccountScreen.kt

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ import androidx.compose.ui.platform.LocalUriHandler
4242
import androidx.compose.ui.res.painterResource
4343
import androidx.compose.ui.unit.dp
4444
import androidx.navigation.NavController
45+
import com.instructure.horizon.R
4546
import com.instructure.horizon.horizonui.foundation.HorizonColors
4647
import com.instructure.horizon.horizonui.foundation.HorizonCornerRadius
4748
import com.instructure.horizon.horizonui.foundation.HorizonSpace
@@ -81,7 +82,12 @@ fun AccountScreen(
8182
}
8283

8384
@Composable
84-
private fun AccountContentScreen(state: AccountUiState, navController: NavController, onLogout: () -> Unit, switchExperience: () -> Unit) {
85+
private fun AccountContentScreen(
86+
state: AccountUiState,
87+
navController: NavController,
88+
onLogout: () -> Unit,
89+
switchExperience: () -> Unit
90+
) {
8591
LazyColumn(
8692
contentPadding = PaddingValues(24.dp)
8793
) {
@@ -136,6 +142,7 @@ private fun AccountContentScreen(state: AccountUiState, navController: NavContro
136142
navController,
137143
onLogout,
138144
switchExperience,
145+
state.onShowSnackbar,
139146
clipModifier
140147
)
141148

@@ -156,8 +163,16 @@ private fun AccountContentScreen(state: AccountUiState, navController: NavContro
156163
}
157164

158165
@Composable
159-
private fun AccountItem(item: AccountItemState, navController: NavController, onLogout: () -> Unit, switchExperience: () -> Unit, modifier: Modifier = Modifier) {
166+
private fun AccountItem(
167+
item: AccountItemState,
168+
navController: NavController,
169+
onLogout: () -> Unit,
170+
switchExperience: () -> Unit,
171+
onShowSnackbar: (String) -> Unit,
172+
modifier: Modifier = Modifier
173+
) {
160174
val uriHandler = LocalUriHandler.current
175+
val context = LocalContext.current
161176
Row(
162177
verticalAlignment = Alignment.CenterVertically,
163178
modifier = modifier
@@ -168,7 +183,11 @@ private fun AccountItem(item: AccountItemState, navController: NavController, on
168183
is AccountItemType.Open -> navController.navigate(item.type.route.route)
169184

170185
is AccountItemType.OpenExternal -> {
171-
uriHandler.openUri(item.type.url)
186+
try {
187+
uriHandler.openUri(item.type.url)
188+
} catch (_: Exception) {
189+
onShowSnackbar(context.getString(R.string.accountFailedtoOpenLinkMessage))
190+
}
172191
}
173192

174193
is AccountItemType.LogOut -> {

libs/horizon/src/main/java/com/instructure/horizon/features/account/AccountUiState.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ data class AccountUiState(
2828
val updateUserName: (String) -> Unit = {},
2929
val performLogout: () -> Unit = {},
3030
val switchExperience: () -> Unit = {},
31+
val onShowSnackbar: (String) -> Unit = {},
3132
val restartApp: Boolean = false,
3233
)
3334

libs/horizon/src/main/java/com/instructure/horizon/features/account/AccountViewModel.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,8 @@ class AccountViewModel @Inject constructor(
5353
),
5454
updateUserName = ::updateUserName,
5555
performLogout = ::performLogout,
56-
switchExperience = ::switchExperience
56+
switchExperience = ::switchExperience,
57+
onShowSnackbar = ::onShowSnackbar
5758
)
5859
)
5960
val uiState = _uiState.asStateFlow()
@@ -172,6 +173,12 @@ class AccountViewModel @Inject constructor(
172173
}
173174
}
174175

176+
private fun onShowSnackbar(message: String) {
177+
_uiState.update {
178+
it.copy(screenState = it.screenState.copy(snackbarMessage = message))
179+
}
180+
}
181+
175182
private fun updateUserName(value: String) {
176183
_uiState.update {
177184
it.copy(

libs/horizon/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -440,4 +440,5 @@
440440
<string name="a11y_dashboardNextItemContentDescription">Next item</string>
441441
<string name="a11y_dashboardPreviousItemContentDescription">Previous item</string>
442442
<string name="dashboardPaginatedWidgetPagerMessage">%1$d of %2$d</string>
443+
<string name="accountFailedtoOpenLinkMessage">Failed to open</string>
443444
</resources>

0 commit comments

Comments
 (0)