Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 30fb5348 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

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

parents 9a8167a4 0f23863e
Loading
Loading
Loading
Loading
+1 −10
Original line number Diff line number Diff line
@@ -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;
        }
+6 −6
Original line number Diff line number Diff line
@@ -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