Merge pull request #529 from esensar/fix/alarm-deobfuscation

Migrate last alarm to unobfuscated storage as well
This commit is contained in:
Tibor Kaputa 2023-09-23 17:52:21 +02:00 committed by GitHub
commit d54ba657a5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 29 additions and 13 deletions

View file

@ -4,6 +4,7 @@ import android.content.Context
import android.media.RingtoneManager
import com.simplemobiletools.clock.extensions.gson.gson
import com.simplemobiletools.clock.models.Alarm
import com.simplemobiletools.clock.models.ObfuscatedAlarm
import com.simplemobiletools.clock.models.ObfuscatedTimer
import com.simplemobiletools.clock.models.Timer
import com.simplemobiletools.commons.extensions.getDefaultAlarmSound
@ -66,7 +67,15 @@ class Config(context: Context) : BaseConfig(context) {
var alarmLastConfig: Alarm?
get() = prefs.getString(ALARM_LAST_CONFIG, null)?.let { lastAlarm ->
gson.fromJson(lastAlarm, Alarm::class.java)
try {
if (lastAlarm.contains("\"b\"")) {
gson.fromJson(lastAlarm, ObfuscatedAlarm::class.java).toAlarm()
} else {
gson.fromJson(lastAlarm, Alarm::class.java)
}
} catch (e: Exception) {
null
}
}
set(alarm) = prefs.edit().putString(ALARM_LAST_CONFIG, gson.toJson(alarm)).apply()

View file

@ -1,5 +1,8 @@
package com.simplemobiletools.clock.models
import androidx.annotation.Keep
@Keep
data class Alarm(
var id: Int,
var timeInMinutes: Int,
@ -11,3 +14,18 @@ data class Alarm(
var label: String,
var oneShot: Boolean = false
)
@Keep
data class ObfuscatedAlarm(
var a: Int,
var b: Int,
var c: Int,
var d: Boolean,
var e: Boolean,
var f: String,
var g: String,
var h: String,
var i: Boolean = false
) {
fun toAlarm() = Alarm(a, b, c, d, e, f, g, h, i)
}

View file

@ -33,16 +33,5 @@ data class ObfuscatedTimer(
var i: String? = null,
var j: Boolean = false
) {
fun toTimer(): Timer = Timer(
a,
b,
TimerState.Idle,
d,
e,
f,
g,
h,
i,
j
)
fun toTimer() = Timer(a, b, TimerState.Idle, d, e, f, g, h, i, j)
}