am cbd067e8: Merge "Dim status icons / battery / clock on opaque bars." into klp-dev
* commit 'cbd067e87537874ce216c02cab2ab46b5980b634': Dim status icons / battery / clock on opaque bars.
This commit is contained in:
@@ -70,7 +70,6 @@ import com.android.systemui.R;
|
||||
import com.android.systemui.RecentsComponent;
|
||||
import com.android.systemui.SearchPanelView;
|
||||
import com.android.systemui.SystemUI;
|
||||
import com.android.systemui.statusbar.phone.BarTransitions;
|
||||
import com.android.systemui.statusbar.policy.NotificationRowLayout;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -828,7 +827,7 @@ public abstract class BaseStatusBar extends SystemUI implements
|
||||
// Construct the icon.
|
||||
final StatusBarIconView iconView = new StatusBarIconView(mContext,
|
||||
notification.getPackageName() + "/0x" + Integer.toHexString(notification.getId()),
|
||||
notification.getNotification(), getStatusBarMode());
|
||||
notification.getNotification());
|
||||
iconView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
|
||||
|
||||
final StatusBarIcon ic = new StatusBarIcon(notification.getPackageName(),
|
||||
@@ -851,10 +850,6 @@ public abstract class BaseStatusBar extends SystemUI implements
|
||||
return entry;
|
||||
}
|
||||
|
||||
protected int getStatusBarMode() {
|
||||
return BarTransitions.MODE_OPAQUE;
|
||||
}
|
||||
|
||||
protected void addNotificationViews(NotificationData.Entry entry) {
|
||||
// Add the expanded view and icon.
|
||||
int pos = mNotificationData.add(entry);
|
||||
|
||||
@@ -16,11 +16,6 @@
|
||||
|
||||
package com.android.systemui.statusbar;
|
||||
|
||||
import static com.android.systemui.statusbar.phone.BarTransitions.MODE_OPAQUE;
|
||||
import static com.android.systemui.statusbar.phone.BarTransitions.MODE_SEMI_TRANSPARENT;
|
||||
import static com.android.systemui.statusbar.phone.BarTransitions.MODE_TRANSPARENT;
|
||||
|
||||
import android.animation.ObjectAnimator;
|
||||
import android.app.Notification;
|
||||
import android.content.Context;
|
||||
import android.content.pm.PackageManager;
|
||||
@@ -53,13 +48,10 @@ public class StatusBarIconView extends AnimatedImageView {
|
||||
private int mNumberY;
|
||||
private String mNumberText;
|
||||
private Notification mNotification;
|
||||
private final float mAlphaWhenOpaque;
|
||||
private final float mAlphaWhenTransparent = 1;
|
||||
|
||||
public StatusBarIconView(Context context, String slot, Notification notification, int mode) {
|
||||
public StatusBarIconView(Context context, String slot, Notification notification) {
|
||||
super(context);
|
||||
final Resources res = context.getResources();
|
||||
mAlphaWhenOpaque = res.getFraction(R.dimen.status_bar_icon_drawing_alpha, 1, 1);
|
||||
mSlot = slot;
|
||||
mNumberPain = new Paint();
|
||||
mNumberPain.setTextAlign(Paint.Align.CENTER);
|
||||
@@ -76,7 +68,6 @@ public class StatusBarIconView extends AnimatedImageView {
|
||||
final float scale = (float)imageBounds / (float)outerBounds;
|
||||
setScaleX(scale);
|
||||
setScaleY(scale);
|
||||
setAlpha(getAlphaFor(mode));
|
||||
}
|
||||
|
||||
setScaleType(ImageView.ScaleType.CENTER);
|
||||
@@ -85,22 +76,11 @@ public class StatusBarIconView extends AnimatedImageView {
|
||||
public StatusBarIconView(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
final Resources res = context.getResources();
|
||||
mAlphaWhenOpaque = res.getFraction(R.dimen.status_bar_icon_drawing_alpha, 1, 1);
|
||||
final int outerBounds = res.getDimensionPixelSize(R.dimen.status_bar_icon_size);
|
||||
final int imageBounds = res.getDimensionPixelSize(R.dimen.status_bar_icon_drawing_size);
|
||||
final float scale = (float)imageBounds / (float)outerBounds;
|
||||
setScaleX(scale);
|
||||
setScaleY(scale);
|
||||
setAlpha(getAlphaFor(MODE_OPAQUE));
|
||||
}
|
||||
|
||||
public ObjectAnimator animateTransitionTo(int mode) {
|
||||
return ObjectAnimator.ofFloat(this, "alpha", getAlpha(), getAlphaFor(mode));
|
||||
}
|
||||
|
||||
public float getAlphaFor(int mode) {
|
||||
final boolean isTransparent = mode == MODE_SEMI_TRANSPARENT || mode == MODE_TRANSPARENT;
|
||||
return isTransparent ? mAlphaWhenTransparent : mAlphaWhenOpaque;
|
||||
}
|
||||
|
||||
private static boolean streq(String a, String b) {
|
||||
|
||||
@@ -839,7 +839,7 @@ public class PhoneStatusBar extends BaseStatusBar {
|
||||
public void addIcon(String slot, int index, int viewIndex, StatusBarIcon icon) {
|
||||
if (SPEW) Log.d(TAG, "addIcon slot=" + slot + " index=" + index + " viewIndex=" + viewIndex
|
||||
+ " icon=" + icon);
|
||||
StatusBarIconView view = new StatusBarIconView(mContext, slot, null, getStatusBarMode());
|
||||
StatusBarIconView view = new StatusBarIconView(mContext, slot, null);
|
||||
view.set(icon);
|
||||
mStatusIcons.addView(view, viewIndex, new LinearLayout.LayoutParams(mIconSize, mIconSize));
|
||||
}
|
||||
@@ -1857,11 +1857,6 @@ public class PhoneStatusBar extends BaseStatusBar {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getStatusBarMode() {
|
||||
return mStatusBarView.getBarTransitions().getMode();
|
||||
}
|
||||
|
||||
private int computeBarMode(int oldVis, int newVis, BarTransitions transitions,
|
||||
int transientFlag, int transparentFlag) {
|
||||
final int oldMode = barMode(oldVis, transientFlag, transparentFlag);
|
||||
|
||||
@@ -16,8 +16,12 @@
|
||||
|
||||
package com.android.systemui.statusbar.phone;
|
||||
|
||||
import static com.android.systemui.statusbar.phone.BarTransitions.MODE_SEMI_TRANSPARENT;
|
||||
import static com.android.systemui.statusbar.phone.BarTransitions.MODE_TRANSPARENT;
|
||||
|
||||
import android.animation.Animator;
|
||||
import android.animation.AnimatorSet;
|
||||
import android.animation.ObjectAnimator;
|
||||
import android.app.ActivityManager;
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
@@ -27,15 +31,10 @@ import android.util.EventLog;
|
||||
import android.util.Log;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.accessibility.AccessibilityEvent;
|
||||
|
||||
import com.android.systemui.EventLogTags;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.statusbar.StatusBarIconView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class PhoneStatusBarView extends PanelBar {
|
||||
private static final String TAG = "PhoneStatusBarView";
|
||||
@@ -56,11 +55,22 @@ public class PhoneStatusBarView extends PanelBar {
|
||||
|
||||
private final class StatusBarTransitions extends BarTransitions {
|
||||
private final int mTransparent;
|
||||
private final float mAlphaWhenOpaque;
|
||||
private final float mAlphaWhenTransparent = 1;
|
||||
private View mLeftSide;
|
||||
private View mRightSide;
|
||||
|
||||
public StatusBarTransitions(Context context) {
|
||||
super(context, PhoneStatusBarView.this);
|
||||
final Resources res = context.getResources();
|
||||
mTransparent = res.getColor(R.color.status_bar_background_transparent);
|
||||
mAlphaWhenOpaque = res.getFraction(R.dimen.status_bar_icon_drawing_alpha, 1, 1);
|
||||
}
|
||||
|
||||
public void init() {
|
||||
mLeftSide = findViewById(R.id.notification_icon_area);
|
||||
mRightSide = findViewById(R.id.system_icon_area);
|
||||
applyMode(getMode(), false /*animate*/);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -69,41 +79,32 @@ public class PhoneStatusBarView extends PanelBar {
|
||||
return super.getBackgroundColor(mode);
|
||||
}
|
||||
|
||||
public ObjectAnimator animateTransitionTo(View v, float toAlpha) {
|
||||
return ObjectAnimator.ofFloat(v, "alpha", v.getAlpha(), toAlpha);
|
||||
}
|
||||
|
||||
public float getAlphaFor(int mode) {
|
||||
final boolean isTransparent = mode == MODE_SEMI_TRANSPARENT || mode == MODE_TRANSPARENT;
|
||||
return isTransparent ? mAlphaWhenTransparent : mAlphaWhenOpaque;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onTransition(int oldMode, int newMode, boolean animate) {
|
||||
super.onTransition(oldMode, newMode, animate);
|
||||
applyMode(newMode, animate);
|
||||
}
|
||||
|
||||
private void applyMode(int mode, boolean animate) {
|
||||
float newAlpha = getAlphaFor(mode);
|
||||
if (animate) {
|
||||
List<Animator> animators = new ArrayList<Animator>();
|
||||
for(StatusBarIconView icon : findStatusBarIcons()) {
|
||||
animators.add(icon.animateTransitionTo(newMode));
|
||||
}
|
||||
ObjectAnimator lhs = animateTransitionTo(mLeftSide, newAlpha);
|
||||
ObjectAnimator rhs = animateTransitionTo(mRightSide, newAlpha);
|
||||
AnimatorSet set = new AnimatorSet();
|
||||
set.playTogether(animators);
|
||||
set.playTogether(lhs, rhs);
|
||||
set.start();
|
||||
} else {
|
||||
for(StatusBarIconView icon : findStatusBarIcons()) {
|
||||
icon.setAlpha(icon.getAlphaFor(newMode));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private List<StatusBarIconView> findStatusBarIcons() {
|
||||
List<StatusBarIconView> icons = new ArrayList<StatusBarIconView>();
|
||||
findStatusBarIcons(icons, findViewById(R.id.moreIcon));
|
||||
findStatusBarIcons(icons, findViewById(R.id.statusIcons));
|
||||
findStatusBarIcons(icons, findViewById(R.id.notificationIcons));
|
||||
return icons;
|
||||
}
|
||||
|
||||
private void findStatusBarIcons(List<StatusBarIconView> icons, View v) {
|
||||
if (v instanceof StatusBarIconView) {
|
||||
icons.add((StatusBarIconView) v);
|
||||
} else if (v instanceof ViewGroup) {
|
||||
ViewGroup group = (ViewGroup) v;
|
||||
final int N = group.getChildCount();
|
||||
for (int i = 0; i < N; i++) {
|
||||
findStatusBarIcons(icons, group.getChildAt(i));
|
||||
}
|
||||
mLeftSide.setAlpha(newAlpha);
|
||||
mRightSide.setAlpha(newAlpha);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -140,6 +141,7 @@ public class PhoneStatusBarView extends PanelBar {
|
||||
for (PanelView pv : mPanels) {
|
||||
pv.setRubberbandingEnabled(!mFullWidthNotifications);
|
||||
}
|
||||
mBarTransitions.init();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user