Browse Source

Delete old alarm

len 8 years ago
parent
commit
5b4ed6f926

+ 0 - 83
app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateAlarm.kt

@@ -1,83 +0,0 @@
-package eu.kanade.tachiyomi.data.library
-
-import android.app.AlarmManager
-import android.app.PendingIntent
-import android.content.BroadcastReceiver
-import android.content.Context
-import android.content.Intent
-import android.os.SystemClock
-import eu.kanade.tachiyomi.data.preference.PreferencesHelper
-import eu.kanade.tachiyomi.data.preference.getOrDefault
-import eu.kanade.tachiyomi.util.alarmManager
-import uy.kohesive.injekt.Injekt
-import uy.kohesive.injekt.api.get
-
-/**
- * This class is used to update the library by firing an alarm after a specified time.
- * It has a receiver reacting to system's boot and the intent fired by this alarm.
- * See [onReceive] for more information.
- */
-class LibraryUpdateAlarm : BroadcastReceiver() {
-
-    companion object {
-        const val LIBRARY_UPDATE_ACTION = "eu.kanade.UPDATE_LIBRARY"
-
-        /**
-         * Sets the alarm to run the intent that updates the library.
-         * @param context the application context.
-         * @param intervalInHours the time in hours when it will be executed. Defaults to the
-         * value stored in preferences.
-         */
-        fun startAlarm(context: Context,
-                       intervalInHours: Int = Injekt.get<PreferencesHelper>().libraryUpdateInterval().getOrDefault()) {
-            // Stop previous running alarms if needed, and do not restart it if the interval is 0.
-            stopAlarm(context)
-            if (intervalInHours == 0)
-                return
-
-            // Get the time the alarm should fire the event to update.
-            val intervalInMillis = intervalInHours * 60 * 60 * 1000
-            val nextRun = SystemClock.elapsedRealtime() + intervalInMillis
-
-            // Start the alarm.
-            val pendingIntent = getPendingIntent(context)
-            context.alarmManager.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
-                    nextRun, intervalInMillis.toLong(), pendingIntent)
-        }
-
-        /**
-         * Stops the alarm if it's running.
-         * @param context the application context.
-         */
-        fun stopAlarm(context: Context) {
-            val pendingIntent = getPendingIntent(context)
-            context.alarmManager.cancel(pendingIntent)
-        }
-
-        /**
-         * Get the intent the alarm should run when it's fired.
-         * @param context the application context.
-         * @return the intent that will run when the alarm is fired.
-         */
-        private fun getPendingIntent(context: Context): PendingIntent {
-            val intent = Intent(context, LibraryUpdateAlarm::class.java)
-            intent.action = LIBRARY_UPDATE_ACTION
-            return PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)
-        }
-    }
-
-    /**
-     * Handle the intents received by this [BroadcastReceiver].
-     * @param context the application context.
-     * @param intent the intent to process.
-     */
-    override fun onReceive(context: Context, intent: Intent) {
-        when (intent.action) {
-            // Start the alarm when the system is booted.
-            Intent.ACTION_BOOT_COMPLETED -> startAlarm(context)
-            // Update the library when the alarm fires an event.
-            LIBRARY_UPDATE_ACTION -> LibraryUpdateService.start(context)
-        }
-    }
-
-}

+ 1 - 3
app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt

@@ -143,7 +143,6 @@ class LibraryUpdateService : Service() {
         subscription?.unsubscribe()
         notificationBitmap?.recycle()
         notificationBitmap = null
-        LibraryUpdateAlarm.startAlarm(this)
         destroyWakeLock()
         super.onDestroy()
     }
@@ -188,10 +187,8 @@ class LibraryUpdateService : Service() {
                 .subscribe({
                 }, {
                     showNotification(getString(R.string.notification_update_error), "")
-                    LibraryUpdateTrigger.setupTask(this)
                     stopSelf(startId)
                 }, {
-                    LibraryUpdateTrigger.setupTask(this)
                     stopSelf(startId)
                 })
 
@@ -270,6 +267,7 @@ class LibraryUpdateService : Service() {
                     } else {
                         showResultNotification(newUpdates, failedUpdates)
                     }
+                    LibraryUpdateTrigger.setupTask(this)
                 }
     }