Merge "Fix UiBlcoker regression" into tm-dev am: 0f23863e33

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/17799706

Change-Id: I7ecfd7962d090f413c420e44843e64a803afc7fd
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
TreeHugger Robot
2022-04-19 09:33:53 +00:00
committed by Automerger Merge Worker
2 changed files with 7 additions and 16 deletions

View File

@@ -126,7 +126,6 @@ public abstract class BasePreferenceController extends AbstractPreferenceControl
@Nullable @Nullable
private UserHandle mWorkProfileUser; private UserHandle mWorkProfileUser;
private int mMetricsCategory; private int mMetricsCategory;
private boolean mIsFirstLaunch;
private boolean mPrefVisibility; private boolean mPrefVisibility;
/** /**
@@ -198,7 +197,6 @@ public abstract class BasePreferenceController extends AbstractPreferenceControl
public BasePreferenceController(Context context, String preferenceKey) { public BasePreferenceController(Context context, String preferenceKey) {
super(context); super(context);
mPreferenceKey = preferenceKey; mPreferenceKey = preferenceKey;
mIsFirstLaunch = true;
mPrefVisibility = true; mPrefVisibility = true;
if (TextUtils.isEmpty(mPreferenceKey)) { if (TextUtils.isEmpty(mPreferenceKey)) {
throw new IllegalArgumentException("Preference key must be set"); throw new IllegalArgumentException("Preference key must be set");
@@ -331,13 +329,6 @@ public abstract class BasePreferenceController extends AbstractPreferenceControl
} }
} }
/**
* Set back the value of whether this is the first launch.
*/
public void revokeFirstLaunch() {
mIsFirstLaunch = false;
}
/** /**
* Launches the specified fragment for the work profile user if the associated * Launches the specified fragment for the work profile user if the associated
* {@link Preference} is clicked. Otherwise just forward it to the super class. * {@link Preference} is clicked. Otherwise just forward it to the super class.
@@ -454,7 +445,7 @@ public abstract class BasePreferenceController extends AbstractPreferenceControl
* preference visibility. * preference visibility.
*/ */
protected void updatePreferenceVisibilityDelegate(Preference preference, boolean isVisible) { protected void updatePreferenceVisibilityDelegate(Preference preference, boolean isVisible) {
if (mUiBlockerFinished || !mIsFirstLaunch) { if (mUiBlockerFinished) {
preference.setVisible(isVisible); preference.setVisible(isVisible);
return; return;
} }

View File

@@ -132,17 +132,22 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
@VisibleForTesting @VisibleForTesting
void checkUiBlocker(List<AbstractPreferenceController> controllers) { void checkUiBlocker(List<AbstractPreferenceController> controllers) {
final List<String> keys = new ArrayList<>(); final List<String> keys = new ArrayList<>();
final List<BasePreferenceController> baseControllers = new ArrayList<>();
controllers.forEach(controller -> { controllers.forEach(controller -> {
if (controller instanceof BasePreferenceController.UiBlocker if (controller instanceof BasePreferenceController.UiBlocker
&& controller.isAvailable()) { && controller.isAvailable()) {
((BasePreferenceController) controller).setUiBlockListener(this); ((BasePreferenceController) controller).setUiBlockListener(this);
keys.add(controller.getPreferenceKey()); keys.add(controller.getPreferenceKey());
baseControllers.add((BasePreferenceController) controller);
} }
}); });
if (!keys.isEmpty()) { if (!keys.isEmpty()) {
mBlockerController = new UiBlockerController(keys); mBlockerController = new UiBlockerController(keys);
mBlockerController.start(() -> updatePreferenceVisibility(mPreferenceControllers)); mBlockerController.start(() -> {
updatePreferenceVisibility(mPreferenceControllers);
baseControllers.forEach(controller -> controller.setUiBlockerFinished(true));
});
} }
} }
@@ -250,11 +255,6 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
} }
mListeningToCategoryChange = false; mListeningToCategoryChange = false;
} }
mControllers.forEach(controller -> {
if (controller instanceof BasePreferenceController.UiBlocker) {
((BasePreferenceController) controller).revokeFirstLaunch();
}
});
} }
@Override @Override