Loading packages/SystemUI/src/com/android/systemui/SystemUIFactory.java +7 −0 Original line number Original line Diff line number Diff line Loading @@ -25,6 +25,8 @@ import com.android.internal.widget.LockPatternUtils; import com.android.keyguard.ViewMediatorCallback; import com.android.keyguard.ViewMediatorCallback; import com.android.systemui.statusbar.ScrimView; import com.android.systemui.statusbar.ScrimView; import com.android.systemui.statusbar.phone.KeyguardBouncer; import com.android.systemui.statusbar.phone.KeyguardBouncer; import com.android.systemui.statusbar.phone.NotificationIconAreaController; import com.android.systemui.statusbar.phone.PhoneStatusBar; import com.android.systemui.statusbar.phone.ScrimController; import com.android.systemui.statusbar.phone.ScrimController; import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager; import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager; import com.android.systemui.statusbar.phone.StatusBarWindowManager; import com.android.systemui.statusbar.phone.StatusBarWindowManager; Loading Loading @@ -75,6 +77,11 @@ public class SystemUIFactory { return new ScrimController(scrimBehind, scrimInFront, headsUpScrim); return new ScrimController(scrimBehind, scrimInFront, headsUpScrim); } } public NotificationIconAreaController createNotificationIconAreaController(Context context, PhoneStatusBar phoneStatusBar) { return new NotificationIconAreaController(context, phoneStatusBar); } public <T> T createInstance(Class<T> classType) { public <T> T createInstance(Class<T> classType) { return null; return null; } } Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/IconMerger.java +13 −5 Original line number Original line Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.systemui.statusbar.phone; package com.android.systemui.statusbar.phone; import android.content.Context; import android.content.Context; import android.content.res.Resources; import android.util.AttributeSet; import android.util.AttributeSet; import android.view.View; import android.view.View; import android.widget.LinearLayout; import android.widget.LinearLayout; Loading @@ -27,14 +28,17 @@ public class IconMerger extends LinearLayout { private static final String TAG = "IconMerger"; private static final String TAG = "IconMerger"; private static final boolean DEBUG = false; private static final boolean DEBUG = false; private int mIconSize; private final int mIconSize; private final int mIconHPadding; private View mMoreView; private View mMoreView; public IconMerger(Context context, AttributeSet attrs) { public IconMerger(Context context, AttributeSet attrs) { super(context, attrs); super(context, attrs); mIconSize = context.getResources().getDimensionPixelSize( Resources res = context.getResources(); R.dimen.status_bar_icon_size); mIconSize = res.getDimensionPixelSize(R.dimen.status_bar_icon_size); mIconHPadding = res.getDimensionPixelSize(R.dimen.status_bar_icon_padding); if (DEBUG) { if (DEBUG) { setBackgroundColor(0x800099FF); setBackgroundColor(0x800099FF); Loading @@ -45,12 +49,16 @@ public class IconMerger extends LinearLayout { mMoreView = v; mMoreView = v; } } private int getFullIconWidth() { return mIconSize + 2 * mIconHPadding; } @Override @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); super.onMeasure(widthMeasureSpec, heightMeasureSpec); // we need to constrain this to an integral multiple of our children // we need to constrain this to an integral multiple of our children int width = getMeasuredWidth(); int width = getMeasuredWidth(); setMeasuredDimension(width - (width % mIconSize), getMeasuredHeight()); setMeasuredDimension(width - (width % getFullIconWidth()), getMeasuredHeight()); } } @Override @Override Loading @@ -70,7 +78,7 @@ public class IconMerger extends LinearLayout { final boolean overflowShown = (mMoreView.getVisibility() == View.VISIBLE); final boolean overflowShown = (mMoreView.getVisibility() == View.VISIBLE); // let's assume we have one more slot if the more icon is already showing // let's assume we have one more slot if the more icon is already showing if (overflowShown) visibleChildren --; if (overflowShown) visibleChildren --; final boolean moreRequired = visibleChildren * mIconSize > width; final boolean moreRequired = visibleChildren * getFullIconWidth() > width; if (moreRequired != overflowShown) { if (moreRequired != overflowShown) { post(new Runnable() { post(new Runnable() { @Override @Override Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconAreaController.java +38 −17 Original line number Original line Diff line number Diff line Loading @@ -17,6 +17,7 @@ import com.android.systemui.statusbar.StatusBarIconView; import com.android.systemui.statusbar.notification.NotificationUtils; import com.android.systemui.statusbar.notification.NotificationUtils; import java.util.ArrayList; import java.util.ArrayList; import java.util.List; /** /** * A controller for the space in the status bar to the left of the system icons. This area is * A controller for the space in the status bar to the left of the system icons. This area is Loading @@ -42,6 +43,10 @@ public class NotificationIconAreaController { initializeNotificationAreaViews(context); initializeNotificationAreaViews(context); } } protected View inflateIconArea(LayoutInflater inflater) { return inflater.inflate(R.layout.notification_icon_area, null); } /** /** * Initializes the views that will represent the notification area. * Initializes the views that will represent the notification area. */ */ Loading @@ -51,15 +56,17 @@ public class NotificationIconAreaController { mIconHPadding = res.getDimensionPixelSize(R.dimen.status_bar_icon_padding); mIconHPadding = res.getDimensionPixelSize(R.dimen.status_bar_icon_padding); LayoutInflater layoutInflater = LayoutInflater.from(context); LayoutInflater layoutInflater = LayoutInflater.from(context); mNotificationIconArea = layoutInflater.inflate(R.layout.notification_icon_area, null); mNotificationIconArea = inflateIconArea(layoutInflater); mMoreIcon = (ImageView) mNotificationIconArea.findViewById(R.id.moreIcon); mMoreIcon.setImageTintList(ColorStateList.valueOf(mIconTint)); mNotificationIcons = mNotificationIcons = (IconMerger) mNotificationIconArea.findViewById(R.id.notificationIcons); (IconMerger) mNotificationIconArea.findViewById(R.id.notificationIcons); mMoreIcon = (ImageView) mNotificationIconArea.findViewById(R.id.moreIcon); if (mMoreIcon != null) { mMoreIcon.setImageTintList(ColorStateList.valueOf(mIconTint)); mNotificationIcons.setOverflowIndicator(mMoreIcon); mNotificationIcons.setOverflowIndicator(mMoreIcon); } } } /** /** * Returns the view that represents the notification area. * Returns the view that represents the notification area. Loading Loading @@ -88,16 +95,38 @@ public class NotificationIconAreaController { */ */ public void setIconTint(int iconTint) { public void setIconTint(int iconTint) { mIconTint = iconTint; mIconTint = iconTint; if (mMoreIcon != null) { mMoreIcon.setImageTintList(ColorStateList.valueOf(mIconTint)); mMoreIcon.setImageTintList(ColorStateList.valueOf(mIconTint)); } applyNotificationIconsTint(); applyNotificationIconsTint(); } } protected int getHeight() { return mPhoneStatusBar.getStatusBarHeight(); } protected boolean shouldShowNotification(NotificationData.Entry entry, NotificationData notificationData) { if (notificationData.isAmbient(entry.key) && !NotificationData.showNotificationEvenIfUnprovisioned(entry.notification)) { return false; } if (!PhoneStatusBar.isTopLevelChild(entry)) { return false; } if (entry.row.getVisibility() == View.GONE) { return false; } return true; } /** /** * Updates the notifications with the given list of notifications to display. * Updates the notifications with the given list of notifications to display. */ */ public void updateNotificationIcons(NotificationData notificationData) { public void updateNotificationIcons(NotificationData notificationData) { final LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( final LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( mIconSize + 2 * mIconHPadding, mPhoneStatusBar.getStatusBarHeight()); mIconSize + 2 * mIconHPadding, getHeight()); ArrayList<NotificationData.Entry> activeNotifications = ArrayList<NotificationData.Entry> activeNotifications = notificationData.getActiveNotifications(); notificationData.getActiveNotifications(); Loading @@ -107,18 +136,10 @@ public class NotificationIconAreaController { // Filter out ambient notifications and notification children. // Filter out ambient notifications and notification children. for (int i = 0; i < size; i++) { for (int i = 0; i < size; i++) { NotificationData.Entry ent = activeNotifications.get(i); NotificationData.Entry ent = activeNotifications.get(i); if (notificationData.isAmbient(ent.key) if (shouldShowNotification(ent, notificationData)) { && !NotificationData.showNotificationEvenIfUnprovisioned(ent.notification)) { continue; } if (!PhoneStatusBar.isTopLevelChild(ent)) { continue; } if (ent.row.getVisibility() == View.GONE) { continue; } toShow.add(ent.icon); toShow.add(ent.icon); } } } ArrayList<View> toRemove = new ArrayList<>(); ArrayList<View> toRemove = new ArrayList<>(); for (int i = 0; i < mNotificationIcons.getChildCount(); i++) { for (int i = 0; i < mNotificationIcons.getChildCount(); i++) { Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +10 −8 Original line number Original line Diff line number Diff line Loading @@ -48,7 +48,6 @@ import android.graphics.PorterDuffXfermode; import android.graphics.Rect; import android.graphics.Rect; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable; import android.hardware.display.DisplayManager; import android.inputmethodservice.InputMethodService; import android.inputmethodservice.InputMethodService; import android.media.AudioAttributes; import android.media.AudioAttributes; import android.media.MediaMetadata; import android.media.MediaMetadata; Loading Loading @@ -132,7 +131,6 @@ import com.android.systemui.statusbar.DismissView; import com.android.systemui.statusbar.DragDownHelper; import com.android.systemui.statusbar.DragDownHelper; import com.android.systemui.statusbar.EmptyShadeView; import com.android.systemui.statusbar.EmptyShadeView; import com.android.systemui.statusbar.ExpandableNotificationRow; import com.android.systemui.statusbar.ExpandableNotificationRow; import com.android.systemui.statusbar.ExpandableView; import com.android.systemui.statusbar.GestureRecorder; import com.android.systemui.statusbar.GestureRecorder; import com.android.systemui.statusbar.KeyguardIndicationController; import com.android.systemui.statusbar.KeyguardIndicationController; import com.android.systemui.statusbar.NotificationData; import com.android.systemui.statusbar.NotificationData; Loading Loading @@ -305,7 +303,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, Point mCurrentDisplaySize = new Point(); Point mCurrentDisplaySize = new Point(); protected StatusBarWindowView mStatusBarWindow; protected StatusBarWindowView mStatusBarWindow; PhoneStatusBarView mStatusBarView; protected PhoneStatusBarView mStatusBarView; private int mStatusBarWindowState = WINDOW_STATE_SHOWING; private int mStatusBarWindowState = WINDOW_STATE_SHOWING; protected StatusBarWindowManager mStatusBarWindowManager; protected StatusBarWindowManager mStatusBarWindowManager; private UnlockMethodCache mUnlockMethodCache; private UnlockMethodCache mUnlockMethodCache; Loading @@ -317,7 +315,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, int mPixelFormat; int mPixelFormat; Object mQueueLock = new Object(); Object mQueueLock = new Object(); StatusBarIconController mIconController; protected StatusBarIconController mIconController; // expanded notifications // expanded notifications protected NotificationPanelView mNotificationPanel; // the sliding/resizing panel within the notification window protected NotificationPanelView mNotificationPanel; // the sliding/resizing panel within the notification window Loading @@ -329,7 +327,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, // top bar // top bar BaseStatusBarHeader mHeader; BaseStatusBarHeader mHeader; KeyguardStatusBarView mKeyguardStatusBar; protected KeyguardStatusBarView mKeyguardStatusBar; View mKeyguardStatusView; View mKeyguardStatusView; KeyguardBottomAreaView mKeyguardBottomArea; KeyguardBottomAreaView mKeyguardBottomArea; boolean mLeaveOpenOnKeyguardHide; boolean mLeaveOpenOnKeyguardHide; Loading Loading @@ -678,6 +676,11 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, mFalsingManager = FalsingManager.getInstance(mContext); mFalsingManager = FalsingManager.getInstance(mContext); } } protected void createIconController() { mIconController = new StatusBarIconController( mContext, mStatusBarView, mKeyguardStatusBar, this); } // ================================================================================ // ================================================================================ // Constructing the view // Constructing the view // ================================================================================ // ================================================================================ Loading Loading @@ -811,8 +814,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, // set the initial view visibility // set the initial view visibility setAreThereNotifications(); setAreThereNotifications(); mIconController = new StatusBarIconController( createIconController(); mContext, mStatusBarView, mKeyguardStatusBar, this); // Background thread for any controllers that need it. // Background thread for any controllers that need it. mHandlerThread = new HandlerThread(TAG, Process.THREAD_PRIORITY_BACKGROUND); mHandlerThread = new HandlerThread(TAG, Process.THREAD_PRIORITY_BACKGROUND); Loading Loading @@ -1989,7 +1991,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, } } } } private int adjustDisableFlags(int state) { protected int adjustDisableFlags(int state) { if (!mLaunchTransitionFadingAway && !mKeyguardFadingAway if (!mLaunchTransitionFadingAway && !mKeyguardFadingAway && (mExpandedVisible || mBouncerShowing || mWaitingForKeyguardExit)) { && (mExpandedVisible || mBouncerShowing || mWaitingForKeyguardExit)) { state |= StatusBarManager.DISABLE_NOTIFICATION_ICONS; state |= StatusBarManager.DISABLE_NOTIFICATION_ICONS; Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java +3 −2 Original line number Original line Diff line number Diff line Loading @@ -42,6 +42,7 @@ import com.android.systemui.BatteryMeterView; import com.android.systemui.FontSizeUtils; import com.android.systemui.FontSizeUtils; import com.android.systemui.Interpolators; import com.android.systemui.Interpolators; import com.android.systemui.R; import com.android.systemui.R; import com.android.systemui.SystemUIFactory; import com.android.systemui.statusbar.NotificationData; import com.android.systemui.statusbar.NotificationData; import com.android.systemui.statusbar.SignalClusterView; import com.android.systemui.statusbar.SignalClusterView; import com.android.systemui.statusbar.StatusBarIconView; import com.android.systemui.statusbar.StatusBarIconView; Loading Loading @@ -116,8 +117,8 @@ public class StatusBarIconController extends StatusBarIconList implements Tunabl mStatusIcons = (LinearLayout) statusBar.findViewById(R.id.statusIcons); mStatusIcons = (LinearLayout) statusBar.findViewById(R.id.statusIcons); mSignalCluster = (SignalClusterView) statusBar.findViewById(R.id.signal_cluster); mSignalCluster = (SignalClusterView) statusBar.findViewById(R.id.signal_cluster); mNotificationIconAreaController = mNotificationIconAreaController = SystemUIFactory.getInstance() new NotificationIconAreaController(context, phoneStatusBar); .createNotificationIconAreaController(context, phoneStatusBar); mNotificationIconAreaInner = mNotificationIconAreaInner = mNotificationIconAreaController.getNotificationInnerAreaView(); mNotificationIconAreaController.getNotificationInnerAreaView(); Loading Loading
packages/SystemUI/src/com/android/systemui/SystemUIFactory.java +7 −0 Original line number Original line Diff line number Diff line Loading @@ -25,6 +25,8 @@ import com.android.internal.widget.LockPatternUtils; import com.android.keyguard.ViewMediatorCallback; import com.android.keyguard.ViewMediatorCallback; import com.android.systemui.statusbar.ScrimView; import com.android.systemui.statusbar.ScrimView; import com.android.systemui.statusbar.phone.KeyguardBouncer; import com.android.systemui.statusbar.phone.KeyguardBouncer; import com.android.systemui.statusbar.phone.NotificationIconAreaController; import com.android.systemui.statusbar.phone.PhoneStatusBar; import com.android.systemui.statusbar.phone.ScrimController; import com.android.systemui.statusbar.phone.ScrimController; import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager; import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager; import com.android.systemui.statusbar.phone.StatusBarWindowManager; import com.android.systemui.statusbar.phone.StatusBarWindowManager; Loading Loading @@ -75,6 +77,11 @@ public class SystemUIFactory { return new ScrimController(scrimBehind, scrimInFront, headsUpScrim); return new ScrimController(scrimBehind, scrimInFront, headsUpScrim); } } public NotificationIconAreaController createNotificationIconAreaController(Context context, PhoneStatusBar phoneStatusBar) { return new NotificationIconAreaController(context, phoneStatusBar); } public <T> T createInstance(Class<T> classType) { public <T> T createInstance(Class<T> classType) { return null; return null; } } Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/IconMerger.java +13 −5 Original line number Original line Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.systemui.statusbar.phone; package com.android.systemui.statusbar.phone; import android.content.Context; import android.content.Context; import android.content.res.Resources; import android.util.AttributeSet; import android.util.AttributeSet; import android.view.View; import android.view.View; import android.widget.LinearLayout; import android.widget.LinearLayout; Loading @@ -27,14 +28,17 @@ public class IconMerger extends LinearLayout { private static final String TAG = "IconMerger"; private static final String TAG = "IconMerger"; private static final boolean DEBUG = false; private static final boolean DEBUG = false; private int mIconSize; private final int mIconSize; private final int mIconHPadding; private View mMoreView; private View mMoreView; public IconMerger(Context context, AttributeSet attrs) { public IconMerger(Context context, AttributeSet attrs) { super(context, attrs); super(context, attrs); mIconSize = context.getResources().getDimensionPixelSize( Resources res = context.getResources(); R.dimen.status_bar_icon_size); mIconSize = res.getDimensionPixelSize(R.dimen.status_bar_icon_size); mIconHPadding = res.getDimensionPixelSize(R.dimen.status_bar_icon_padding); if (DEBUG) { if (DEBUG) { setBackgroundColor(0x800099FF); setBackgroundColor(0x800099FF); Loading @@ -45,12 +49,16 @@ public class IconMerger extends LinearLayout { mMoreView = v; mMoreView = v; } } private int getFullIconWidth() { return mIconSize + 2 * mIconHPadding; } @Override @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); super.onMeasure(widthMeasureSpec, heightMeasureSpec); // we need to constrain this to an integral multiple of our children // we need to constrain this to an integral multiple of our children int width = getMeasuredWidth(); int width = getMeasuredWidth(); setMeasuredDimension(width - (width % mIconSize), getMeasuredHeight()); setMeasuredDimension(width - (width % getFullIconWidth()), getMeasuredHeight()); } } @Override @Override Loading @@ -70,7 +78,7 @@ public class IconMerger extends LinearLayout { final boolean overflowShown = (mMoreView.getVisibility() == View.VISIBLE); final boolean overflowShown = (mMoreView.getVisibility() == View.VISIBLE); // let's assume we have one more slot if the more icon is already showing // let's assume we have one more slot if the more icon is already showing if (overflowShown) visibleChildren --; if (overflowShown) visibleChildren --; final boolean moreRequired = visibleChildren * mIconSize > width; final boolean moreRequired = visibleChildren * getFullIconWidth() > width; if (moreRequired != overflowShown) { if (moreRequired != overflowShown) { post(new Runnable() { post(new Runnable() { @Override @Override Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconAreaController.java +38 −17 Original line number Original line Diff line number Diff line Loading @@ -17,6 +17,7 @@ import com.android.systemui.statusbar.StatusBarIconView; import com.android.systemui.statusbar.notification.NotificationUtils; import com.android.systemui.statusbar.notification.NotificationUtils; import java.util.ArrayList; import java.util.ArrayList; import java.util.List; /** /** * A controller for the space in the status bar to the left of the system icons. This area is * A controller for the space in the status bar to the left of the system icons. This area is Loading @@ -42,6 +43,10 @@ public class NotificationIconAreaController { initializeNotificationAreaViews(context); initializeNotificationAreaViews(context); } } protected View inflateIconArea(LayoutInflater inflater) { return inflater.inflate(R.layout.notification_icon_area, null); } /** /** * Initializes the views that will represent the notification area. * Initializes the views that will represent the notification area. */ */ Loading @@ -51,15 +56,17 @@ public class NotificationIconAreaController { mIconHPadding = res.getDimensionPixelSize(R.dimen.status_bar_icon_padding); mIconHPadding = res.getDimensionPixelSize(R.dimen.status_bar_icon_padding); LayoutInflater layoutInflater = LayoutInflater.from(context); LayoutInflater layoutInflater = LayoutInflater.from(context); mNotificationIconArea = layoutInflater.inflate(R.layout.notification_icon_area, null); mNotificationIconArea = inflateIconArea(layoutInflater); mMoreIcon = (ImageView) mNotificationIconArea.findViewById(R.id.moreIcon); mMoreIcon.setImageTintList(ColorStateList.valueOf(mIconTint)); mNotificationIcons = mNotificationIcons = (IconMerger) mNotificationIconArea.findViewById(R.id.notificationIcons); (IconMerger) mNotificationIconArea.findViewById(R.id.notificationIcons); mMoreIcon = (ImageView) mNotificationIconArea.findViewById(R.id.moreIcon); if (mMoreIcon != null) { mMoreIcon.setImageTintList(ColorStateList.valueOf(mIconTint)); mNotificationIcons.setOverflowIndicator(mMoreIcon); mNotificationIcons.setOverflowIndicator(mMoreIcon); } } } /** /** * Returns the view that represents the notification area. * Returns the view that represents the notification area. Loading Loading @@ -88,16 +95,38 @@ public class NotificationIconAreaController { */ */ public void setIconTint(int iconTint) { public void setIconTint(int iconTint) { mIconTint = iconTint; mIconTint = iconTint; if (mMoreIcon != null) { mMoreIcon.setImageTintList(ColorStateList.valueOf(mIconTint)); mMoreIcon.setImageTintList(ColorStateList.valueOf(mIconTint)); } applyNotificationIconsTint(); applyNotificationIconsTint(); } } protected int getHeight() { return mPhoneStatusBar.getStatusBarHeight(); } protected boolean shouldShowNotification(NotificationData.Entry entry, NotificationData notificationData) { if (notificationData.isAmbient(entry.key) && !NotificationData.showNotificationEvenIfUnprovisioned(entry.notification)) { return false; } if (!PhoneStatusBar.isTopLevelChild(entry)) { return false; } if (entry.row.getVisibility() == View.GONE) { return false; } return true; } /** /** * Updates the notifications with the given list of notifications to display. * Updates the notifications with the given list of notifications to display. */ */ public void updateNotificationIcons(NotificationData notificationData) { public void updateNotificationIcons(NotificationData notificationData) { final LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( final LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( mIconSize + 2 * mIconHPadding, mPhoneStatusBar.getStatusBarHeight()); mIconSize + 2 * mIconHPadding, getHeight()); ArrayList<NotificationData.Entry> activeNotifications = ArrayList<NotificationData.Entry> activeNotifications = notificationData.getActiveNotifications(); notificationData.getActiveNotifications(); Loading @@ -107,18 +136,10 @@ public class NotificationIconAreaController { // Filter out ambient notifications and notification children. // Filter out ambient notifications and notification children. for (int i = 0; i < size; i++) { for (int i = 0; i < size; i++) { NotificationData.Entry ent = activeNotifications.get(i); NotificationData.Entry ent = activeNotifications.get(i); if (notificationData.isAmbient(ent.key) if (shouldShowNotification(ent, notificationData)) { && !NotificationData.showNotificationEvenIfUnprovisioned(ent.notification)) { continue; } if (!PhoneStatusBar.isTopLevelChild(ent)) { continue; } if (ent.row.getVisibility() == View.GONE) { continue; } toShow.add(ent.icon); toShow.add(ent.icon); } } } ArrayList<View> toRemove = new ArrayList<>(); ArrayList<View> toRemove = new ArrayList<>(); for (int i = 0; i < mNotificationIcons.getChildCount(); i++) { for (int i = 0; i < mNotificationIcons.getChildCount(); i++) { Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +10 −8 Original line number Original line Diff line number Diff line Loading @@ -48,7 +48,6 @@ import android.graphics.PorterDuffXfermode; import android.graphics.Rect; import android.graphics.Rect; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable; import android.hardware.display.DisplayManager; import android.inputmethodservice.InputMethodService; import android.inputmethodservice.InputMethodService; import android.media.AudioAttributes; import android.media.AudioAttributes; import android.media.MediaMetadata; import android.media.MediaMetadata; Loading Loading @@ -132,7 +131,6 @@ import com.android.systemui.statusbar.DismissView; import com.android.systemui.statusbar.DragDownHelper; import com.android.systemui.statusbar.DragDownHelper; import com.android.systemui.statusbar.EmptyShadeView; import com.android.systemui.statusbar.EmptyShadeView; import com.android.systemui.statusbar.ExpandableNotificationRow; import com.android.systemui.statusbar.ExpandableNotificationRow; import com.android.systemui.statusbar.ExpandableView; import com.android.systemui.statusbar.GestureRecorder; import com.android.systemui.statusbar.GestureRecorder; import com.android.systemui.statusbar.KeyguardIndicationController; import com.android.systemui.statusbar.KeyguardIndicationController; import com.android.systemui.statusbar.NotificationData; import com.android.systemui.statusbar.NotificationData; Loading Loading @@ -305,7 +303,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, Point mCurrentDisplaySize = new Point(); Point mCurrentDisplaySize = new Point(); protected StatusBarWindowView mStatusBarWindow; protected StatusBarWindowView mStatusBarWindow; PhoneStatusBarView mStatusBarView; protected PhoneStatusBarView mStatusBarView; private int mStatusBarWindowState = WINDOW_STATE_SHOWING; private int mStatusBarWindowState = WINDOW_STATE_SHOWING; protected StatusBarWindowManager mStatusBarWindowManager; protected StatusBarWindowManager mStatusBarWindowManager; private UnlockMethodCache mUnlockMethodCache; private UnlockMethodCache mUnlockMethodCache; Loading @@ -317,7 +315,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, int mPixelFormat; int mPixelFormat; Object mQueueLock = new Object(); Object mQueueLock = new Object(); StatusBarIconController mIconController; protected StatusBarIconController mIconController; // expanded notifications // expanded notifications protected NotificationPanelView mNotificationPanel; // the sliding/resizing panel within the notification window protected NotificationPanelView mNotificationPanel; // the sliding/resizing panel within the notification window Loading @@ -329,7 +327,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, // top bar // top bar BaseStatusBarHeader mHeader; BaseStatusBarHeader mHeader; KeyguardStatusBarView mKeyguardStatusBar; protected KeyguardStatusBarView mKeyguardStatusBar; View mKeyguardStatusView; View mKeyguardStatusView; KeyguardBottomAreaView mKeyguardBottomArea; KeyguardBottomAreaView mKeyguardBottomArea; boolean mLeaveOpenOnKeyguardHide; boolean mLeaveOpenOnKeyguardHide; Loading Loading @@ -678,6 +676,11 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, mFalsingManager = FalsingManager.getInstance(mContext); mFalsingManager = FalsingManager.getInstance(mContext); } } protected void createIconController() { mIconController = new StatusBarIconController( mContext, mStatusBarView, mKeyguardStatusBar, this); } // ================================================================================ // ================================================================================ // Constructing the view // Constructing the view // ================================================================================ // ================================================================================ Loading Loading @@ -811,8 +814,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, // set the initial view visibility // set the initial view visibility setAreThereNotifications(); setAreThereNotifications(); mIconController = new StatusBarIconController( createIconController(); mContext, mStatusBarView, mKeyguardStatusBar, this); // Background thread for any controllers that need it. // Background thread for any controllers that need it. mHandlerThread = new HandlerThread(TAG, Process.THREAD_PRIORITY_BACKGROUND); mHandlerThread = new HandlerThread(TAG, Process.THREAD_PRIORITY_BACKGROUND); Loading Loading @@ -1989,7 +1991,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, } } } } private int adjustDisableFlags(int state) { protected int adjustDisableFlags(int state) { if (!mLaunchTransitionFadingAway && !mKeyguardFadingAway if (!mLaunchTransitionFadingAway && !mKeyguardFadingAway && (mExpandedVisible || mBouncerShowing || mWaitingForKeyguardExit)) { && (mExpandedVisible || mBouncerShowing || mWaitingForKeyguardExit)) { state |= StatusBarManager.DISABLE_NOTIFICATION_ICONS; state |= StatusBarManager.DISABLE_NOTIFICATION_ICONS; Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java +3 −2 Original line number Original line Diff line number Diff line Loading @@ -42,6 +42,7 @@ import com.android.systemui.BatteryMeterView; import com.android.systemui.FontSizeUtils; import com.android.systemui.FontSizeUtils; import com.android.systemui.Interpolators; import com.android.systemui.Interpolators; import com.android.systemui.R; import com.android.systemui.R; import com.android.systemui.SystemUIFactory; import com.android.systemui.statusbar.NotificationData; import com.android.systemui.statusbar.NotificationData; import com.android.systemui.statusbar.SignalClusterView; import com.android.systemui.statusbar.SignalClusterView; import com.android.systemui.statusbar.StatusBarIconView; import com.android.systemui.statusbar.StatusBarIconView; Loading Loading @@ -116,8 +117,8 @@ public class StatusBarIconController extends StatusBarIconList implements Tunabl mStatusIcons = (LinearLayout) statusBar.findViewById(R.id.statusIcons); mStatusIcons = (LinearLayout) statusBar.findViewById(R.id.statusIcons); mSignalCluster = (SignalClusterView) statusBar.findViewById(R.id.signal_cluster); mSignalCluster = (SignalClusterView) statusBar.findViewById(R.id.signal_cluster); mNotificationIconAreaController = mNotificationIconAreaController = SystemUIFactory.getInstance() new NotificationIconAreaController(context, phoneStatusBar); .createNotificationIconAreaController(context, phoneStatusBar); mNotificationIconAreaInner = mNotificationIconAreaInner = mNotificationIconAreaController.getNotificationInnerAreaView(); mNotificationIconAreaController.getNotificationInnerAreaView(); Loading