Ask device owner for master clear in demo mode

Bug: 62712426
Test: make RunSettingsRoboTests -j19
Change-Id: I29f92ff1062590f2c5eb7713e5969da7870fc582
diff --git a/src/com/android/settings/MasterClear.java b/src/com/android/settings/MasterClear.java
index 96ce17e..2c97018 100644
--- a/src/com/android/settings/MasterClear.java
+++ b/src/com/android/settings/MasterClear.java
@@ -144,10 +144,10 @@
         public void onClick(View view) {
             final Context context = view.getContext();
             if (Utils.isDemoUser(context)) {
-                final String packageName = Utils.getDemoModePackageName(context);
-                if (!TextUtils.isEmpty(packageName)) {
+                final ComponentName componentName = Utils.getDeviceOwnerComponent(context);
+                if (componentName != null) {
                     final Intent requestFactoryReset = new Intent()
-                            .setPackage(packageName)
+                            .setPackage(componentName.getPackageName())
                             .setAction(Intent.ACTION_FACTORY_RESET);
                     context.startActivity(requestFactoryReset);
                 }
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index cfddf56..2a57577 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -1249,8 +1249,10 @@
         return UserManager.isDeviceInDemoMode(context) && getUserManager(context).isDemoUser();
     }
 
-    public static String getDemoModePackageName(Context context) {
-        return context.getString(com.android.internal.R.string.config_demoModePackage);
+    public static ComponentName getDeviceOwnerComponent(Context context) {
+        final DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(
+                Context.DEVICE_POLICY_SERVICE);
+        return dpm.getDeviceOwnerComponentOnAnyUser();
     }
 
     /**