diff options
| author | 2022-06-24 17:13:27 +0000 | |
|---|---|---|
| committer | 2022-08-02 02:00:01 +0000 | |
| commit | a8aa52eaf951663b8f7c4b8ad361aea024ab4df4 (patch) | |
| tree | 2eae19911e24ca4d542c47d5697719277d5d4bb6 | |
| parent | 5f092e150a7ed1a40f52081c273ded8ec2d6c12d (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.kt | 31 |
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? ) } |