@@ -4,6 +4,7 @@ import android.content.Intent
44import android.util.Log
55import androidx.compose.foundation.clickable
66import androidx.compose.foundation.layout.Arrangement
7+import androidx.compose.foundation.layout.Box
78import androidx.compose.foundation.layout.Column
89import androidx.compose.foundation.layout.Row
910import androidx.compose.foundation.layout.Spacer
@@ -19,6 +20,7 @@ import androidx.compose.material.icons.filled.BugReport
1920import androidx.compose.material.icons.filled.DeleteSweep
2021import androidx.compose.material.icons.filled.Share
2122import androidx.compose.material3.AlertDialog
23+import androidx.compose.material3.CircularProgressIndicator
2224import androidx.compose.material3.ExperimentalMaterial3Api
2325import androidx.compose.material3.HorizontalDivider
2426import androidx.compose.material3.Icon
@@ -44,6 +46,7 @@ import androidx.compose.ui.Modifier
4446import androidx.compose.ui.platform.LocalContext
4547import androidx.compose.ui.res.stringResource
4648import androidx.compose.ui.semantics.Role
49+import androidx.compose.ui.semantics.contentDescription
4750import androidx.compose.ui.semantics.heading
4851import androidx.compose.ui.semantics.role
4952import androidx.compose.ui.semantics.semantics
@@ -189,11 +192,21 @@ fun DiagnosticsScreen(onBack: () -> Unit) {
189192 },
190193 title = { Text(stringResource(R.string.crash_report)) },
191194 text = {
192− Text(
193− content ?: "",
194− style = MaterialTheme.typography.bodySmall,
195− modifier = Modifier.fillMaxWidth(),
196− )
195+ if (content != null) {
196+ Text(
197+ content,
198+ style = MaterialTheme.typography.bodySmall,
199+ modifier = Modifier.fillMaxWidth(),
200+ )
201+ } else {
202+ val loadingLabel = stringResource(R.string.loading)
203+ Box(
204+ modifier = Modifier.fillMaxWidth().padding(vertical = 24.dp),
205+ contentAlignment = Alignment.Center,
206+ ) {
207+ CircularProgressIndicator(Modifier.semantics { contentDescription = loadingLabel })
208+ }
209+ }
197210 },
198211 )
199212 }