Merge "Add shadow to Dream status bar items." into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
b00fd1d78d
@@ -57,6 +57,7 @@
|
||||
android:layout_width="@dimen/dream_overlay_status_bar_icon_size"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginStart="@dimen/dream_overlay_status_icon_margin"
|
||||
android:layout_marginTop="@dimen/dream_overlay_status_bar_marginTop"
|
||||
android:src="@drawable/ic_alarm"
|
||||
android:tint="@android:color/white"
|
||||
android:visibility="gone"
|
||||
@@ -67,6 +68,7 @@
|
||||
android:layout_width="@dimen/dream_overlay_status_bar_icon_size"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginStart="@dimen/dream_overlay_status_icon_margin"
|
||||
android:layout_marginTop="@dimen/dream_overlay_status_bar_marginTop"
|
||||
android:src="@drawable/ic_qs_dnd_on"
|
||||
android:tint="@android:color/white"
|
||||
android:visibility="gone"
|
||||
@@ -77,6 +79,7 @@
|
||||
android:layout_width="@dimen/dream_overlay_status_bar_icon_size"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginStart="@dimen/dream_overlay_status_icon_margin"
|
||||
android:layout_marginTop="@dimen/dream_overlay_status_bar_marginTop"
|
||||
android:src="@drawable/ic_signal_wifi_off"
|
||||
android:visibility="gone"
|
||||
android:contentDescription="@string/dream_overlay_status_bar_wifi_off" />
|
||||
|
||||
@@ -1623,6 +1623,8 @@
|
||||
<dimen name="dream_overlay_status_bar_ambient_text_shadow_dx">0.5dp</dimen>
|
||||
<dimen name="dream_overlay_status_bar_ambient_text_shadow_dy">0.5dp</dimen>
|
||||
<dimen name="dream_overlay_status_bar_ambient_text_shadow_radius">2dp</dimen>
|
||||
<dimen name="dream_overlay_icon_inset_dimen">0dp</dimen>
|
||||
<dimen name="dream_overlay_status_bar_marginTop">22dp</dimen>
|
||||
|
||||
<!-- Default device corner radius, used for assist UI -->
|
||||
<dimen name="config_rounded_mask_size">0px</dimen>
|
||||
|
||||
@@ -48,48 +48,28 @@ constructor(
|
||||
val drawableInsetSize: Int
|
||||
try {
|
||||
val keyShadowBlur =
|
||||
attributes.getDimensionPixelSize(R.styleable.DoubleShadowTextView_keyShadowBlur, 0)
|
||||
attributes.getDimension(R.styleable.DoubleShadowTextView_keyShadowBlur, 0f)
|
||||
val keyShadowOffsetX =
|
||||
attributes.getDimensionPixelSize(
|
||||
R.styleable.DoubleShadowTextView_keyShadowOffsetX,
|
||||
0
|
||||
)
|
||||
attributes.getDimension(R.styleable.DoubleShadowTextView_keyShadowOffsetX, 0f)
|
||||
val keyShadowOffsetY =
|
||||
attributes.getDimensionPixelSize(
|
||||
R.styleable.DoubleShadowTextView_keyShadowOffsetY,
|
||||
0
|
||||
)
|
||||
attributes.getDimension(R.styleable.DoubleShadowTextView_keyShadowOffsetY, 0f)
|
||||
val keyShadowAlpha =
|
||||
attributes.getFloat(R.styleable.DoubleShadowTextView_keyShadowAlpha, 0f)
|
||||
mKeyShadowInfo =
|
||||
ShadowInfo(
|
||||
keyShadowBlur.toFloat(),
|
||||
keyShadowOffsetX.toFloat(),
|
||||
keyShadowOffsetY.toFloat(),
|
||||
keyShadowAlpha
|
||||
)
|
||||
ShadowInfo(keyShadowBlur, keyShadowOffsetX, keyShadowOffsetY, keyShadowAlpha)
|
||||
val ambientShadowBlur =
|
||||
attributes.getDimensionPixelSize(
|
||||
R.styleable.DoubleShadowTextView_ambientShadowBlur,
|
||||
0
|
||||
)
|
||||
attributes.getDimension(R.styleable.DoubleShadowTextView_ambientShadowBlur, 0f)
|
||||
val ambientShadowOffsetX =
|
||||
attributes.getDimensionPixelSize(
|
||||
R.styleable.DoubleShadowTextView_ambientShadowOffsetX,
|
||||
0
|
||||
)
|
||||
attributes.getDimension(R.styleable.DoubleShadowTextView_ambientShadowOffsetX, 0f)
|
||||
val ambientShadowOffsetY =
|
||||
attributes.getDimensionPixelSize(
|
||||
R.styleable.DoubleShadowTextView_ambientShadowOffsetY,
|
||||
0
|
||||
)
|
||||
attributes.getDimension(R.styleable.DoubleShadowTextView_ambientShadowOffsetY, 0f)
|
||||
val ambientShadowAlpha =
|
||||
attributes.getFloat(R.styleable.DoubleShadowTextView_ambientShadowAlpha, 0f)
|
||||
mAmbientShadowInfo =
|
||||
ShadowInfo(
|
||||
ambientShadowBlur.toFloat(),
|
||||
ambientShadowOffsetX.toFloat(),
|
||||
ambientShadowOffsetY.toFloat(),
|
||||
ambientShadowBlur,
|
||||
ambientShadowOffsetX,
|
||||
ambientShadowOffsetY,
|
||||
ambientShadowAlpha
|
||||
)
|
||||
drawableSize =
|
||||
|
||||
@@ -19,6 +19,7 @@ package com.android.systemui.dreams;
|
||||
import android.annotation.IntDef;
|
||||
import android.annotation.Nullable;
|
||||
import android.content.Context;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@@ -26,6 +27,9 @@ import android.view.ViewGroup;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.shared.shadow.DoubleShadowIconDrawable;
|
||||
import com.android.systemui.shared.shadow.DoubleShadowTextHelper.ShadowInfo;
|
||||
import com.android.systemui.statusbar.AlphaOptimizedImageView;
|
||||
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
@@ -60,8 +64,15 @@ public class DreamOverlayStatusBarView extends ConstraintLayout {
|
||||
public static final int STATUS_ICON_PRIORITY_MODE_ON = 6;
|
||||
|
||||
private final Map<Integer, View> mStatusIcons = new HashMap<>();
|
||||
private Context mContext;
|
||||
private ViewGroup mSystemStatusViewGroup;
|
||||
private ViewGroup mExtraSystemStatusViewGroup;
|
||||
private ShadowInfo mKeyShadowInfo;
|
||||
private ShadowInfo mAmbientShadowInfo;
|
||||
private int mDrawableSize;
|
||||
private int mDrawableInsetSize;
|
||||
private static final float KEY_SHADOW_ALPHA = 0.35f;
|
||||
private static final float AMBIENT_SHADOW_ALPHA = 0.4f;
|
||||
|
||||
public DreamOverlayStatusBarView(Context context) {
|
||||
this(context, null);
|
||||
@@ -73,6 +84,7 @@ public class DreamOverlayStatusBarView extends ConstraintLayout {
|
||||
|
||||
public DreamOverlayStatusBarView(Context context, AttributeSet attrs, int defStyleAttr) {
|
||||
this(context, attrs, defStyleAttr, 0);
|
||||
mContext = context;
|
||||
}
|
||||
|
||||
public DreamOverlayStatusBarView(
|
||||
@@ -80,14 +92,36 @@ public class DreamOverlayStatusBarView extends ConstraintLayout {
|
||||
super(context, attrs, defStyleAttr, defStyleRes);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void onFinishInflate() {
|
||||
super.onFinishInflate();
|
||||
|
||||
mKeyShadowInfo = createShadowInfo(
|
||||
R.dimen.dream_overlay_status_bar_key_text_shadow_radius,
|
||||
R.dimen.dream_overlay_status_bar_key_text_shadow_dx,
|
||||
R.dimen.dream_overlay_status_bar_key_text_shadow_dy,
|
||||
KEY_SHADOW_ALPHA
|
||||
);
|
||||
|
||||
mAmbientShadowInfo = createShadowInfo(
|
||||
R.dimen.dream_overlay_status_bar_ambient_text_shadow_radius,
|
||||
R.dimen.dream_overlay_status_bar_ambient_text_shadow_dx,
|
||||
R.dimen.dream_overlay_status_bar_ambient_text_shadow_dy,
|
||||
AMBIENT_SHADOW_ALPHA
|
||||
);
|
||||
|
||||
mDrawableSize = mContext
|
||||
.getResources()
|
||||
.getDimensionPixelSize(R.dimen.dream_overlay_status_bar_icon_size);
|
||||
mDrawableInsetSize = mContext
|
||||
.getResources()
|
||||
.getDimensionPixelSize(R.dimen.dream_overlay_icon_inset_dimen);
|
||||
|
||||
mStatusIcons.put(STATUS_ICON_WIFI_UNAVAILABLE,
|
||||
fetchStatusIconForResId(R.id.dream_overlay_wifi_status));
|
||||
addDoubleShadow(fetchStatusIconForResId(R.id.dream_overlay_wifi_status)));
|
||||
mStatusIcons.put(STATUS_ICON_ALARM_SET,
|
||||
fetchStatusIconForResId(R.id.dream_overlay_alarm_set));
|
||||
addDoubleShadow(fetchStatusIconForResId(R.id.dream_overlay_alarm_set)));
|
||||
mStatusIcons.put(STATUS_ICON_CAMERA_DISABLED,
|
||||
fetchStatusIconForResId(R.id.dream_overlay_camera_off));
|
||||
mStatusIcons.put(STATUS_ICON_MIC_DISABLED,
|
||||
@@ -97,7 +131,7 @@ public class DreamOverlayStatusBarView extends ConstraintLayout {
|
||||
mStatusIcons.put(STATUS_ICON_NOTIFICATIONS,
|
||||
fetchStatusIconForResId(R.id.dream_overlay_notification_indicator));
|
||||
mStatusIcons.put(STATUS_ICON_PRIORITY_MODE_ON,
|
||||
fetchStatusIconForResId(R.id.dream_overlay_priority_mode));
|
||||
addDoubleShadow(fetchStatusIconForResId(R.id.dream_overlay_priority_mode)));
|
||||
|
||||
mSystemStatusViewGroup = findViewById(R.id.dream_overlay_system_status);
|
||||
mExtraSystemStatusViewGroup = findViewById(R.id.dream_overlay_extra_items);
|
||||
@@ -137,4 +171,34 @@ public class DreamOverlayStatusBarView extends ConstraintLayout {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private View addDoubleShadow(View icon) {
|
||||
if (icon instanceof AlphaOptimizedImageView) {
|
||||
AlphaOptimizedImageView i = (AlphaOptimizedImageView) icon;
|
||||
Drawable drawableIcon = i.getDrawable();
|
||||
i.setImageDrawable(new DoubleShadowIconDrawable(
|
||||
mKeyShadowInfo,
|
||||
mAmbientShadowInfo,
|
||||
drawableIcon,
|
||||
mDrawableSize,
|
||||
mDrawableInsetSize
|
||||
));
|
||||
}
|
||||
return icon;
|
||||
}
|
||||
|
||||
private ShadowInfo createShadowInfo(int blurId, int offsetXId, int offsetYId, float alpha) {
|
||||
return new ShadowInfo(
|
||||
fetchDimensionForResId(blurId),
|
||||
fetchDimensionForResId(offsetXId),
|
||||
fetchDimensionForResId(offsetYId),
|
||||
alpha
|
||||
);
|
||||
}
|
||||
|
||||
private Float fetchDimensionForResId(int resId) {
|
||||
return mContext
|
||||
.getResources()
|
||||
.getDimension(resId);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user