diff --git a/app/src/main/java/com/github/andreyasadchy/xtra/ui/download/StreamDownloadWorker.kt b/app/src/main/java/com/github/andreyasadchy/xtra/ui/download/StreamDownloadWorker.kt index c135398a..5e448e14 100644 --- a/app/src/main/java/com/github/andreyasadchy/xtra/ui/download/StreamDownloadWorker.kt +++ b/app/src/main/java/com/github/andreyasadchy/xtra/ui/download/StreamDownloadWorker.kt @@ -894,10 +894,10 @@ class StreamDownloadWorker @AssistedInject constructor( setContentText(offlineVideo.channelName) setSmallIcon(android.R.drawable.stat_sys_download) setOngoing(true) - setContentIntent(PendingIntent.getActivity(context, REQUEST_CODE_DOWNLOAD, + setContentIntent(PendingIntent.getActivity(context, offlineVideo.id, Intent(context, MainActivity::class.java).apply { flags = Intent.FLAG_ACTIVITY_CLEAR_TOP - putExtra(MainActivity.KEY_CODE, MainActivity.INTENT_OPEN_DOWNLOADS_TAB) + action = MainActivity.INTENT_OPEN_DOWNLOADS_TAB }, PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT)) addAction(android.R.drawable.ic_delete, ContextCompat.getString(context, R.string.stop), WorkManager.getInstance(context).createCancelPendingIntent(id)) }.build() @@ -909,8 +909,6 @@ class StreamDownloadWorker @AssistedInject constructor( } companion object { - private const val REQUEST_CODE_DOWNLOAD = 0 - const val GROUP_KEY = "com.github.andreyasadchy.xtra.DOWNLOADS" const val KEY_VIDEO_ID = "KEY_VIDEO_ID" diff --git a/app/src/main/java/com/github/andreyasadchy/xtra/ui/download/VideoDownloadWorker.kt b/app/src/main/java/com/github/andreyasadchy/xtra/ui/download/VideoDownloadWorker.kt index e968053c..1951ef48 100644 --- a/app/src/main/java/com/github/andreyasadchy/xtra/ui/download/VideoDownloadWorker.kt +++ b/app/src/main/java/com/github/andreyasadchy/xtra/ui/download/VideoDownloadWorker.kt @@ -430,6 +430,20 @@ class VideoDownloadWorker @AssistedInject constructor( offlineRepository.updateVideo(offlineVideo.apply { status = OfflineVideo.STATUS_PENDING }) } else { offlineRepository.updateVideo(offlineVideo.apply { status = OfflineVideo.STATUS_DOWNLOADED }) + val notification = NotificationCompat.Builder(context, context.getString(R.string.notification_downloads_channel_id)).apply { + setGroup(GROUP_KEY) + setContentTitle(ContextCompat.getString(context, R.string.downloaded)) + setContentText(offlineVideo.name) + setSmallIcon(android.R.drawable.stat_sys_download_done) + setAutoCancel(true) + setContentIntent(PendingIntent.getActivity(context, -offlineVideo.id, + Intent(context, MainActivity::class.java).apply { + flags = Intent.FLAG_ACTIVITY_CLEAR_TOP + action = MainActivity.INTENT_OPEN_DOWNLOADED_VIDEO + putExtra(MainActivity.KEY_VIDEO, offlineVideo) + }, PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT)) + }.build() + notificationManager.notify(-offlineVideo.id, notification) } Result.success() } @@ -1090,10 +1104,10 @@ class VideoDownloadWorker @AssistedInject constructor( setSmallIcon(android.R.drawable.stat_sys_download) setProgress(offlineVideo.maxProgress, offlineVideo.progress, false) setOngoing(true) - setContentIntent(PendingIntent.getActivity(context, REQUEST_CODE_DOWNLOAD, + setContentIntent(PendingIntent.getActivity(context, offlineVideo.id, Intent(context, MainActivity::class.java).apply { flags = Intent.FLAG_ACTIVITY_CLEAR_TOP - putExtra(MainActivity.KEY_CODE, MainActivity.INTENT_OPEN_DOWNLOADS_TAB) + action = MainActivity.INTENT_OPEN_DOWNLOADS_TAB }, PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT)) addAction(android.R.drawable.ic_delete, ContextCompat.getString(context, R.string.stop), WorkManager.getInstance(context).createCancelPendingIntent(id)) }.build() @@ -1105,8 +1119,6 @@ class VideoDownloadWorker @AssistedInject constructor( } companion object { - private const val REQUEST_CODE_DOWNLOAD = 0 - const val GROUP_KEY = "com.github.andreyasadchy.xtra.DOWNLOADS" const val KEY_VIDEO_ID = "KEY_VIDEO_ID" diff --git a/app/src/main/java/com/github/andreyasadchy/xtra/ui/main/MainActivity.kt b/app/src/main/java/com/github/andreyasadchy/xtra/ui/main/MainActivity.kt index fa53b089..1db91221 100644 --- a/app/src/main/java/com/github/andreyasadchy/xtra/ui/main/MainActivity.kt +++ b/app/src/main/java/com/github/andreyasadchy/xtra/ui/main/MainActivity.kt @@ -80,15 +80,13 @@ import kotlinx.coroutines.launch class MainActivity : AppCompatActivity(), SlidingLayout.Listener { companion object { - const val KEY_CODE = "code" const val KEY_VIDEO = "video" - const val INTENT_OPEN_DOWNLOADS_TAB = 0 - const val INTENT_OPEN_DOWNLOADED_VIDEO = 1 - const val INTENT_OPEN_PLAYER = 2 - const val INTENT_INSTALL_UPDATE = "com.github.andreyasadchy.xtra.INSTALL_UPDATE" const val INTENT_LIVE_NOTIFICATION = "com.github.andreyasadchy.xtra.LIVE_NOTIFICATION" + const val INTENT_OPEN_DOWNLOADS_TAB = "com.github.andreyasadchy.xtra.OPEN_DOWNLOADS_TAB" + const val INTENT_OPEN_DOWNLOADED_VIDEO = "com.github.andreyasadchy.xtra.OPEN_DOWNLOADED_VIDEO" + const val INTENT_OPEN_PLAYER = "com.github.andreyasadchy.xtra.OPEN_PLAYER" } private lateinit var binding: ActivityMainBinding @@ -552,20 +550,24 @@ class MainActivity : AppCompatActivity(), SlidingLayout.Listener { } ) } - else -> { - when (intent?.getIntExtra(KEY_CODE, -1)) { - INTENT_OPEN_DOWNLOADS_TAB -> binding.navBar.selectedItemId = if (prefs.getBoolean(C.UI_SAVEDPAGER, true)) R.id.savedPagerFragment else R.id.savedMediaFragment - INTENT_OPEN_DOWNLOADED_VIDEO -> startOfflineVideo( - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { - intent.getParcelableExtra(KEY_VIDEO, OfflineVideo::class.java)!! - } else { - @Suppress("DEPRECATION") - intent.getParcelableExtra(KEY_VIDEO)!! - } - ) - INTENT_OPEN_PLAYER -> playerFragment?.maximize() //TODO if was closed need to reopen + INTENT_OPEN_DOWNLOADS_TAB -> { + binding.navBar.selectedItemId = if (prefs.getBoolean(C.UI_SAVEDPAGER, true)) { + R.id.savedPagerFragment + } else { + R.id.savedMediaFragment } } + INTENT_OPEN_DOWNLOADED_VIDEO -> { + startOfflineVideo( + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + intent.getParcelableExtra(KEY_VIDEO, OfflineVideo::class.java)!! + } else { + @Suppress("DEPRECATION") + intent.getParcelableExtra(KEY_VIDEO)!! + } + ) + } + INTENT_OPEN_PLAYER -> playerFragment?.maximize() //TODO if was closed need to reopen } } diff --git a/app/src/main/java/com/github/andreyasadchy/xtra/ui/player/PlaybackService.kt b/app/src/main/java/com/github/andreyasadchy/xtra/ui/player/PlaybackService.kt index fa15c9c0..5f50e3d6 100644 --- a/app/src/main/java/com/github/andreyasadchy/xtra/ui/player/PlaybackService.kt +++ b/app/src/main/java/com/github/andreyasadchy/xtra/ui/player/PlaybackService.kt @@ -293,7 +293,7 @@ class PlaybackService : MediaSessionService() { .setSessionActivity(PendingIntent.getActivity(this, REQUEST_CODE_RESUME, Intent(this, MainActivity::class.java).apply { flags = Intent.FLAG_ACTIVITY_CLEAR_TOP - putExtra(MainActivity.KEY_CODE, MainActivity.INTENT_OPEN_PLAYER) + action = MainActivity.INTENT_OPEN_PLAYER }, PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT) ) .setCallback(object : MediaSession.Callback {