Merge "Repost PageAgnostic mode notification when dismissed" into main

This commit is contained in:
Treehugger Robot
2024-07-09 17:27:16 +00:00
committed by Gerrit Code Review
2 changed files with 25 additions and 13 deletions

View File

@@ -28,17 +28,17 @@ public class Enable16KBootReceiver extends BroadcastReceiver {
@Override
public void onReceive(@NonNull Context context, @NonNull Intent intent) {
String action = intent.getAction();
if (!Intent.ACTION_BOOT_COMPLETED.equals(action)) {
return;
}
if (Intent.ACTION_BOOT_COMPLETED.equals(action)
|| PageAgnosticNotificationService.INTENT_ACTION_DISMISSED.equals(action)) {
// Do nothing if device is not in page-agnostic mode
if (!Enable16kUtils.isPageAgnosticModeOn(context)) {
return;
}
// Do nothing if device is not in page-agnostic mode
if (!Enable16kUtils.isPageAgnosticModeOn(context)) {
return;
// start a service to post persistent notification
Intent startServiceIntent = new Intent(context, PageAgnosticNotificationService.class);
startServiceIntent.setAction(action);
context.startServiceAsUser(startServiceIntent, UserHandle.SYSTEM);
}
// start a service to post persistent notification
Intent startNotificationIntent = new Intent(context, PageAgnosticNotificationService.class);
context.startServiceAsUser(startNotificationIntent, UserHandle.SYSTEM);
}
}

View File

@@ -34,6 +34,8 @@ public class PageAgnosticNotificationService extends Service {
private static final String NOTIFICATION_CHANNEL_ID =
"com.android.settings.development.PageAgnosticNotificationService";
public static final String INTENT_ACTION_DISMISSED =
"com.android.settings.development.NOTIFICATION_DISMISSED";
private static final int NOTIFICATION_ID = 1;
static final int DISABLE_UPDATES_SETTING = 1;
@@ -63,6 +65,9 @@ public class PageAgnosticNotificationService extends Service {
public void onCreate() {
super.onCreate();
createNotificationChannel();
// No updates should be allowed in page-agnostic mode
disableAutomaticUpdates();
}
private Notification buildNotification() {
@@ -89,6 +94,15 @@ public class PageAgnosticNotificationService extends Service {
notifyIntent,
PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
Intent dismissIntent = new Intent(this, Enable16KBootReceiver.class);
dismissIntent.setAction(INTENT_ACTION_DISMISSED);
PendingIntent dismissPendingIntent =
PendingIntent.getBroadcast(
this.getApplicationContext(),
0,
dismissIntent,
PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
Notification.Action action =
new Notification.Action.Builder(
R.drawable.empty_icon,
@@ -104,6 +118,7 @@ public class PageAgnosticNotificationService extends Service {
.setOngoing(true)
.setSmallIcon(R.drawable.ic_settings_24dp)
.setContentIntent(notifyPendingIntent)
.setDeleteIntent(dismissPendingIntent)
.addAction(action);
return builder.build();
@@ -131,9 +146,6 @@ public class PageAgnosticNotificationService extends Service {
if (mNotificationManager != null) {
mNotificationManager.notify(NOTIFICATION_ID, notification);
}
// No updates should be allowed in page-agnostic mode
disableAutomaticUpdates();
return Service.START_REDELIVER_INTENT;
}
}