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:
@@ -126,7 +126,6 @@ public abstract class BasePreferenceController extends AbstractPreferenceControl
|
||||
@Nullable
|
||||
private UserHandle mWorkProfileUser;
|
||||
private int mMetricsCategory;
|
||||
private boolean mIsFirstLaunch;
|
||||
private boolean mPrefVisibility;
|
||||
|
||||
/**
|
||||
@@ -198,7 +197,6 @@ public abstract class BasePreferenceController extends AbstractPreferenceControl
|
||||
public BasePreferenceController(Context context, String preferenceKey) {
|
||||
super(context);
|
||||
mPreferenceKey = preferenceKey;
|
||||
mIsFirstLaunch = true;
|
||||
mPrefVisibility = true;
|
||||
if (TextUtils.isEmpty(mPreferenceKey)) {
|
||||
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
|
||||
* {@link Preference} is clicked. Otherwise just forward it to the super class.
|
||||
@@ -454,7 +445,7 @@ public abstract class BasePreferenceController extends AbstractPreferenceControl
|
||||
* preference visibility.
|
||||
*/
|
||||
protected void updatePreferenceVisibilityDelegate(Preference preference, boolean isVisible) {
|
||||
if (mUiBlockerFinished || !mIsFirstLaunch) {
|
||||
if (mUiBlockerFinished) {
|
||||
preference.setVisible(isVisible);
|
||||
return;
|
||||
}
|
||||
|
@@ -132,17 +132,22 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
|
||||
@VisibleForTesting
|
||||
void checkUiBlocker(List<AbstractPreferenceController> controllers) {
|
||||
final List<String> keys = new ArrayList<>();
|
||||
final List<BasePreferenceController> baseControllers = new ArrayList<>();
|
||||
controllers.forEach(controller -> {
|
||||
if (controller instanceof BasePreferenceController.UiBlocker
|
||||
&& controller.isAvailable()) {
|
||||
((BasePreferenceController) controller).setUiBlockListener(this);
|
||||
keys.add(controller.getPreferenceKey());
|
||||
baseControllers.add((BasePreferenceController) controller);
|
||||
}
|
||||
});
|
||||
|
||||
if (!keys.isEmpty()) {
|
||||
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;
|
||||
}
|
||||
mControllers.forEach(controller -> {
|
||||
if (controller instanceof BasePreferenceController.UiBlocker) {
|
||||
((BasePreferenceController) controller).revokeFirstLaunch();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Reference in New Issue
Block a user