Merge "Don't show notifications for locked slots" into main

This commit is contained in:
Chun-Wei Wang
2023-07-13 01:46:20 +00:00
committed by Gerrit Code Review

View File

@@ -419,12 +419,20 @@ public class DynamicSystemInstallationService extends Service
mDynSystem.remove(); mDynSystem.remove();
} }
private boolean isDsuSlotLocked() {
// Slot names ending with ".lock" are a customized installation.
// We expect the client app to provide custom UI to enter/exit DSU mode.
// We will ignore the ACTION_REBOOT_TO_NORMAL command and will not show
// notifications in this case.
return mDynSystem.getActiveDsuSlot().endsWith(".lock");
}
private void executeRebootToNormalCommand() { private void executeRebootToNormalCommand() {
if (!isInDynamicSystem()) { if (!isInDynamicSystem()) {
Log.e(TAG, "It's already running in normal system."); Log.e(TAG, "It's already running in normal system.");
return; return;
} }
if (mDynSystem.getActiveDsuSlot().endsWith(".lock")) { if (isDsuSlotLocked()) {
Log.e(TAG, "Ignore the reboot intent for a locked DSU slot"); Log.e(TAG, "Ignore the reboot intent for a locked DSU slot");
return; return;
} }
@@ -449,13 +457,13 @@ public class DynamicSystemInstallationService extends Service
private void executeNotifyIfInUseCommand() { private void executeNotifyIfInUseCommand() {
switch (getStatus()) { switch (getStatus()) {
case STATUS_IN_USE: case STATUS_IN_USE:
if (!mHideNotification) { if (!mHideNotification && !isDsuSlotLocked()) {
startForeground(NOTIFICATION_ID, startForeground(NOTIFICATION_ID,
buildNotification(STATUS_IN_USE, CAUSE_NOT_SPECIFIED)); buildNotification(STATUS_IN_USE, CAUSE_NOT_SPECIFIED));
} }
break; break;
case STATUS_READY: case STATUS_READY:
if (!mHideNotification) { if (!mHideNotification && !isDsuSlotLocked()) {
startForeground(NOTIFICATION_ID, startForeground(NOTIFICATION_ID,
buildNotification(STATUS_READY, CAUSE_NOT_SPECIFIED)); buildNotification(STATUS_READY, CAUSE_NOT_SPECIFIED));
} }