Merge "Dark pointer for dark mode" into rvc-dev

This commit is contained in:
TreeHugger Robot
2020-06-10 23:10:43 +00:00
committed by Android (Google) Code Review
4 changed files with 32 additions and 7 deletions

View File

@@ -202,6 +202,10 @@
<color name="global_screenshot_dismiss_foreground">@color/GM2_grey_500</color>
<color name="global_screenshot_background_protection_start">#40000000</color> <!-- 25% black -->
<!-- Bubbles -->
<color name="bubbles_pointer_light">#FFFFFF</color>
<color name="bubbles_pointer_dark">@color/GM2_grey_800</color>
<!-- GM2 colors -->
<color name="GM2_grey_50">#F8F9FA</color>
<color name="GM2_grey_100">#F1F3F4</color>

View File

@@ -42,6 +42,7 @@ import android.app.PendingIntent;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.Color;
@@ -274,8 +275,6 @@ public class BubbleExpandedView extends LinearLayout {
mPointerDrawable = new ShapeDrawable(TriangleShape.create(
mPointerWidth, mPointerHeight, true /* pointUp */));
mPointerDrawable.setTint(Color.WHITE);
mPointerView.setBackground(mPointerDrawable);
mPointerView.setVisibility(INVISIBLE);
mSettingsIconHeight = getContext().getResources().getDimensionPixelSize(
@@ -425,6 +424,18 @@ public class BubbleExpandedView extends LinearLayout {
mContext.getResources())) {
mActivityView.setCornerRadius(mCornerRadius);
}
final int mode =
getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
switch (mode) {
case Configuration.UI_MODE_NIGHT_NO:
mPointerDrawable.setTint(getResources().getColor(R.color.bubbles_pointer_light));
break;
case Configuration.UI_MODE_NIGHT_YES:
mPointerDrawable.setTint(getResources().getColor(R.color.bubbles_pointer_dark));
break;
}
mPointerView.setBackground(mPointerDrawable);
}
/**

View File

@@ -62,13 +62,12 @@ public class BubbleOverflow implements BubbleViewProvider {
void setUpOverflow(ViewGroup parentViewGroup, BubbleStackView stackView) {
updateDimensions();
mExpandedView = (BubbleExpandedView) mInflater.inflate(
R.layout.bubble_expanded_view, parentViewGroup /* root */,
false /* attachToRoot */);
mExpandedView.setOverflow(true);
mExpandedView.setStackView(stackView);
mExpandedView.applyThemeAttrs();
updateIcon(mContext, parentViewGroup);
}

View File

@@ -1100,13 +1100,11 @@ public class BubbleStackView extends FrameLayout
mBubbleOverflow.setUpOverflow(mBubbleContainer, this);
} else {
mBubbleContainer.removeView(mBubbleOverflow.getBtn());
mBubbleOverflow.updateDimensions();
mBubbleOverflow.updateIcon(mContext,this);
mBubbleOverflow.setUpOverflow(mBubbleContainer, this);
overflowBtnIndex = mBubbleContainer.getChildCount();
}
mBubbleContainer.addView(mBubbleOverflow.getBtn(), overflowBtnIndex,
new FrameLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));
mBubbleOverflow.getBtn().setOnClickListener(v -> setSelectedBubble(mBubbleOverflow));
}
/**
@@ -1117,6 +1115,7 @@ public class BubbleStackView extends FrameLayout
setUpOverflow();
setUpUserEducation();
setUpManageMenu();
updateExpandedViewTheme();
}
/** Respond to the phone being rotated by repositioning the stack and hiding any flyouts. */
@@ -1218,6 +1217,18 @@ public class BubbleStackView extends FrameLayout
setupLocalMenu(info);
}
void updateExpandedViewTheme() {
final List<Bubble> bubbles = mBubbleData.getBubbles();
if (bubbles.isEmpty()) {
return;
}
bubbles.forEach(bubble -> {
if (bubble.getExpandedView() != null) {
bubble.getExpandedView().applyThemeAttrs();
}
});
}
void setupLocalMenu(AccessibilityNodeInfo info) {
Resources res = mContext.getResources();