Fix Intent flags

This commit is contained in:
wchen342
2021-10-23 00:50:12 +03:00
parent 42da3077d8
commit f4144eb050
4 changed files with 21 additions and 10 deletions
@@ -15,6 +15,7 @@ import android.content.Intent;
import android.net.Uri;
import org.chromium.base.ContextUtils;
import org.chromium.base.IntentUtils;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.app.BraveActivity;
import org.chromium.chrome.browser.dialogs.BraveAdsNotificationDialog;
@@ -84,7 +85,8 @@ public class BraveOnboardingNotification extends BroadcastReceiver {
Intent intent = new Intent(context, BraveOnboardingNotification.class);
intent.setAction(DEEP_LINK);
return new PendingIntentProvider(
PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT),
PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT
| IntentUtils.getPendingIntentMutabilityFlag(true)),
0, 0);
}
@@ -22,6 +22,7 @@ import android.provider.Settings;
import androidx.core.app.NotificationCompat;
import org.chromium.base.ContextUtils;
import org.chromium.base.IntentUtils;
import org.chromium.base.task.PostTask;
import org.chromium.base.task.TaskTraits;
import org.chromium.chrome.R;
@@ -139,7 +140,8 @@ public class BraveSetDefaultBrowserNotificationService extends BroadcastReceiver
intent.setAction(DEEP_LINK);
intent.putExtra(DEEP_LINK, SHOW_DEFAULT_APP_SETTINGS);
intent.putExtra(NOTIFICATION_ID_EXTRA, NOTIFICATION_ID);
return PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
return PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT
| IntentUtils.getPendingIntentMutabilityFlag(true));
}
public static PendingIntent getDismissIntent(Context context, int notification_id) {
@@ -147,7 +149,7 @@ public class BraveSetDefaultBrowserNotificationService extends BroadcastReceiver
intent.setAction(CANCEL_NOTIFICATION);
intent.putExtra(NOTIFICATION_ID_EXTRA, notification_id);
return PendingIntent.getBroadcast(context, notification_id, intent, 0);
return PendingIntent.getBroadcast(context, notification_id, intent, 0 | IntentUtils.getPendingIntentMutabilityFlag(true));
}
private boolean hasAskedAt1122() {
@@ -177,8 +179,10 @@ public class BraveSetDefaultBrowserNotificationService extends BroadcastReceiver
Intent intent = new Intent(mContext, BraveSetDefaultBrowserNotificationService.class);
intent.putExtra(INTENT_TYPE, AT_11_22);
intent.setAction(AT_11_22);
am.setExact(AlarmManager.RTC_WAKEUP, currentTime.getTimeInMillis(),
PendingIntent.getBroadcast(mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT));
am.set(AlarmManager.RTC_WAKEUP, currentTime.getTimeInMillis(),
PendingIntent.getBroadcast(mContext, 0, intent,
PendingIntent.FLAG_UPDATE_CURRENT
| IntentUtils.getPendingIntentMutabilityFlag(true)));
}
private void handleBraveSetDefaultBrowserDeepLink(Intent intent) {
@@ -15,6 +15,7 @@ import android.util.Pair;
import androidx.core.app.NotificationCompat;
import org.chromium.base.ContextUtils;
import org.chromium.base.IntentUtils;
import org.chromium.base.Log;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.brave_stats.BraveStatsUtil;
@@ -149,14 +150,16 @@ public class RetentionNotificationUtil {
Intent intent = new Intent(context, RetentionNotificationPublisher.class);
intent.setAction(RetentionNotificationPublisher.RETENTION_NOTIFICATION_ACTION);
intent.putExtra(NOTIFICATION_TYPE, notificationType);
return PendingIntent.getBroadcast(context, getNotificationObject(notificationType).getNotificationId(), intent, PendingIntent.FLAG_UPDATE_CURRENT);
return PendingIntent.getBroadcast(context, getNotificationObject(notificationType).getNotificationId(), intent,
PendingIntent.FLAG_UPDATE_CURRENT | IntentUtils.getPendingIntentMutabilityFlag(true));
}
public static void scheduleNotification(Context context, String notificationType) {
RetentionNotification retentionNotification = getNotificationObject(notificationType);
Intent notificationIntent = new Intent(context, RetentionNotificationPublisher.class);
notificationIntent.putExtra(NOTIFICATION_TYPE, notificationType);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, retentionNotification.getNotificationId(), notificationIntent, 0);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, retentionNotification.getNotificationId(), notificationIntent,
0 | IntentUtils.getPendingIntentMutabilityFlag(true));
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.MINUTE, retentionNotification.getNotificationTime());
@@ -164,7 +167,7 @@ public class RetentionNotificationUtil {
Date date = calendar.getTime();
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
assert alarmManager != null;
alarmManager.setExact(AlarmManager.RTC_WAKEUP, date.getTime(), pendingIntent);
alarmManager.set(AlarmManager.RTC_WAKEUP, date.getTime(), pendingIntent);
}
public static void scheduleNotificationForEverySunday(Context context, String notificationType) {
@@ -180,7 +183,8 @@ public class RetentionNotificationUtil {
Intent notificationIntent = new Intent(context, RetentionNotificationPublisher.class);
notificationIntent.putExtra(NOTIFICATION_TYPE, notificationType);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, retentionNotification.getNotificationId(), notificationIntent, 0);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, retentionNotification.getNotificationId(), notificationIntent,
0 | IntentUtils.getPendingIntentMutabilityFlag(true));
AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
assert am != null;
am.setRepeating(AlarmManager.RTC_WAKEUP, currentDate.getTimeInMillis(), AlarmManager.INTERVAL_DAY * 7, pendingIntent);