Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 901c0a5d authored by Hawkwood Glazier's avatar Hawkwood Glazier
Browse files

Add exception handling to ClockRegistry to prevent crashes

Test: Manual
Bug: 229771520
Change-Id: I9db17a3d945b75846ac238b59634fb595a8c8706
parent c5b80786
Loading
Loading
Loading
Loading
+20 −11
Original line number Diff line number Diff line
@@ -74,18 +74,27 @@ open class ClockRegistry(

    open var currentClockId: ClockId
        get() {
            return try {
                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
                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) {
            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 {
@@ -183,6 +192,6 @@ open class ClockRegistry(

    private data class ClockSetting(
        val clockId: ClockId,
        val _applied_timestamp: Long
        val _applied_timestamp: Long?
    )
}