Loading packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java +1 −6 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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(), Loading @@ -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); Loading packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java +1 −21 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading @@ -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); Loading @@ -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) { Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +1 −6 Original line number Diff line number Diff line Loading @@ -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)); } Loading Loading @@ -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); Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java +35 −33 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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"; Loading @@ -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 Loading @@ -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); if (animate) { List<Animator> animators = new ArrayList<Animator>(); for(StatusBarIconView icon : findStatusBarIcons()) { animators.add(icon.animateTransitionTo(newMode)); applyMode(newMode, animate); } private void applyMode(int mode, boolean animate) { float newAlpha = getAlphaFor(mode); if (animate) { 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); } } } Loading Loading @@ -140,6 +141,7 @@ public class PhoneStatusBarView extends PanelBar { for (PanelView pv : mPanels) { pv.setRubberbandingEnabled(!mFullWidthNotifications); } mBarTransitions.init(); } @Override Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java +1 −6 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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(), Loading @@ -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); Loading
packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java +1 −21 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading @@ -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); Loading @@ -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) { Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +1 −6 Original line number Diff line number Diff line Loading @@ -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)); } Loading Loading @@ -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); Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java +35 −33 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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"; Loading @@ -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 Loading @@ -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); if (animate) { List<Animator> animators = new ArrayList<Animator>(); for(StatusBarIconView icon : findStatusBarIcons()) { animators.add(icon.animateTransitionTo(newMode)); applyMode(newMode, animate); } private void applyMode(int mode, boolean animate) { float newAlpha = getAlphaFor(mode); if (animate) { 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); } } } Loading Loading @@ -140,6 +141,7 @@ public class PhoneStatusBarView extends PanelBar { for (PanelView pv : mPanels) { pv.setRubberbandingEnabled(!mFullWidthNotifications); } mBarTransitions.init(); } @Override Loading