Disable factory reset in DSU mode

Bug: 302317901
Bug: 316578327
Test: build
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:5f8f7f93f3b5b1726b2d49a51f25b2bb2f4c0ee9)
Merged-In: I485eb6ac7beec0893d91ca5fe8ad88ecd96a5cbe
Change-Id: I485eb6ac7beec0893d91ca5fe8ad88ecd96a5cbe
diff --git a/src/com/android/settings/MainClear.java b/src/com/android/settings/MainClear.java
index f706c78..07888c6 100644
--- a/src/com/android/settings/MainClear.java
+++ b/src/com/android/settings/MainClear.java
@@ -26,11 +26,13 @@
 import android.accounts.AuthenticatorDescription;
 import android.app.ActionBar;
 import android.app.Activity;
+import android.app.AlertDialog;
 import android.app.admin.DevicePolicyManager;
 import android.app.settings.SettingsEnums;
 import android.content.ComponentName;
 import android.content.ContentResolver;
 import android.content.Context;
+import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
@@ -43,6 +45,7 @@
 import android.os.SystemProperties;
 import android.os.UserHandle;
 import android.os.UserManager;
+import android.os.image.DynamicSystemManager;
 import android.provider.Settings;
 import android.telephony.euicc.EuiccManager;
 import android.text.TextUtils;
@@ -266,6 +269,19 @@
                 return;
             }
 
+            final DynamicSystemManager dsuManager = (DynamicSystemManager)
+                    getActivity().getSystemService(Context.DYNAMIC_SYSTEM_SERVICE);
+            if (dsuManager.isInUse()) {
+                AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+                builder.setTitle(R.string.dsu_is_running);
+                builder.setPositiveButton(R.string.okay, new DialogInterface.OnClickListener() {
+                    public void onClick(DialogInterface dialog, int id) {}
+                });
+                AlertDialog dsuAlertdialog = builder.create();
+                dsuAlertdialog.show();
+                return;
+            }
+
             if (runKeyguardConfirmation(KEYGUARD_REQUEST)) {
                 return;
             }