Skip to content

Commit

Permalink
download complete notification
Browse files Browse the repository at this point in the history
  • Loading branch information
crackededed committed Oct 16, 2024
1 parent 58c6942 commit bc9beaa
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand All @@ -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"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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()
}
Expand Down Expand Up @@ -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()
Expand All @@ -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"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down

0 comments on commit bc9beaa

Please sign in to comment.