diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Context.kt index 009b2e13..574adec8 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Context.kt @@ -377,5 +377,3 @@ fun Context.checkAlarmsWithDeletedSoundUri(uri: String) { dbHelper.updateAlarm(it) } } - -val Context.preferences: SharedPreferences get() = PreferenceManager.getDefaultSharedPreferences(this) diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/extensions/gson/RuntimeTypeAdapterFactory.java b/app/src/main/kotlin/com/simplemobiletools/clock/extensions/gson/RuntimeTypeAdapterFactory.java index b04dba49..ad5ce3d0 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/extensions/gson/RuntimeTypeAdapterFactory.java +++ b/app/src/main/kotlin/com/simplemobiletools/clock/extensions/gson/RuntimeTypeAdapterFactory.java @@ -167,7 +167,7 @@ public final class RuntimeTypeAdapterFactory implements TypeAdapterFactory { * sensitive. * * @throws IllegalArgumentException if either {@code type} or {@code label} - * have already been registered on this type adapter. + * have already been registered on this type adapter. */ public RuntimeTypeAdapterFactory registerSubtype(Class type, String label) { if (type == null || label == null) { @@ -186,7 +186,7 @@ public final class RuntimeTypeAdapterFactory implements TypeAdapterFactory { * name}. Labels are case sensitive. * * @throws IllegalArgumentException if either {@code type} or its simple name - * have already been registered on this type adapter. + * have already been registered on this type adapter. */ public RuntimeTypeAdapterFactory registerSubtype(Class type) { return registerSubtype(type, type.getSimpleName()); diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/extensions/gson/typeAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/clock/extensions/gson/typeAdapter.kt index 7d9b5af3..550d57c2 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/extensions/gson/typeAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/extensions/gson/typeAdapter.kt @@ -1,22 +1,22 @@ -package app.common +package com.simplemobiletools.clock.extensions.gson +import com.google.gson.Gson import com.google.gson.GsonBuilder import com.google.gson.TypeAdapterFactory -import com.simplemobiletools.clock.extensions.gson.RuntimeTypeAdapterFactory import com.simplemobiletools.clock.services.TimerState val timerStates = valueOf() - .registerSubtype(TimerState.Idle::class.java) - .registerSubtype(TimerState.Start::class.java) - .registerSubtype(TimerState.Running::class.java) - .registerSubtype(TimerState.Pause::class.java) - .registerSubtype(TimerState.Paused::class.java) - .registerSubtype(TimerState.Finish::class.java) + .registerSubtype(TimerState.Idle::class.java) + .registerSubtype(TimerState.Start::class.java) + .registerSubtype(TimerState.Running::class.java) + .registerSubtype(TimerState.Pause::class.java) + .registerSubtype(TimerState.Paused::class.java) + .registerSubtype(TimerState.Finish::class.java) -inline fun valueOf(): RuntimeTypeAdapterFactory = RuntimeTypeAdapterFactory.of(T::class.java) +inline fun valueOf(): RuntimeTypeAdapterFactory = RuntimeTypeAdapterFactory.of(T::class.java) fun GsonBuilder.registerTypes(vararg types: TypeAdapterFactory) = apply { types.forEach { registerTypeAdapterFactory(it) } } -val gson = GsonBuilder().registerTypes(timerStates).create() +val gson: Gson = GsonBuilder().registerTypes(timerStates).create() diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/fragments/TimerFragment.kt b/app/src/main/kotlin/com/simplemobiletools/clock/fragments/TimerFragment.kt index d87dda19..65095aca 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/fragments/TimerFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/fragments/TimerFragment.kt @@ -26,18 +26,9 @@ import org.greenrobot.eventbus.ThreadMode class TimerFragment : Fragment() { lateinit var view: ViewGroup - private var timerState: TimerState = TimerState.Idle - - override fun onResume() { - super.onResume() - - timerState = requiredActivity.config.timerState - updateViewStates(timerState) - } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - EventBus.getDefault().register(this) } @@ -67,9 +58,7 @@ class TimerFragment : Fragment() { timer_sound.colorLeftDrawable(textColor) timer_time.setOnClickListener { - EventBus.getDefault().post(TimerState.Idle) - requiredActivity.hideTimerNotification() - requiredActivity.toast(R.string.timer_stopped) + stopTimer() } timer_play_pause.setOnClickListener { @@ -77,9 +66,7 @@ class TimerFragment : Fragment() { } timer_reset.setOnClickListener { - EventBus.getDefault().post(TimerState.Idle) - requiredActivity.hideTimerNotification() - requiredActivity.toast(R.string.timer_stopped) + stopTimer() } timer_initial_time.setOnClickListener { @@ -117,6 +104,12 @@ class TimerFragment : Fragment() { return view } + private fun stopTimer() { + EventBus.getDefault().post(TimerState.Idle) + requiredActivity.hideTimerNotification() + requiredActivity.toast(R.string.timer_stopped) + } + @Subscribe(threadMode = ThreadMode.MAIN) fun onMessageEvent(state: TimerState.Idle) { view.timer_time.text = 0.getFormattedDuration() diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/helpers/Config.kt b/app/src/main/kotlin/com/simplemobiletools/clock/helpers/Config.kt index 6590627d..104b8ba0 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/helpers/Config.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/helpers/Config.kt @@ -1,15 +1,13 @@ package com.simplemobiletools.clock.helpers import android.content.Context -import app.common.gson -import com.google.gson.Gson +import com.simplemobiletools.clock.extensions.gson.gson import com.simplemobiletools.clock.services.StateWrapper import com.simplemobiletools.clock.services.TimerState import com.simplemobiletools.commons.extensions.getDefaultAlarmTitle import com.simplemobiletools.commons.extensions.getDefaultAlarmUri import com.simplemobiletools.commons.helpers.ALARM_SOUND_TYPE_ALARM import com.simplemobiletools.commons.helpers.BaseConfig -import java.sql.Time class Config(context: Context) : BaseConfig(context) { companion object { diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/services/timerService.kt b/app/src/main/kotlin/com/simplemobiletools/clock/services/timerService.kt index 1cac5e46..c84d2f39 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/services/timerService.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/services/timerService.kt @@ -12,7 +12,10 @@ import android.os.CountDownTimer import android.os.IBinder import androidx.core.app.NotificationCompat import com.simplemobiletools.clock.R -import com.simplemobiletools.clock.extensions.* +import com.simplemobiletools.clock.extensions.config +import com.simplemobiletools.clock.extensions.getOpenTimerTabIntent +import com.simplemobiletools.clock.extensions.getTimerNotification +import com.simplemobiletools.clock.extensions.secondsToMillis import com.simplemobiletools.clock.helpers.TIMER_NOTIF_ID import com.simplemobiletools.clock.helpers.TIMER_RUNNING_NOTIF_ID import com.simplemobiletools.commons.extensions.getFormattedDuration @@ -87,7 +90,6 @@ class TimerService : Service() { val pendingIntent = getOpenTimerTabIntent() val notification = getTimerNotification(pendingIntent, false) //MAYBE IN FUTURE ADD TIME TO NOTIFICATION val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager - notificationManager.notify(TIMER_NOTIF_ID, notification) bus.post(TimerState.Idle)