package com.android.launcher3; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Rect; import android.util.AttributeSet; public class LauncherRootView extends InsettableFrameLayout { private final Paint mOpaquePaint; private boolean mDrawRightInsetBar; public LauncherRootView(Context context, AttributeSet attrs) { super(context, attrs); mOpaquePaint = new Paint(Paint.ANTI_ALIAS_FLAG); mOpaquePaint.setColor(Color.BLACK); mOpaquePaint.setStyle(Paint.Style.FILL); } @Override protected boolean fitSystemWindows(Rect insets) { setInsets(insets); mDrawRightInsetBar = mInsets.right > 0 && LauncherAppState .getInstance().getInvariantDeviceProfile().isRightInsetOpaque; return true; // I'll take it from here } @Override protected void dispatchDraw(Canvas canvas) { super.dispatchDraw(canvas); // If the right inset is opaque, draw a black rectangle to ensure that is stays opaque. if (mDrawRightInsetBar) { int width = getWidth(); canvas.drawRect(width - mInsets.right, 0, width, getHeight(), mOpaquePaint); } } }