Fix Settings crash when clicks Notifications am: 2790889921

Change-Id: I3449fd3cc7fe1473d3fbbd0adc7b5e31b9ec2bae
This commit is contained in:
Automerger Merge Worker
2019-12-12 10:03:05 +00:00
2 changed files with 12 additions and 12 deletions

View File

@@ -63,6 +63,7 @@ public class FaceSettings extends DashboardFragment {
private FaceSettingsAttentionPreferenceController mAttentionController; private FaceSettingsAttentionPreferenceController mAttentionController;
private FaceSettingsRemoveButtonPreferenceController mRemoveController; private FaceSettingsRemoveButtonPreferenceController mRemoveController;
private FaceSettingsEnrollButtonPreferenceController mEnrollController; private FaceSettingsEnrollButtonPreferenceController mEnrollController;
private FaceSettingsLockscreenBypassPreferenceController mLockscreenController;
private List<AbstractPreferenceController> mControllers; private List<AbstractPreferenceController> mControllers;
private List<Preference> mTogglePreferences; private List<Preference> mTogglePreferences;
@@ -129,7 +130,7 @@ public class FaceSettings extends DashboardFragment {
Preference attentionPref = findPreference(FaceSettingsAttentionPreferenceController.KEY); Preference attentionPref = findPreference(FaceSettingsAttentionPreferenceController.KEY);
Preference confirmPref = findPreference(FaceSettingsConfirmPreferenceController.KEY); Preference confirmPref = findPreference(FaceSettingsConfirmPreferenceController.KEY);
Preference bypassPref = Preference bypassPref =
findPreference(FaceSettingsLockscreenBypassPreferenceController.KEY); findPreference(mLockscreenController.getPreferenceKey());
mTogglePreferences = new ArrayList<>( mTogglePreferences = new ArrayList<>(
Arrays.asList(keyguardPref, appPref, attentionPref, confirmPref, bypassPref)); Arrays.asList(keyguardPref, appPref, attentionPref, confirmPref, bypassPref));
@@ -138,12 +139,10 @@ public class FaceSettings extends DashboardFragment {
// There is no better way to do this :/ // There is no better way to do this :/
for (AbstractPreferenceController controller : mControllers) { for (AbstractPreferenceController controller : mControllers) {
if (controller instanceof FaceSettingsPreferenceController) { if (controller instanceof FaceSettingsPreferenceController) {
((FaceSettingsPreferenceController) controller).setUserId(mUserId); ((FaceSettingsPreferenceController) controller).setUserId(mUserId);
} else if (controller instanceof FaceSettingsEnrollButtonPreferenceController) { } else if (controller instanceof FaceSettingsEnrollButtonPreferenceController) {
((FaceSettingsEnrollButtonPreferenceController) controller).setUserId(mUserId); ((FaceSettingsEnrollButtonPreferenceController) controller).setUserId(mUserId);
} else if (controller instanceof FaceSettingsLockscreenBypassPreferenceController) {
((FaceSettingsLockscreenBypassPreferenceController) controller).setUserId(mUserId);
} }
} }
mRemoveController.setUserId(mUserId); mRemoveController.setUserId(mUserId);
@@ -151,7 +150,7 @@ public class FaceSettings extends DashboardFragment {
// Don't show keyguard controller for work profile settings. // Don't show keyguard controller for work profile settings.
if (mUserManager.isManagedProfile(mUserId)) { if (mUserManager.isManagedProfile(mUserId)) {
removePreference(FaceSettingsKeyguardPreferenceController.KEY); removePreference(FaceSettingsKeyguardPreferenceController.KEY);
removePreference(FaceSettingsLockscreenBypassPreferenceController.KEY); removePreference(mLockscreenController.getPreferenceKey());
} }
if (savedInstanceState != null) { if (savedInstanceState != null) {
@@ -159,6 +158,14 @@ public class FaceSettings extends DashboardFragment {
} }
} }
@Override
public void onAttach(Context context) {
super.onAttach(context);
mLockscreenController = use(FaceSettingsLockscreenBypassPreferenceController.class);
mLockscreenController.setUserId(mUserId);
}
@Override @Override
public void onResume() { public void onResume() {
super.onResume(); super.onResume();
@@ -263,7 +270,6 @@ public class FaceSettings extends DashboardFragment {
final List<AbstractPreferenceController> controllers = new ArrayList<>(); final List<AbstractPreferenceController> controllers = new ArrayList<>();
controllers.add(new FaceSettingsVideoPreferenceController(context)); controllers.add(new FaceSettingsVideoPreferenceController(context));
controllers.add(new FaceSettingsKeyguardPreferenceController(context)); controllers.add(new FaceSettingsKeyguardPreferenceController(context));
controllers.add(new FaceSettingsLockscreenBypassPreferenceController(context));
controllers.add(new FaceSettingsAppPreferenceController(context)); controllers.add(new FaceSettingsAppPreferenceController(context));
controllers.add(new FaceSettingsAttentionPreferenceController(context)); controllers.add(new FaceSettingsAttentionPreferenceController(context));
controllers.add(new FaceSettingsRemoveButtonPreferenceController(context)); controllers.add(new FaceSettingsRemoveButtonPreferenceController(context));

View File

@@ -30,16 +30,10 @@ import com.android.internal.annotations.VisibleForTesting;
public class FaceSettingsLockscreenBypassPreferenceController public class FaceSettingsLockscreenBypassPreferenceController
extends FaceSettingsPreferenceController { extends FaceSettingsPreferenceController {
static final String KEY = "security_lockscreen_bypass";
@VisibleForTesting @VisibleForTesting
protected FaceManager mFaceManager; protected FaceManager mFaceManager;
private UserManager mUserManager; private UserManager mUserManager;
public FaceSettingsLockscreenBypassPreferenceController(Context context) {
this(context, KEY);
}
public FaceSettingsLockscreenBypassPreferenceController(Context context, String preferenceKey) { public FaceSettingsLockscreenBypassPreferenceController(Context context, String preferenceKey) {
super(context, preferenceKey); super(context, preferenceKey);
if (context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_FACE)) { if (context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_FACE)) {