mirror of
https://github.com/Matte23/circolapp.git
synced 2025-12-06 07:29:10 +00:00
Add MainActivity to activities stack when opening a notification
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user