Disable SetupRedactionInterstitial when complete
When RedactionInterstitial is complete, there is no need to show the
SetupRedactionInterstitial as optional step anymore. Disable it via
package manager when RedactionInterstatial completes.
Test: Manual
Bug: 36696006
Change-Id: I3fd421d6a8a0d24d7ebbe8c1e688a10e00067f2f
diff --git a/src/com/android/settings/SetupChooseLockGeneric.java b/src/com/android/settings/SetupChooseLockGeneric.java
index 61545a6..2c8195d 100644
--- a/src/com/android/settings/SetupChooseLockGeneric.java
+++ b/src/com/android/settings/SetupChooseLockGeneric.java
@@ -17,10 +17,8 @@
package com.android.settings;
import android.app.admin.DevicePolicyManager;
-import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
-import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.os.Bundle;
import android.os.UserHandle;
@@ -120,12 +118,6 @@
data.putExtra(EXTRA_PASSWORD_QUALITY,
lockPatternUtils.getKeyguardStoredPasswordQuality(UserHandle.myUserId()));
- PackageManager packageManager = getPackageManager();
- ComponentName componentName = new ComponentName("com.android.settings",
- "com.android.settings.SetupRedactionInterstitial");
- packageManager.setComponentEnabledSetting(componentName,
- PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
- PackageManager.DONT_KILL_APP);
super.onActivityResult(requestCode, resultCode, data);
}
// If the started activity was cancelled (e.g. the user presses back), then this
diff --git a/src/com/android/settings/SetupChooseLockPassword.java b/src/com/android/settings/SetupChooseLockPassword.java
index f0a9a26..f2c24d0 100644
--- a/src/com/android/settings/SetupChooseLockPassword.java
+++ b/src/com/android/settings/SetupChooseLockPassword.java
@@ -87,6 +87,9 @@
@Override
protected Intent getRedactionInterstitialIntent(Context context) {
+ // Setup wizard's redaction interstitial is deferred to optional step. Enable that
+ // optional step if the lock screen was set up.
+ SetupRedactionInterstitial.setEnabled(context, true);
return null;
}
}
diff --git a/src/com/android/settings/SetupChooseLockPattern.java b/src/com/android/settings/SetupChooseLockPattern.java
index 09b951e..30a3c7c 100644
--- a/src/com/android/settings/SetupChooseLockPattern.java
+++ b/src/com/android/settings/SetupChooseLockPattern.java
@@ -73,6 +73,9 @@
@Override
protected Intent getRedactionInterstitialIntent(Context context) {
+ // Setup wizard's redaction interstitial is deferred to optional step. Enable that
+ // optional step if the lock screen was set up.
+ SetupRedactionInterstitial.setEnabled(context, false);
return null;
}
}
diff --git a/src/com/android/settings/SetupRedactionInterstitial.java b/src/com/android/settings/SetupRedactionInterstitial.java
index d527585..321040e 100644
--- a/src/com/android/settings/SetupRedactionInterstitial.java
+++ b/src/com/android/settings/SetupRedactionInterstitial.java
@@ -16,11 +16,11 @@
package com.android.settings;
+import android.content.ComponentName;
+import android.content.Context;
import android.content.Intent;
+import android.content.pm.PackageManager;
import android.content.res.Resources;
-import android.os.Bundle;
-import android.view.View;
-import android.widget.Button;
import com.android.settings.notification.RedactionInterstitial;
@@ -33,6 +33,20 @@
*/
public class SetupRedactionInterstitial extends RedactionInterstitial {
+ /**
+ * Set the enabled state of SetupRedactionInterstitial activity to configure whether it is shown
+ * as part of setup wizard's optional steps.
+ */
+ public static void setEnabled(Context context, boolean enabled) {
+ PackageManager packageManager = context.getPackageManager();
+ ComponentName componentName = new ComponentName(context, SetupRedactionInterstitial.class);
+ packageManager.setComponentEnabledSetting(
+ componentName,
+ enabled ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED
+ : PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
+ PackageManager.DONT_KILL_APP);
+ }
+
@Override
public Intent getIntent() {
Intent modIntent = new Intent(super.getIntent());
diff --git a/src/com/android/settings/notification/RedactionInterstitial.java b/src/com/android/settings/notification/RedactionInterstitial.java
index 08474a0..b269062 100644
--- a/src/com/android/settings/notification/RedactionInterstitial.java
+++ b/src/com/android/settings/notification/RedactionInterstitial.java
@@ -16,7 +16,11 @@
package com.android.settings.notification;
-import android.app.admin.DevicePolicyManager;
+import static android.app.admin.DevicePolicyManager.KEYGUARD_DISABLE_SECURE_NOTIFICATIONS;
+import static android.app.admin.DevicePolicyManager.KEYGUARD_DISABLE_UNREDACTED_NOTIFICATIONS;
+
+import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
+
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
@@ -26,7 +30,6 @@
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
-import android.widget.CompoundButton;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
@@ -34,18 +37,13 @@
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
-import com.android.settings.RestrictedCheckBox;
import com.android.settings.RestrictedRadioButton;
import com.android.settings.SettingsActivity;
import com.android.settings.SettingsPreferenceFragment;
+import com.android.settings.SetupRedactionInterstitial;
import com.android.settings.Utils;
import com.android.settingslib.RestrictedLockUtils;
-import static android.app.admin.DevicePolicyManager.KEYGUARD_DISABLE_SECURE_NOTIFICATIONS;
-import static android.app.admin.DevicePolicyManager.KEYGUARD_DISABLE_UNREDACTED_NOTIFICATIONS;
-
-import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
-
public class RedactionInterstitial extends SettingsActivity {
@Override
@@ -128,6 +126,7 @@
@Override
public void onClick(View v) {
if (v.getId() == R.id.redaction_done_button) {
+ SetupRedactionInterstitial.setEnabled(getContext(), false);
final RedactionInterstitial activity = (RedactionInterstitial) getActivity();
if (activity != null) {
activity.setResult(RESULT_OK, null);