forked from upstream-mirrors/quik
Explicitly define mutability for PendingIntents
This commit is contained in:
@@ -73,7 +73,7 @@ public class DownloadManager {
|
||||
download.putExtra(MmsReceivedReceiver.EXTRA_TRIGGER_PUSH, byPush);
|
||||
download.putExtra(MmsReceivedReceiver.EXTRA_URI, uri);
|
||||
final PendingIntent pendingIntent = PendingIntent.getBroadcast(
|
||||
context, 0, download, PendingIntent.FLAG_CANCEL_CURRENT);
|
||||
context, 0, download, PendingIntent.FLAG_CANCEL_CURRENT | PendingIntent.FLAG_IMMUTABLE);
|
||||
|
||||
final SmsManager smsManager = SmsManagerFactory.INSTANCE.createSmsManager(subscriptionId);
|
||||
Bundle configOverrides = new Bundle();
|
||||
|
||||
@@ -309,7 +309,7 @@ public class RetryScheduler implements Observer {
|
||||
Intent service = new Intent(TransactionService.ACTION_ONALARM,
|
||||
null, context, TransactionService.class);
|
||||
PendingIntent operation = PendingIntent.getService(
|
||||
context, 0, service, PendingIntent.FLAG_ONE_SHOT);
|
||||
context, 0, service, PendingIntent.FLAG_ONE_SHOT | PendingIntent.FLAG_IMMUTABLE);
|
||||
AlarmManager am = (AlarmManager) context.getSystemService(
|
||||
Context.ALARM_SERVICE);
|
||||
am.set(AlarmManager.RTC, retryAt, operation);
|
||||
|
||||
@@ -101,7 +101,7 @@ class Transaction @JvmOverloads constructor(private val context: Context, settin
|
||||
|
||||
sentIntent.putExtra(EXTRA_CONTENT_URI, messageUri.toString())
|
||||
sentIntent.putExtra(EXTRA_FILE_PATH, sendFile.path)
|
||||
val sentPI = PendingIntent.getBroadcast(context, 0, sentIntent, PendingIntent.FLAG_CANCEL_CURRENT)
|
||||
val sentPI = PendingIntent.getBroadcast(context, 0, sentIntent, PendingIntent.FLAG_CANCEL_CURRENT or PendingIntent.FLAG_IMMUTABLE)
|
||||
|
||||
val updatedIntent = Intent(MMS_UPDATED).putExtra("uri", messageUri.toString())
|
||||
BroadcastUtils.addClassName(context, updatedIntent, MMS_UPDATED)
|
||||
|
||||
@@ -29,7 +29,7 @@ class AlarmManagerImpl @Inject constructor(private val context: Context) : Alarm
|
||||
|
||||
override fun getScheduledMessageIntent(id: Long): PendingIntent {
|
||||
val intent = Intent(context, SendScheduledMessageReceiver::class.java).putExtra("id", id)
|
||||
return PendingIntent.getBroadcast(context, id.toInt(), intent, PendingIntent.FLAG_UPDATE_CURRENT)
|
||||
return PendingIntent.getBroadcast(context, id.toInt(), intent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE)
|
||||
}
|
||||
|
||||
override fun setAlarm(date: Long, intent: PendingIntent) {
|
||||
|
||||
@@ -445,13 +445,13 @@ class MessageRepositoryImpl @Inject constructor(
|
||||
|
||||
val sentIntents = parts.map {
|
||||
val intent = Intent(context, SmsSentReceiver::class.java).putExtra("id", message.id)
|
||||
PendingIntent.getBroadcast(context, message.id.toInt(), intent, PendingIntent.FLAG_UPDATE_CURRENT)
|
||||
PendingIntent.getBroadcast(context, message.id.toInt(), intent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE)
|
||||
}
|
||||
|
||||
val deliveredIntents = parts.map {
|
||||
val intent = Intent(context, SmsDeliveredReceiver::class.java).putExtra("id", message.id)
|
||||
val pendingIntent = PendingIntent
|
||||
.getBroadcast(context, message.id.toInt(), intent, PendingIntent.FLAG_UPDATE_CURRENT)
|
||||
.getBroadcast(context, message.id.toInt(), intent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE)
|
||||
if (prefs.delivery.get()) pendingIntent else null
|
||||
}
|
||||
|
||||
@@ -495,7 +495,7 @@ class MessageRepositoryImpl @Inject constructor(
|
||||
|
||||
private fun getIntentForDelayedSms(id: Long): PendingIntent {
|
||||
val intent = Intent(context, SendSmsReceiver::class.java).putExtra("id", id)
|
||||
return PendingIntent.getBroadcast(context, id.toInt(), intent, PendingIntent.FLAG_UPDATE_CURRENT)
|
||||
return PendingIntent.getBroadcast(context, id.toInt(), intent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE)
|
||||
}
|
||||
|
||||
override fun insertSentSms(subId: Int, threadId: Long, address: String, body: String, date: Long): Message {
|
||||
|
||||
@@ -99,11 +99,11 @@ class NightModeManager @Inject constructor(
|
||||
private fun updateAlarms() {
|
||||
val dayCalendar = createCalendar(prefs.nightEnd.get())
|
||||
val day = Intent(context, NightModeReceiver::class.java)
|
||||
val dayIntent = PendingIntent.getBroadcast(context, 0, day, 0)
|
||||
val dayIntent = PendingIntent.getBroadcast(context, 0, day, PendingIntent.FLAG_IMMUTABLE)
|
||||
|
||||
val nightCalendar = createCalendar(prefs.nightStart.get())
|
||||
val night = Intent(context, NightModeReceiver::class.java)
|
||||
val nightIntent = PendingIntent.getBroadcast(context, 1, night, 0)
|
||||
val nightIntent = PendingIntent.getBroadcast(context, 1, night, PendingIntent.FLAG_IMMUTABLE)
|
||||
|
||||
context.sendBroadcast(day)
|
||||
context.sendBroadcast(night)
|
||||
|
||||
@@ -114,11 +114,11 @@ class NotificationManagerImpl @Inject constructor(
|
||||
val taskStackBuilder = TaskStackBuilder.create(context)
|
||||
.addParentStack(ComposeActivity::class.java)
|
||||
.addNextIntent(contentIntent)
|
||||
val contentPI = taskStackBuilder.getPendingIntent(threadId.toInt(), PendingIntent.FLAG_UPDATE_CURRENT)
|
||||
val contentPI = taskStackBuilder.getPendingIntent(threadId.toInt(), PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE)
|
||||
|
||||
val seenIntent = Intent(context, MarkSeenReceiver::class.java).putExtra("threadId", threadId)
|
||||
val seenPI = PendingIntent.getBroadcast(context, threadId.toInt(), seenIntent,
|
||||
PendingIntent.FLAG_UPDATE_CURRENT)
|
||||
PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE)
|
||||
|
||||
// We can't store a null preference, so map it to a null Uri if the pref string is empty
|
||||
val ringtone = prefs.ringtone(threadId).get()
|
||||
@@ -233,7 +233,7 @@ class NotificationManagerImpl @Inject constructor(
|
||||
Preferences.NOTIFICATION_ACTION_ARCHIVE -> {
|
||||
val intent = Intent(context, MarkArchivedReceiver::class.java).putExtra("threadId", threadId)
|
||||
val pi = PendingIntent.getBroadcast(context, threadId.toInt(), intent,
|
||||
PendingIntent.FLAG_UPDATE_CURRENT)
|
||||
PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE)
|
||||
NotificationCompat.Action.Builder(R.drawable.ic_archive_white_24dp, actionLabels[action], pi)
|
||||
.setSemanticAction(NotificationCompat.Action.SEMANTIC_ACTION_ARCHIVE).build()
|
||||
}
|
||||
@@ -244,7 +244,7 @@ class NotificationManagerImpl @Inject constructor(
|
||||
.putExtra("threadId", threadId)
|
||||
.putExtra("messageIds", messageIds)
|
||||
val pi = PendingIntent.getBroadcast(context, threadId.toInt(), intent,
|
||||
PendingIntent.FLAG_UPDATE_CURRENT)
|
||||
PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE)
|
||||
NotificationCompat.Action.Builder(R.drawable.ic_delete_white_24dp, actionLabels[action], pi)
|
||||
.setSemanticAction(NotificationCompat.Action.SEMANTIC_ACTION_DELETE).build()
|
||||
}
|
||||
@@ -252,7 +252,7 @@ class NotificationManagerImpl @Inject constructor(
|
||||
Preferences.NOTIFICATION_ACTION_BLOCK -> {
|
||||
val intent = Intent(context, BlockThreadReceiver::class.java).putExtra("threadId", threadId)
|
||||
val pi = PendingIntent.getBroadcast(context, threadId.toInt(), intent,
|
||||
PendingIntent.FLAG_UPDATE_CURRENT)
|
||||
PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE)
|
||||
NotificationCompat.Action.Builder(R.drawable.ic_block_white_24dp, actionLabels[action], pi)
|
||||
.setSemanticAction(NotificationCompat.Action.SEMANTIC_ACTION_MUTE).build()
|
||||
}
|
||||
@@ -260,7 +260,7 @@ class NotificationManagerImpl @Inject constructor(
|
||||
Preferences.NOTIFICATION_ACTION_READ -> {
|
||||
val intent = Intent(context, MarkReadReceiver::class.java).putExtra("threadId", threadId)
|
||||
val pi = PendingIntent.getBroadcast(context, threadId.toInt(), intent,
|
||||
PendingIntent.FLAG_UPDATE_CURRENT)
|
||||
PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE)
|
||||
NotificationCompat.Action.Builder(R.drawable.ic_check_white_24dp, actionLabels[action], pi)
|
||||
.setSemanticAction(NotificationCompat.Action.SEMANTIC_ACTION_MARK_AS_READ).build()
|
||||
}
|
||||
@@ -271,7 +271,7 @@ class NotificationManagerImpl @Inject constructor(
|
||||
} else {
|
||||
val intent = Intent(context, QkReplyActivity::class.java).putExtra("threadId", threadId)
|
||||
val pi = PendingIntent.getActivity(context, threadId.toInt(), intent,
|
||||
PendingIntent.FLAG_UPDATE_CURRENT)
|
||||
PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE)
|
||||
NotificationCompat.Action
|
||||
.Builder(R.drawable.ic_reply_white_24dp, actionLabels[action], pi)
|
||||
.setSemanticAction(NotificationCompat.Action.SEMANTIC_ACTION_REPLY).build()
|
||||
@@ -283,7 +283,7 @@ class NotificationManagerImpl @Inject constructor(
|
||||
val intentAction = if (permissions.hasCalling()) Intent.ACTION_CALL else Intent.ACTION_DIAL
|
||||
val intent = Intent(intentAction, Uri.parse("tel:$address"))
|
||||
val pi = PendingIntent.getActivity(context, threadId.toInt(), intent,
|
||||
PendingIntent.FLAG_UPDATE_CURRENT)
|
||||
PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE)
|
||||
NotificationCompat.Action.Builder(R.drawable.ic_call_white_24dp, actionLabels[action], pi)
|
||||
.setSemanticAction(NotificationCompat.Action.SEMANTIC_ACTION_CALL).build()
|
||||
}
|
||||
@@ -337,7 +337,7 @@ class NotificationManagerImpl @Inject constructor(
|
||||
val taskStackBuilder = TaskStackBuilder.create(context)
|
||||
.addParentStack(ComposeActivity::class.java)
|
||||
.addNextIntent(contentIntent)
|
||||
val contentPI = taskStackBuilder.getPendingIntent(threadId.toInt(), PendingIntent.FLAG_UPDATE_CURRENT)
|
||||
val contentPI = taskStackBuilder.getPendingIntent(threadId.toInt(), PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE)
|
||||
|
||||
val notification = NotificationCompat.Builder(context, getChannelIdForNotification(threadId))
|
||||
.setContentTitle(context.getString(R.string.notification_message_failed_title))
|
||||
@@ -357,7 +357,7 @@ class NotificationManagerImpl @Inject constructor(
|
||||
private fun getReplyAction(threadId: Long): NotificationCompat.Action {
|
||||
val replyIntent = Intent(context, RemoteMessagingReceiver::class.java).putExtra("threadId", threadId)
|
||||
val replyPI = PendingIntent.getBroadcast(context, threadId.toInt(), replyIntent,
|
||||
PendingIntent.FLAG_UPDATE_CURRENT)
|
||||
PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_MUTABLE)
|
||||
|
||||
val title = context.resources.getStringArray(R.array.notification_actions)[
|
||||
Preferences.NOTIFICATION_ACTION_REPLY]
|
||||
|
||||
@@ -140,17 +140,17 @@ class WidgetProvider : AppWidgetProvider() {
|
||||
|
||||
// Main intent
|
||||
val mainIntent = Intent(context, MainActivity::class.java)
|
||||
val mainPI = PendingIntent.getActivity(context, 0, mainIntent, PendingIntent.FLAG_UPDATE_CURRENT)
|
||||
val mainPI = PendingIntent.getActivity(context, 0, mainIntent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE)
|
||||
remoteViews.setOnClickPendingIntent(R.id.title, mainPI)
|
||||
|
||||
// Compose intent
|
||||
val composeIntent = Intent(context, ComposeActivity::class.java)
|
||||
val composePI = PendingIntent.getActivity(context, 0, composeIntent, PendingIntent.FLAG_UPDATE_CURRENT)
|
||||
val composePI = PendingIntent.getActivity(context, 0, composeIntent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE)
|
||||
remoteViews.setOnClickPendingIntent(R.id.compose, composePI)
|
||||
|
||||
// Conversation intent
|
||||
val startActivityIntent = Intent(context, MainActivity::class.java)
|
||||
val startActivityPendingIntent = PendingIntent.getActivity(context, 0, startActivityIntent, PendingIntent.FLAG_UPDATE_CURRENT)
|
||||
val startActivityPendingIntent = PendingIntent.getActivity(context, 0, startActivityIntent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE)
|
||||
remoteViews.setPendingIntentTemplate(R.id.conversations, startActivityPendingIntent)
|
||||
|
||||
AppWidgetManager.getInstance(context).updateAppWidget(appWidgetId, remoteViews)
|
||||
|
||||
Reference in New Issue
Block a user