Skip to content

Commit dd1c179

Browse files
committed
refactor: make error messages nullable and add default error message
1 parent b5301bb commit dd1c179

File tree

11 files changed

+20
-17
lines changed

11 files changed

+20
-17
lines changed

dataconnect/app/src/main/java/com/google/firebase/example/dataconnect/feature/actordetail/ActorDetailUIState.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import com.google.firebase.dataconnect.movies.GetMovieByIdQuery
77
sealed class ActorDetailUIState {
88
data object Loading: ActorDetailUIState()
99

10-
data class Error(val errorMessage: String): ActorDetailUIState()
10+
data class Error(val errorMessage: String?): ActorDetailUIState()
1111

1212
data class Success(
1313
// Actor is null if it can't be found on the DB

dataconnect/app/src/main/java/com/google/firebase/example/dataconnect/feature/actordetail/ActorDetailViewModel.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ class ActorDetailViewModel(
5757
)
5858
}
5959
} catch (e: Exception) {
60-
_uiState.value = ActorDetailUIState.Error(e.message ?: "")
60+
_uiState.value = ActorDetailUIState.Error(e.message)
6161
}
6262
}
6363
}
@@ -76,7 +76,7 @@ class ActorDetailViewModel(
7676
// Re-run the query to fetch the actor details
7777
fetchActor()
7878
} catch (e: Exception) {
79-
_uiState.value = ActorDetailUIState.Error(e.message ?: "")
79+
_uiState.value = ActorDetailUIState.Error(e.message)
8080
}
8181
}
8282
}

dataconnect/app/src/main/java/com/google/firebase/example/dataconnect/feature/genredetail/GenreDetailUIState.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ sealed class GenreDetailUIState {
66

77
data object Loading: GenreDetailUIState()
88

9-
data class Error(val errorMessage: String): GenreDetailUIState()
9+
data class Error(val errorMessage: String?): GenreDetailUIState()
1010

1111
data class Success(
1212
val genreName: String,

dataconnect/app/src/main/java/com/google/firebase/example/dataconnect/feature/genredetail/GenreDetailViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class GenreDetailViewModel(
3737
mostRecent = mostRecent
3838
)
3939
} catch (e: Exception) {
40-
_uiState.value = GenreDetailUIState.Error(e.message ?: "")
40+
_uiState.value = GenreDetailUIState.Error(e.message)
4141
}
4242
}
4343
}

dataconnect/app/src/main/java/com/google/firebase/example/dataconnect/feature/moviedetail/MovieDetailUIState.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import com.google.firebase.dataconnect.movies.GetMovieByIdQuery
66
sealed class MovieDetailUIState {
77
data object Loading: MovieDetailUIState()
88

9-
data class Error(val errorMessage: String): MovieDetailUIState()
9+
data class Error(val errorMessage: String?): MovieDetailUIState()
1010

1111
data class Success(
1212
// Movie is null if it can't be found on the DB

dataconnect/app/src/main/java/com/google/firebase/example/dataconnect/feature/moviedetail/MovieDetailViewModel.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ class MovieDetailViewModel(
6363
)
6464
}
6565
} catch (e: Exception) {
66-
_uiState.value = MovieDetailUIState.Error(e.message ?: "")
66+
_uiState.value = MovieDetailUIState.Error(e.message)
6767
}
6868
}
6969
}
@@ -84,7 +84,7 @@ class MovieDetailViewModel(
8484
// Re-run the query to fetch movie
8585
fetchMovie()
8686
} catch (e: Exception) {
87-
_uiState.value = MovieDetailUIState.Error(e.message ?: "")
87+
_uiState.value = MovieDetailUIState.Error(e.message)
8888
}
8989
}
9090
}
@@ -105,7 +105,7 @@ class MovieDetailViewModel(
105105
// Re-run the query to fetch movie
106106
fetchMovie()
107107
} catch (e: Exception) {
108-
_uiState.value = MovieDetailUIState.Error(e.message ?: "")
108+
_uiState.value = MovieDetailUIState.Error(e.message)
109109
}
110110
}
111111
}
@@ -124,7 +124,7 @@ class MovieDetailViewModel(
124124
// Re-run the query to fetch movie
125125
fetchMovie()
126126
} catch (e: Exception) {
127-
_uiState.value = MovieDetailUIState.Error(e.message ?: "")
127+
_uiState.value = MovieDetailUIState.Error(e.message)
128128
}
129129
}
130130
}

