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
This commit is contained in:
Maurice Lam
2017-03-30 16:18:08 -07:00
parent 82e2239c54
commit 957fc67af2
5 changed files with 30 additions and 19 deletions

View File

@@ -17,10 +17,8 @@
package com.android.settings; package com.android.settings;
import android.app.admin.DevicePolicyManager; import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.res.Resources; import android.content.res.Resources;
import android.os.Bundle; import android.os.Bundle;
import android.os.UserHandle; import android.os.UserHandle;
@@ -120,12 +118,6 @@ public class SetupChooseLockGeneric extends ChooseLockGeneric {
data.putExtra(EXTRA_PASSWORD_QUALITY, data.putExtra(EXTRA_PASSWORD_QUALITY,
lockPatternUtils.getKeyguardStoredPasswordQuality(UserHandle.myUserId())); 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); super.onActivityResult(requestCode, resultCode, data);
} }
// If the started activity was cancelled (e.g. the user presses back), then this // If the started activity was cancelled (e.g. the user presses back), then this

View File

@@ -87,6 +87,9 @@ public class SetupChooseLockPassword extends ChooseLockPassword {
@Override @Override
protected Intent getRedactionInterstitialIntent(Context context) { 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; return null;
} }
} }

View File

@@ -73,6 +73,9 @@ public class SetupChooseLockPattern extends ChooseLockPattern {
@Override @Override
protected Intent getRedactionInterstitialIntent(Context context) { 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; return null;
} }
} }

View File

@@ -16,11 +16,11 @@
package com.android.settings; package com.android.settings;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.res.Resources; import android.content.res.Resources;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import com.android.settings.notification.RedactionInterstitial; import com.android.settings.notification.RedactionInterstitial;
@@ -33,6 +33,20 @@ import com.android.settings.notification.RedactionInterstitial;
*/ */
public class SetupRedactionInterstitial extends RedactionInterstitial { 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 @Override
public Intent getIntent() { public Intent getIntent() {
Intent modIntent = new Intent(super.getIntent()); Intent modIntent = new Intent(super.getIntent());

View File

@@ -16,7 +16,11 @@
package com.android.settings.notification; 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.Context;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
@@ -26,7 +30,6 @@ import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.Button; import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.RadioButton; import android.widget.RadioButton;
import android.widget.RadioGroup; import android.widget.RadioGroup;
@@ -34,18 +37,13 @@ import android.widget.TextView;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.RestrictedCheckBox;
import com.android.settings.RestrictedRadioButton; import com.android.settings.RestrictedRadioButton;
import com.android.settings.SettingsActivity; import com.android.settings.SettingsActivity;
import com.android.settings.SettingsPreferenceFragment; import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.SetupRedactionInterstitial;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settingslib.RestrictedLockUtils; 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 { public class RedactionInterstitial extends SettingsActivity {
@Override @Override
@@ -128,6 +126,7 @@ public class RedactionInterstitial extends SettingsActivity {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if (v.getId() == R.id.redaction_done_button) { if (v.getId() == R.id.redaction_done_button) {
SetupRedactionInterstitial.setEnabled(getContext(), false);
final RedactionInterstitial activity = (RedactionInterstitial) getActivity(); final RedactionInterstitial activity = (RedactionInterstitial) getActivity();
if (activity != null) { if (activity != null) {
activity.setResult(RESULT_OK, null); activity.setResult(RESULT_OK, null);