Merge "Fix UiBlcoker regression" into tm-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
0f23863e33
@@ -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;
|
||||||
}
|
}
|
||||||
|
@@ -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
|
||||||
|
Reference in New Issue
Block a user