dataconnect/app/src/main/java/com/google/firebase/example/dataconnect/feature/movies/MoviesUIState.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ sealed class MoviesUIState {
77

88
data object Loading: MoviesUIState()
99

10-
data class Error(val errorMessage: String): MoviesUIState()
10+
data class Error(val errorMessage: String?): MoviesUIState()
1111

1212
data class Success(
1313
val top10movies: List<MoviesTop10Query.Data.MoviesItem>,

dataconnect/app/src/main/java/com/google/firebase/example/dataconnect/feature/profile/ProfileUIState.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import com.google.firebase.dataconnect.movies.GetUserByIdQuery
55
sealed class ProfileUIState {
66
data object Loading: ProfileUIState()
77

8-
data class Error(val errorMessage: String): ProfileUIState()
8+
data class Error(val errorMessage: String?): ProfileUIState()
99

1010
data object AuthState: ProfileUIState()
1111

dataconnect/app/src/main/java/com/google/firebase/example/dataconnect/feature/profile/ProfileViewModel.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ class ProfileViewModel(
5454
)?.await()
5555
moviesConnector.upsertUser.execute(username = displayName)
5656
} catch (e: Exception) {
57-
_uiState.value = ProfileUIState.Error(e.message ?: "")
57+
_uiState.value = ProfileUIState.Error(e.message)
5858
e.printStackTrace()
5959
}
6060
}
@@ -65,7 +65,7 @@ class ProfileViewModel(
6565
try {
6666
auth.signInWithEmailAndPassword(email, password).await()
6767
} catch (e: Exception) {
68-
_uiState.value = ProfileUIState.Error(e.message ?: "")
68+
_uiState.value = ProfileUIState.Error(e.message)
6969
}
7070
}
7171
}
@@ -89,7 +89,7 @@ class ProfileViewModel(
8989
)
9090
Log.d("DisplayUser", "$user")
9191
} catch (e: Exception) {
92-
_uiState.value = ProfileUIState.Error(e.message ?: "")
92+
_uiState.value = ProfileUIState.Error(e.message)
9393
}
9494
}
9595
}

dataconnect/app/src/main/java/com/google/firebase/example/dataconnect/ui/components/ErrorCard.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,22 @@ import androidx.compose.material3.MaterialTheme
88
import androidx.compose.material3.Text
99
import androidx.compose.runtime.Composable
1010
import androidx.compose.ui.Modifier
11+
import androidx.compose.ui.res.stringResource
1112
import androidx.compose.ui.tooling.preview.Preview
1213
import androidx.compose.ui.unit.dp
14+
import com.google.firebase.example.dataconnect.R
1315

1416
@Composable
1517
fun ErrorCard(
16-
errorMessage: String
18+
errorMessage: String?
1719
) {
1820
Card(
1921
colors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.errorContainer),
2022
modifier = Modifier.padding(16.dp)
2123
.fillMaxWidth()
2224
) {
2325
Text(
24-
text = errorMessage,
26+
text = errorMessage ?: stringResource(R.string.unknown_error),
2527
modifier = Modifier.padding(16.dp)
2628
.fillMaxWidth()
2729
)

dataconnect/app/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<resources>
22
<string name="app_name">Firebase Data Connect</string>
3+
<string name="unknown_error">An unknown error occurred</string>
34

45
<!-- NavBar labels -->
56
<string name="label_movies">Movies</string>

0 commit comments

Comments
 (0)