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

Commit 79be2caf authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add scrim under status bar and above thumbnails." into ub-launcher3-qt-dev

parents 6a2c5850 e659758f
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -52,11 +52,18 @@ public class OverviewState extends LauncherState {
    public void onStateEnabled(Launcher launcher) {
        IconRecentsView recentsView = launcher.getOverviewPanel();
        recentsView.onBeginTransitionToOverview();
        recentsView.setShowStatusBarForegroundScrim(true);
        // Request orientation be set to unspecified, letting the system decide the best
        // orientation.
        launcher.getRotationHelper().setCurrentStateRequest(REQUEST_ROTATE);
    }

    @Override
    public void onStateDisabled(Launcher launcher) {
        IconRecentsView recentsView = launcher.getOverviewPanel();
        recentsView.setShowStatusBarForegroundScrim(false);
    }

    @Override
    public PageAlphaProvider getWorkspacePageAlphaProvider(Launcher launcher) {
        return new PageAlphaProvider(DEACCEL_2) {
+1 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ public final class RecentsActivity extends BaseRecentsActivity {
        mRecentsRootView = findViewById(R.id.drag_layer);
        mIconRecentsView = findViewById(R.id.overview_panel);
        mIconRecentsView.setRecentsToActivityHelper(new FallbackRecentsToActivityHelper(this));
        mIconRecentsView.setShowStatusBarForegroundScrim(true);
    }

    @Override
+22 −1
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ import android.animation.ValueAnimator;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.util.ArraySet;
import android.util.AttributeSet;
import android.util.FloatProperty;
@@ -54,6 +55,7 @@ import androidx.recyclerview.widget.RecyclerView.OnChildAttachStateChangeListene
import com.android.launcher3.BaseActivity;
import com.android.launcher3.Insettable;
import com.android.launcher3.R;
import com.android.launcher3.util.Themes;
import com.android.quickstep.ContentFillItemAnimator;
import com.android.quickstep.RecentsModel;
import com.android.quickstep.RecentsToActivityHelper;
@@ -114,6 +116,8 @@ public final class IconRecentsView extends FrameLayout implements Insettable {
    private final DefaultItemAnimator mDefaultItemAnimator = new DefaultItemAnimator();
    private final ContentFillItemAnimator mLoadingContentItemAnimator =
            new ContentFillItemAnimator();
    private final BaseActivity mActivity;
    private final Drawable mStatusBarForegroundScrim;

    private RecentsToActivityHelper mActivityHelper;
    private RecyclerView mTaskRecyclerView;
@@ -143,8 +147,10 @@ public final class IconRecentsView extends FrameLayout implements Insettable {

    public IconRecentsView(Context context, AttributeSet attrs) {
        super(context, attrs);
        BaseActivity activity = BaseActivity.fromContext(context);
        mActivity = BaseActivity.fromContext(context);
        mContext = context;
        mStatusBarForegroundScrim  =
                Themes.getAttrDrawable(mContext, R.attr.workspaceStatusBarScrim);
        mTaskLoader = new TaskListLoader(mContext);
        mTaskAdapter = new TaskAdapter(mTaskLoader);
        mTaskAdapter.setOnClearAllClickListener(view -> animateClearAllTasks());
@@ -338,6 +344,21 @@ public final class IconRecentsView extends FrameLayout implements Insettable {
        mTaskActionController.launchTask(taskToLaunch);
    }

    /**
     * Set whether or not to show the scrim in between the view and the top insets. This only works
     * if the view is being insetted in the first place.
     *
     * The scrim is added to the activity's root view to prevent animations on this view
     * affecting the scrim. As a result, it is the activity's responsibility to show/hide this
     * scrim as appropriate.
     *
     * @param showStatusBarForegroundScrim true to show the scrim, false to hide
     */
    public void setShowStatusBarForegroundScrim(boolean showStatusBarForegroundScrim) {
        boolean shouldShow = mInsets.top != 0 && showStatusBarForegroundScrim;
        mActivity.getDragLayer().setForeground(shouldShow ? mStatusBarForegroundScrim : null);
    }

    /**
     * Get the bottom most thumbnail view to animate to.
     *