Parcourir la source

Added network error toast

Vadik Sirekanyan il y a 2 ans
Parent
commit
6f86f1e619

+ 17 - 8
app/src/main/java/org/sirekanyan/outline/MainContent.kt

@@ -31,11 +31,13 @@ import androidx.compose.runtime.setValue
 import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.draw.alpha
+import androidx.compose.ui.platform.LocalContext
 import androidx.compose.ui.res.stringResource
 import androidx.compose.ui.unit.dp
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.launch
 import org.sirekanyan.outline.ext.plus
+import org.sirekanyan.outline.ext.showToast
 import org.sirekanyan.outline.feature.keys.KeysContent
 import org.sirekanyan.outline.feature.keys.KeysErrorContent
 import org.sirekanyan.outline.feature.keys.KeysErrorState
@@ -90,14 +92,21 @@ fun MainContent(state: MainState) {
                         }
                     }
                     is KeysErrorState -> {
-                        KeysErrorContent(
-                            insets = insets,
-                            onRetry = {
-                                state.scope.launch {
-                                    state.refreshCurrentKeys(showLoading = true)
-                                }
-                            },
-                        )
+                        if (serverEntity.cached) {
+                            val context = LocalContext.current
+                            LaunchedEffect(Unit) {
+                                context.showToast(R.string.outln_network_error)
+                            }
+                        } else {
+                            KeysErrorContent(
+                                insets = insets,
+                                onRetry = {
+                                    state.scope.launch {
+                                        state.refreshCurrentKeys(showLoading = true)
+                                    }
+                                },
+                            )
+                        }
                     }
                 }
                 LaunchedEffect(page.server) {

+ 3 - 1
app/src/main/java/org/sirekanyan/outline/feature/keys/KeysErrorContent.kt

@@ -11,8 +11,10 @@ import androidx.compose.material3.Text
 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.text.style.TextAlign
 import androidx.compose.ui.unit.dp
+import org.sirekanyan.outline.R
 
 @Composable
 fun KeysErrorContent(insets: PaddingValues, onRetry: () -> Unit) {
@@ -22,7 +24,7 @@ fun KeysErrorContent(insets: PaddingValues, onRetry: () -> Unit) {
         horizontalAlignment = Alignment.CenterHorizontally,
     ) {
         Text(
-            text = "Check your network connection",
+            text = stringResource(R.string.outln_network_error),
             modifier = Modifier.fillMaxWidth(),
             textAlign = TextAlign.Center,
         )

+ 1 - 0
app/src/main/res/values/strings.xml

@@ -3,4 +3,5 @@
     <string name="outln_sorting_by_id">Id</string>
     <string name="outln_sorting_by_name">Name</string>
     <string name="outln_sorting_by_traffic">Traffic</string>
+    <string name="outln_network_error">Check your network connection</string>
 </resources>