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

Commit 03d32ddb authored by Sunny Goyal's avatar Sunny Goyal
Browse files

Fixing overview scrim not initialized properly when launcher starts

State UI depends on visible content, which can change due to predicitons.
Reapplying the state whenever then happens ensures that we are in correct
start UI

Change-Id: I9f195a92b747fda8a5b217dc960f230d7a695255
parent f36e5e00
Loading
Loading
Loading
Loading
+6 −16
Original line number Diff line number Diff line
@@ -164,13 +164,6 @@ public class PredictionRowView extends LinearLayout implements
        mParent = parent;
    }

    private void setPredictionsEnabled(boolean predictionsEnabled) {
        if (predictionsEnabled != mPredictionsEnabled) {
            mPredictionsEnabled = predictionsEnabled;
            updateVisibility();
        }
    }

    private void updateVisibility() {
        setVisibility(mPredictionsEnabled ? VISIBLE : GONE);
    }
@@ -220,8 +213,7 @@ public class PredictionRowView extends LinearLayout implements
     * If the number of predicted apps is the same as the previous list of predicted apps,
     * we can optimize by swapping them in place.
     */
    public void setPredictedApps(boolean predictionsEnabled, List<ComponentKeyMapper> apps) {
        setPredictionsEnabled(predictionsEnabled);
    public void setPredictedApps(List<ComponentKeyMapper> apps) {
        mPredictedAppComponents.clear();
        mPredictedAppComponents.addAll(apps);

@@ -237,11 +229,6 @@ public class PredictionRowView extends LinearLayout implements
    }

    private void applyPredictionApps() {
        if (!mPredictionsEnabled) {
            mParent.onHeightUpdated();
            return;
        }

        if (getChildCount() != mNumPredictedAppsPerRow) {
            while (getChildCount() > mNumPredictedAppsPerRow) {
                removeViewAt(0);
@@ -282,8 +269,11 @@ public class PredictionRowView extends LinearLayout implements
            }
        }

        if (predictionCount == 0) {
            setPredictionsEnabled(false);
        boolean predictionsEnabled = predictionCount > 0;
        if (predictionsEnabled != mPredictionsEnabled) {
            mPredictionsEnabled = predictionsEnabled;
            mLauncher.reapplyUi();
            updateVisibility();
        }
        mParent.onHeightUpdated();
    }
+1 −7
Original line number Diff line number Diff line
@@ -177,16 +177,10 @@ public class PredictionUiStateManager implements OnGlobalLayoutListener, ItemInf
    }

    private void applyState(PredictionState state) {
        boolean wasEnabled = mCurrentState.isEnabled;
        mCurrentState = state;
        if (mAppsView != null) {
            mAppsView.getFloatingHeaderView().findFixedRowByType(PredictionRowView.class)
                    .setPredictedApps(mCurrentState.isEnabled, mCurrentState.apps);

            if (wasEnabled != mCurrentState.isEnabled) {
                // Reapply state as the State UI might have changed.
                Launcher.getLauncher(mAppsView.getContext()).getStateManager().reapplyState(true);
            }
                    .setPredictedApps(mCurrentState.apps);
        }
    }