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

View File

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