summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Hawkwood Glazier <jglazier@google.com> 2022-06-24 17:13:27 +0000
committer Hawkwood Glazier <jglazier@google.com> 2022-08-02 02:00:01 +0000
commita8aa52eaf951663b8f7c4b8ad361aea024ab4df4 (patch)
tree2eae19911e24ca4d542c47d5697719277d5d4bb6
parent5f092e150a7ed1a40f52081c273ded8ec2d6c12d (diff)
Add exception handling to ClockRegistry to prevent crashes
Test: Manual Bug: 229771520 Change-Id: I9db17a3d945b75846ac238b59634fb595a8c8706 (cherry picked from commit 901c0a5dcb2681d1bd619bb6ab5e7063b82291e6) Merged-In: I9db17a3d945b75846ac238b59634fb595a8c8706
-rw-r--r--packages/SystemUI/shared/src/com/android/systemui/shared/clocks/ClockRegistry.kt31
1 files changed, 20 insertions, 11 deletions
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/clocks/ClockRegistry.kt b/packages/SystemUI/shared/src/com/android/systemui/shared/clocks/ClockRegistry.kt
index 4b8b46d54848..c370e68592f8 100644
--- a/packages/SystemUI/shared/src/com/android/systemui/shared/clocks/ClockRegistry.kt
+++ b/packages/SystemUI/shared/src/com/android/systemui/shared/clocks/ClockRegistry.kt
@@ -72,18 +72,27 @@ open class ClockRegistry(
open var currentClockId: ClockId
get() {
- val json = Settings.Secure.getString(
- context.contentResolver,
- Settings.Secure.LOCK_SCREEN_CUSTOM_CLOCK_FACE
- )
- return gson.fromJson(json, ClockSetting::class.java)?.clockId ?: DEFAULT_CLOCK_ID
+ return try {
+ val json = Settings.Secure.getString(
+ context.contentResolver,
+ Settings.Secure.LOCK_SCREEN_CUSTOM_CLOCK_FACE
+ )
+ gson.fromJson(json, ClockSetting::class.java)?.clockId ?: DEFAULT_CLOCK_ID
+ } catch (ex: Exception) {
+ Log.e(TAG, "Failed to parse clock setting", ex)
+ DEFAULT_CLOCK_ID
+ }
}
set(value) {
- val json = gson.toJson(ClockSetting(value, System.currentTimeMillis()))
- Settings.Secure.putString(
- context.contentResolver,
- Settings.Secure.LOCK_SCREEN_CUSTOM_CLOCK_FACE, json
- )
+ try {
+ val json = gson.toJson(ClockSetting(value, System.currentTimeMillis()))
+ Settings.Secure.putString(
+ context.contentResolver,
+ Settings.Secure.LOCK_SCREEN_CUSTOM_CLOCK_FACE, json
+ )
+ } catch (ex: Exception) {
+ Log.e(TAG, "Failed to set clock setting", ex)
+ }
}
init {
@@ -170,6 +179,6 @@ open class ClockRegistry(
private data class ClockSetting(
val clockId: ClockId,
- val _applied_timestamp: Long
+ val _applied_timestamp: Long?
)
}