diff --git a/app/src/main/java/ani/dantotsu/App.kt b/app/src/main/java/ani/dantotsu/App.kt index d010404c..7a9e39ac 100644 --- a/app/src/main/java/ani/dantotsu/App.kt +++ b/app/src/main/java/ani/dantotsu/App.kt @@ -135,7 +135,6 @@ class App : MultiDexApplication() { val useAlarmManager = PrefManager.getVal(PrefName.UseAlarmManager) val scheduler = TaskScheduler.create(this, useAlarmManager) scheduler.scheduleAllTasks(this) - scheduler.scheduleSingleWork(this) } private fun setupNotificationChannels() { diff --git a/app/src/main/java/ani/dantotsu/MainActivity.kt b/app/src/main/java/ani/dantotsu/MainActivity.kt index 4a7bdc5e..8c27a718 100644 --- a/app/src/main/java/ani/dantotsu/MainActivity.kt +++ b/app/src/main/java/ani/dantotsu/MainActivity.kt @@ -48,6 +48,7 @@ import ani.dantotsu.home.LoginFragment import ani.dantotsu.home.MangaFragment import ani.dantotsu.home.NoInternet import ani.dantotsu.media.MediaDetailsActivity +import ani.dantotsu.notifications.TaskScheduler import ani.dantotsu.notifications.anilist.AnilistNotificationWorker import ani.dantotsu.notifications.comment.CommentNotificationWorker import ani.dantotsu.others.CustomBottomDialog @@ -102,12 +103,7 @@ class MainActivity : AppCompatActivity() { binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) - - androidx.work.WorkManager.getInstance(this) - .enqueue(OneTimeWorkRequest.Companion.from(CommentNotificationWorker::class.java)) - - androidx.work.WorkManager.getInstance(this) - .enqueue(OneTimeWorkRequest.Companion.from(AnilistNotificationWorker::class.java)) + TaskScheduler.scheduleSingleWork(this) val action = intent.action val type = intent.type diff --git a/app/src/main/java/ani/dantotsu/media/anime/ExoplayerView.kt b/app/src/main/java/ani/dantotsu/media/anime/ExoplayerView.kt index f3b8ffb6..f019dac5 100644 --- a/app/src/main/java/ani/dantotsu/media/anime/ExoplayerView.kt +++ b/app/src/main/java/ani/dantotsu/media/anime/ExoplayerView.kt @@ -1586,14 +1586,7 @@ class ExoplayerView : AppCompatActivity(), Player.Listener, SessionAvailabilityL } }.show() dialog.window?.setDimAmount(0.8f) - } - if (!this::exoPlayer.isInitialized) buildExoplayer() - - val isDisabled = (subtitle == null && hasExtSubtitles) - exoPlayer.trackSelectionParameters = exoPlayer.trackSelectionParameters - .buildUpon() - .setTrackTypeDisabled(TRACK_TYPE_TEXT, isDisabled) - .build() + } else buildExoplayer() } private fun buildExoplayer() { @@ -1644,6 +1637,12 @@ class ExoplayerView : AppCompatActivity(), Player.Listener, SessionAvailabilityL if (!hasExtSubtitles && !PrefManager.getVal(PrefName.Subtitles)) { onSetTrackGroupOverride(dummyTrack, TRACK_TYPE_TEXT) } + + val isDisabled = (subtitle == null && hasExtSubtitles) + exoPlayer.trackSelectionParameters = exoPlayer.trackSelectionParameters + .buildUpon() + .setTrackTypeDisabled(TRACK_TYPE_TEXT, isDisabled) + .build() } private fun releasePlayer() { diff --git a/app/src/main/java/ani/dantotsu/notifications/TaskScheduler.kt b/app/src/main/java/ani/dantotsu/notifications/TaskScheduler.kt index 77ab1316..af7362a7 100644 --- a/app/src/main/java/ani/dantotsu/notifications/TaskScheduler.kt +++ b/app/src/main/java/ani/dantotsu/notifications/TaskScheduler.kt @@ -36,28 +36,6 @@ interface TaskScheduler { } } - fun scheduleSingleWork(context: Context) { - val workManager = androidx.work.WorkManager.getInstance(context) - workManager.enqueueUniqueWork( - CommentNotificationWorker.WORK_NAME, - androidx.work.ExistingWorkPolicy.REPLACE, - androidx.work.OneTimeWorkRequest.Builder(CommentNotificationWorker::class.java) - .build() - ) - workManager.enqueueUniqueWork( - AnilistNotificationWorker.WORK_NAME, - androidx.work.ExistingWorkPolicy.REPLACE, - androidx.work.OneTimeWorkRequest.Builder(AnilistNotificationWorker::class.java) - .build() - ) - workManager.enqueueUniqueWork( - SubscriptionNotificationWorker.WORK_NAME, - androidx.work.ExistingWorkPolicy.REPLACE, - androidx.work.OneTimeWorkRequest.Builder(SubscriptionNotificationWorker::class.java) - .build() - ) - } - companion object { fun create(context: Context, useAlarmManager: Boolean): TaskScheduler { return if (useAlarmManager) { @@ -66,6 +44,28 @@ interface TaskScheduler { WorkManagerScheduler(context) } } + + fun scheduleSingleWork(context: Context) { + val workManager = androidx.work.WorkManager.getInstance(context) + workManager.enqueueUniqueWork( + CommentNotificationWorker.WORK_NAME + "_single", + androidx.work.ExistingWorkPolicy.REPLACE, + androidx.work.OneTimeWorkRequest.Builder(CommentNotificationWorker::class.java) + .build() + ) + workManager.enqueueUniqueWork( + AnilistNotificationWorker.WORK_NAME + "_single", + androidx.work.ExistingWorkPolicy.REPLACE, + androidx.work.OneTimeWorkRequest.Builder(AnilistNotificationWorker::class.java) + .build() + ) + workManager.enqueueUniqueWork( + SubscriptionNotificationWorker.WORK_NAME + "_single", + androidx.work.ExistingWorkPolicy.REPLACE, + androidx.work.OneTimeWorkRequest.Builder(SubscriptionNotificationWorker::class.java) + .build() + ) + } } enum class TaskType {