Add MainActivity to activities stack when opening a notification

This commit is contained in:
2019-10-04 19:40:22 +02:00
committed by Matte23
parent ea9ce33fbc
commit 467f9221d7
2 changed files with 21 additions and 8 deletions

View File

@@ -28,6 +28,7 @@ import android.net.Uri
import android.os.Build
import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
import androidx.core.app.TaskStackBuilder
import net.underdesk.circolapp.data.AppDatabase
import net.underdesk.circolapp.data.Circular
@@ -58,13 +59,18 @@ class AlarmBroadcastReceiver : BroadcastReceiver() {
}
private fun createNotification(context: Context, circular: Circular) {
val intent = Intent(Intent.ACTION_VIEW)
intent.setDataAndType(Uri.parse(circular.url), "application/pdf").apply {
val mainIntent = Intent(context, MainActivity::class.java)
val viewIntent = Intent(Intent.ACTION_VIEW)
viewIntent.setDataAndType(Uri.parse(circular.url), "application/pdf").apply {
flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
}
val pendingIntent: PendingIntent =
PendingIntent.getActivity(context, 0, intent, 0)
val taskStackBuilder = TaskStackBuilder.create(context)
taskStackBuilder.addParentStack(MainActivity::class.java)
taskStackBuilder.addNextIntent(mainIntent)
taskStackBuilder.addNextIntent(viewIntent)
val pendingIntent = taskStackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT)
val builder = NotificationCompat.Builder(context, CHANNEL_ID)
.setSmallIcon(R.drawable.ic_notification)

View File

@@ -27,8 +27,10 @@ import android.net.Uri
import android.os.Build
import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
import androidx.core.app.TaskStackBuilder
import androidx.preference.PreferenceManager
import androidx.work.*
import net.underdesk.circolapp.MainActivity
import net.underdesk.circolapp.R
import net.underdesk.circolapp.data.AppDatabase
import net.underdesk.circolapp.data.Circular
@@ -132,13 +134,18 @@ class PollWork(appContext: Context, workerParams: WorkerParameters) :
}
private fun createNotification(circular: Circular) {
val intent = Intent(Intent.ACTION_VIEW)
intent.setDataAndType(Uri.parse(circular.url), "application/pdf").apply {
val mainIntent = Intent(applicationContext, MainActivity::class.java)
val viewIntent = Intent(Intent.ACTION_VIEW)
viewIntent.setDataAndType(Uri.parse(circular.url), "application/pdf").apply {
flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
}
val pendingIntent: PendingIntent =
PendingIntent.getActivity(applicationContext, 0, intent, 0)
val taskStackBuilder = TaskStackBuilder.create(applicationContext)
taskStackBuilder.addParentStack(MainActivity::class.java)
taskStackBuilder.addNextIntent(mainIntent)
taskStackBuilder.addNextIntent(viewIntent)
val pendingIntent = taskStackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT)
val builder = NotificationCompat.Builder(applicationContext, CHANNEL_ID)
.setSmallIcon(R.drawable.ic_notification)