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

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2655023

Change-Id: Id84f7ac86262edc1cbd7ea49906a428abdfbd8fe
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Chun-Wei Wang
2023-07-13 02:47:57 +00:00
committed by Automerger Merge Worker

View File

@@ -419,12 +419,20 @@ public class DynamicSystemInstallationService extends Service
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() {
if (!isInDynamicSystem()) {
Log.e(TAG, "It's already running in normal system.");
return;
}
if (mDynSystem.getActiveDsuSlot().endsWith(".lock")) {
if (isDsuSlotLocked()) {
Log.e(TAG, "Ignore the reboot intent for a locked DSU slot");
return;
}
@@ -449,13 +457,13 @@ public class DynamicSystemInstallationService extends Service
private void executeNotifyIfInUseCommand() {
switch (getStatus()) {
case STATUS_IN_USE:
if (!mHideNotification) {
if (!mHideNotification && !isDsuSlotLocked()) {
startForeground(NOTIFICATION_ID,
buildNotification(STATUS_IN_USE, CAUSE_NOT_SPECIFIED));
}
break;
case STATUS_READY:
if (!mHideNotification) {
if (!mHideNotification && !isDsuSlotLocked()) {
startForeground(NOTIFICATION_ID,
buildNotification(STATUS_READY, CAUSE_NOT_SPECIFIED));
}