Merge "Update bubble bar to match visual spec" into main
This commit is contained in:
committed by
Android (Google) Code Review
commit
3291b85e5e
@@ -18,9 +18,12 @@ package com.android.launcher3.taskbar.bubbles;
|
||||
import static android.view.View.INVISIBLE;
|
||||
import static android.view.View.VISIBLE;
|
||||
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.Point;
|
||||
import android.graphics.Rect;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.util.Log;
|
||||
import android.util.TypedValue;
|
||||
import android.view.Gravity;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
@@ -52,12 +55,13 @@ import java.util.function.Consumer;
|
||||
public class BubbleBarViewController {
|
||||
|
||||
private static final String TAG = BubbleBarViewController.class.getSimpleName();
|
||||
|
||||
private static final float APP_ICON_SMALL_DP = 44f;
|
||||
private static final float APP_ICON_MEDIUM_DP = 48f;
|
||||
private static final float APP_ICON_LARGE_DP = 52f;
|
||||
private final SystemUiProxy mSystemUiProxy;
|
||||
private final TaskbarActivityContext mActivity;
|
||||
private final BubbleBarView mBarView;
|
||||
private final int mIconSize;
|
||||
private final int mPointerSize;
|
||||
private int mIconSize;
|
||||
|
||||
// Initialized in init.
|
||||
private BubbleStashController mBubbleStashController;
|
||||
@@ -96,9 +100,8 @@ public class BubbleBarViewController {
|
||||
mSystemUiProxy = SystemUiProxy.INSTANCE.get(mActivity);
|
||||
mBubbleBarAlpha = new MultiValueAlpha(mBarView, 1 /* num alpha channels */);
|
||||
mBubbleBarAlpha.setUpdateVisibility(true);
|
||||
mIconSize = activity.getResources().getDimensionPixelSize(R.dimen.bubblebar_icon_size);
|
||||
mPointerSize = activity.getResources().getDimensionPixelSize(
|
||||
R.dimen.bubblebar_pointer_size);
|
||||
mIconSize = activity.getResources().getDimensionPixelSize(
|
||||
R.dimen.bubblebar_icon_size);
|
||||
}
|
||||
|
||||
public void init(TaskbarControllers controllers, BubbleControllers bubbleControllers) {
|
||||
@@ -108,12 +111,8 @@ public class BubbleBarViewController {
|
||||
mTaskbarStashController = controllers.taskbarStashController;
|
||||
mTaskbarInsetsController = controllers.taskbarInsetsController;
|
||||
|
||||
mActivity.addOnDeviceProfileChangeListener(dp ->
|
||||
mBarView.getLayoutParams().height =
|
||||
mActivity.getDeviceProfile().taskbarHeight + mPointerSize
|
||||
);
|
||||
mBarView.getLayoutParams().height =
|
||||
mActivity.getDeviceProfile().taskbarHeight + mPointerSize;
|
||||
mActivity.addOnDeviceProfileChangeListener(dp -> setBubbleBarIconSize(dp.taskbarIconSize));
|
||||
setBubbleBarIconSize(mActivity.getDeviceProfile().taskbarIconSize);
|
||||
mBubbleBarScale.updateValue(1f);
|
||||
mBubbleClickListener = v -> onBubbleClicked(v);
|
||||
mBubbleBarClickListener = v -> onBubbleBarClicked();
|
||||
@@ -260,6 +259,33 @@ public class BubbleBarViewController {
|
||||
}
|
||||
}
|
||||
|
||||
private void setBubbleBarIconSize(int newIconSize) {
|
||||
if (newIconSize == mIconSize) {
|
||||
return;
|
||||
}
|
||||
Resources res = mActivity.getResources();
|
||||
DisplayMetrics dm = res.getDisplayMetrics();
|
||||
float smallIconSize = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
|
||||
APP_ICON_SMALL_DP, dm);
|
||||
float mediumIconSize = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
|
||||
APP_ICON_MEDIUM_DP, dm);
|
||||
float largeIconSize = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
|
||||
APP_ICON_LARGE_DP, dm);
|
||||
float smallMediumThreshold = (smallIconSize + mediumIconSize) / 2f;
|
||||
float mediumLargeThreshold = (mediumIconSize + largeIconSize) / 2f;
|
||||
mIconSize = newIconSize <= smallMediumThreshold
|
||||
? res.getDimensionPixelSize(R.dimen.bubblebar_icon_size_small) :
|
||||
res.getDimensionPixelSize(R.dimen.bubblebar_icon_size);
|
||||
float bubbleBarPadding = newIconSize >= mediumLargeThreshold
|
||||
? res.getDimensionPixelSize(R.dimen.bubblebar_icon_spacing_large) :
|
||||
res.getDimensionPixelSize(R.dimen.bubblebar_icon_spacing);
|
||||
|
||||
mBarView.setIconSizeAndPadding(mIconSize, bubbleBarPadding);
|
||||
mBarView.setPadding((int) bubbleBarPadding, mBarView.getPaddingTop(),
|
||||
(int) bubbleBarPadding,
|
||||
mBarView.getPaddingBottom());
|
||||
}
|
||||
|
||||
/** Sets a callback that updates the selected bubble after the bubble bar collapses. */
|
||||
public void setUpdateSelectedBubbleAfterCollapse(
|
||||
Consumer<String> updateSelectedBubbleAfterCollapse) {
|
||||
|
||||
Reference in New Issue
Block a user