Loading packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeaderController.java +2 −5 Original line number Diff line number Diff line Loading @@ -48,7 +48,6 @@ import com.android.systemui.privacy.logging.PrivacyLogger; import com.android.systemui.qs.carrier.QSCarrierGroupController; import com.android.systemui.qs.dagger.QSScope; import com.android.systemui.settings.UserTracker; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.phone.StatusBarIconController; import com.android.systemui.statusbar.phone.StatusIconContainer; import com.android.systemui.statusbar.policy.Clock; Loading Loading @@ -86,7 +85,6 @@ class QuickStatusBarHeaderController extends ViewController<QuickStatusBarHeader private final View mRingerContainer; private final QSTileHost mQSTileHost; private final StatusBarIconController mStatusBarIconController; private final CommandQueue mCommandQueue; private final DemoModeController mDemoModeController; private final UserTracker mUserTracker; private final StatusIconContainer mIconContainer; Loading Loading @@ -204,7 +202,7 @@ class QuickStatusBarHeaderController extends ViewController<QuickStatusBarHeader PrivacyItemController privacyItemController, RingerModeTracker ringerModeTracker, ActivityStarter activityStarter, UiEventLogger uiEventLogger, QSTileHost qsTileHost, StatusBarIconController statusBarIconController, CommandQueue commandQueue, DemoModeController demoModeController, DemoModeController demoModeController, UserTracker userTracker, QuickQSPanelController quickQSPanelController, QSCarrierGroupController.Builder qsCarrierGroupControllerBuilder, PrivacyLogger privacyLogger, Loading @@ -219,7 +217,6 @@ class QuickStatusBarHeaderController extends ViewController<QuickStatusBarHeader mUiEventLogger = uiEventLogger; mQSTileHost = qsTileHost; mStatusBarIconController = statusBarIconController; mCommandQueue = commandQueue; mDemoModeController = demoModeController; mUserTracker = userTracker; mLifecycle = new LifecycleRegistry(mLifecycleOwner); Loading @@ -238,7 +235,7 @@ class QuickStatusBarHeaderController extends ViewController<QuickStatusBarHeader mRingerContainer = mView.findViewById(R.id.ringer_container); mIconContainer = mView.findViewById(R.id.statusIcons); mIconManager = new StatusBarIconController.TintedIconManager(mIconContainer, mCommandQueue); mIconManager = new StatusBarIconController.TintedIconManager(mIconContainer); mDemoModeReceiver = new ClockDemoModeReceiver(mClockView); mColorExtractor = colorExtractor; mOnColorsChangedListener = (extractor, which) -> { Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java +10 −2 Original line number Diff line number Diff line Loading @@ -42,6 +42,9 @@ import com.android.systemui.statusbar.policy.KeyguardStateController; import com.android.systemui.statusbar.policy.NetworkController; import com.android.systemui.statusbar.policy.NetworkController.SignalCallback; import java.util.ArrayList; import java.util.List; /** * Contains the collapsed status bar and handles hiding/showing based on disable flags * and keyguard state. Also manages lifecycle to make sure the views it contains are being Loading Loading @@ -70,6 +73,8 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue private View mOperatorNameFrame; private CommandQueue mCommandQueue; private List<String> mBlockedIcons = new ArrayList<>(); private SignalCallback mSignalCallback = new SignalCallback() { @Override public void setIsAirplaneMode(NetworkController.IconState icon) { Loading Loading @@ -101,9 +106,12 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue mStatusBar.restoreHierarchyState( savedInstanceState.getSparseParcelableArray(EXTRA_PANEL_STATE)); } mDarkIconManager = new DarkIconManager(view.findViewById(R.id.statusIcons), Dependency.get(CommandQueue.class)); mDarkIconManager = new DarkIconManager(view.findViewById(R.id.statusIcons)); mDarkIconManager.setShouldLog(true); mBlockedIcons.add(getString(com.android.internal.R.string.status_bar_volume)); mBlockedIcons.add(getString(com.android.internal.R.string.status_bar_alarm_clock)); mBlockedIcons.add(getString(com.android.internal.R.string.status_bar_call_strength)); mDarkIconManager.setBlockList(mBlockedIcons); Dependency.get(StatusBarIconController.class).addIconGroup(mDarkIconManager); mSystemIconArea = mStatusBar.findViewById(R.id.system_icon_area); mClockView = mStatusBar.findViewById(R.id.clock); Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java +14 −3 Original line number Diff line number Diff line Loading @@ -47,7 +47,6 @@ import com.android.systemui.Dependency; import com.android.systemui.Interpolators; import com.android.systemui.R; import com.android.systemui.plugins.DarkIconDispatcher.DarkReceiver; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.phone.StatusBarIconController.TintedIconManager; import com.android.systemui.statusbar.policy.BatteryController; import com.android.systemui.statusbar.policy.BatteryController.BatteryStateChangeCallback; Loading @@ -59,6 +58,8 @@ import com.android.systemui.statusbar.policy.UserInfoControllerImpl; import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; /** * The header group on Keyguard. Loading Loading @@ -89,6 +90,7 @@ public class KeyguardStatusBarView extends RelativeLayout private int mSystemIconsBaseMargin; private View mSystemIconsContainer; private TintedIconManager mIconManager; private List<String> mBlockedIcons = new ArrayList<>(); private View mCutoutSpace; private ViewGroup mStatusIconArea; Loading Loading @@ -121,6 +123,7 @@ public class KeyguardStatusBarView extends RelativeLayout mStatusIconContainer = findViewById(R.id.statusIcons); loadDimens(); loadBlockList(); mBatteryController = Dependency.get(BatteryController.class); } Loading Loading @@ -181,6 +184,14 @@ public class KeyguardStatusBarView extends RelativeLayout R.dimen.rounded_corner_content_padding); } // Set hidden status bar items private void loadBlockList() { Resources r = getResources(); mBlockedIcons.add(r.getString(com.android.internal.R.string.status_bar_volume)); mBlockedIcons.add(r.getString(com.android.internal.R.string.status_bar_alarm_clock)); mBlockedIcons.add(r.getString(com.android.internal.R.string.status_bar_call_strength)); } private void updateVisibilities() { if (mMultiUserAvatar.getParent() != mStatusIconArea && !mKeyguardUserSwitcherEnabled) { Loading Loading @@ -336,8 +347,8 @@ public class KeyguardStatusBarView extends RelativeLayout userInfoController.addCallback(this); userInfoController.reloadUserInfo(); Dependency.get(ConfigurationController.class).addCallback(this); mIconManager = new TintedIconManager(findViewById(R.id.statusIcons), Dependency.get(CommandQueue.class)); mIconManager = new TintedIconManager(findViewById(R.id.statusIcons)); mIconManager.setBlockList(mBlockedIcons); Dependency.get(StatusBarIconController.class).addIconGroup(mIconManager); onThemeChanged(); } Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java +45 −19 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ import static com.android.systemui.statusbar.phone.StatusBarIconHolder.TYPE_ICON import static com.android.systemui.statusbar.phone.StatusBarIconHolder.TYPE_MOBILE; import static com.android.systemui.statusbar.phone.StatusBarIconHolder.TYPE_WIFI; import android.annotation.Nullable; import android.content.Context; import android.os.Bundle; import android.text.TextUtils; Loading @@ -37,7 +38,6 @@ import com.android.systemui.R; import com.android.systemui.demomode.DemoModeCommandReceiver; import com.android.systemui.plugins.DarkIconDispatcher; import com.android.systemui.plugins.DarkIconDispatcher.DarkReceiver; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.StatusBarIconView; import com.android.systemui.statusbar.StatusBarMobileView; import com.android.systemui.statusbar.StatusBarWifiView; Loading @@ -46,6 +46,7 @@ import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.CallIndicatorI import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.MobileIconState; import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.WifiIconState; import java.util.ArrayList; import java.util.List; public interface StatusBarIconController { Loading @@ -54,15 +55,22 @@ public interface StatusBarIconController { * When an icon is added with TAG_PRIMARY, it will be treated as the primary icon * in that slot and not added as a sub slot. */ public static final int TAG_PRIMARY = 0; public void addIconGroup(IconManager iconManager); public void removeIconGroup(IconManager iconManager); public void setExternalIcon(String slot); public void setIcon(String slot, int resourceId, CharSequence contentDescription); public void setIcon(String slot, StatusBarIcon icon); public void setSignalIcon(String slot, WifiIconState state); public void setMobileIcons(String slot, List<MobileIconState> states); int TAG_PRIMARY = 0; /** */ void addIconGroup(IconManager iconManager); /** */ void removeIconGroup(IconManager iconManager); /** */ void setExternalIcon(String slot); /** */ void setIcon(String slot, int resourceId, CharSequence contentDescription); /** */ void setIcon(String slot, StatusBarIcon icon); /** */ void setSignalIcon(String slot, WifiIconState state); /** */ void setMobileIcons(String slot, List<MobileIconState> states); /** * Display the no calling & SMS icons. */ Loading @@ -85,8 +93,9 @@ public interface StatusBarIconController { * If you don't know what to pass for `tag`, either remove all icons for slot, or use * TAG_PRIMARY to refer to the first icon at a given slot. */ public void removeIcon(String slot, int tag); public void removeAllIconsForSlot(String slot); void removeIcon(String slot, int tag); /** */ void removeAllIconsForSlot(String slot); // TODO: See if we can rename this tunable name. String ICON_HIDE_LIST = "icon_blacklist"; Loading @@ -108,12 +117,12 @@ public interface StatusBarIconController { /** * Version of ViewGroup that observes state from the DarkIconDispatcher. */ public static class DarkIconManager extends IconManager { class DarkIconManager extends IconManager { private final DarkIconDispatcher mDarkIconDispatcher; private int mIconHPadding; public DarkIconManager(LinearLayout linearLayout, CommandQueue commandQueue) { super(linearLayout, commandQueue); public DarkIconManager(LinearLayout linearLayout) { super(linearLayout); mIconHPadding = mContext.getResources().getDimensionPixelSize( R.dimen.status_bar_icon_padding); mDarkIconDispatcher = Dependency.get(DarkIconDispatcher.class); Loading Loading @@ -169,11 +178,12 @@ public interface StatusBarIconController { } } public static class TintedIconManager extends IconManager { /** */ class TintedIconManager extends IconManager { private int mColor; public TintedIconManager(ViewGroup group, CommandQueue commandQueue) { super(group, commandQueue); public TintedIconManager(ViewGroup group) { super(group); } @Override Loading Loading @@ -219,7 +229,9 @@ public interface StatusBarIconController { private boolean mIsInDemoMode; protected DemoStatusIcons mDemoStatusIcons; public IconManager(ViewGroup group, CommandQueue commandQueue) { protected ArrayList<String> mBlockList = new ArrayList<>(); public IconManager(ViewGroup group) { mGroup = group; mContext = group.getContext(); mIconSize = mContext.getResources().getDimensionPixelSize( Loading @@ -234,6 +246,15 @@ public interface StatusBarIconController { mDemoable = demoable; } public void setBlockList(@Nullable List<String> blockList) { mBlockList.clear(); if (blockList == null || blockList.isEmpty()) { return; } mBlockList.addAll(blockList); } public void setShouldLog(boolean should) { mShouldLog = should; } Loading @@ -249,6 +270,11 @@ public interface StatusBarIconController { protected StatusIconDisplayable addHolder(int index, String slot, boolean blocked, StatusBarIconHolder holder) { // This is a little hacky, and probably regrettable, but just set `blocked` on any icon // that is in our blocked list, then we'll never see it if (mBlockList.contains(slot)) { blocked = true; } switch (holder.getType()) { case TYPE_ICON: return addIcon(index, slot, blocked, holder.getIcon()); Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconControllerImpl.java +19 −1 Original line number Diff line number Diff line Loading @@ -66,6 +66,7 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu private Context mContext; /** */ @Inject public StatusBarIconControllerImpl( Context context, Loading @@ -84,6 +85,7 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu demoModeController.addCallback(this); } /** */ @Override public void addIconGroup(IconManager group) { mIconGroups.add(group); Loading @@ -101,12 +103,14 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu } } /** */ @Override public void removeIconGroup(IconManager group) { group.destroy(); mIconGroups.remove(group); } /** */ @Override public void onTuningChanged(String key, String newValue) { if (!ICON_HIDE_LIST.equals(key)) { Loading Loading @@ -149,6 +153,7 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu mIconGroups.forEach(l -> l.onIconAdded(viewIndex, slot, hidden, holder)); } /** */ @Override public void setIcon(String slot, int resourceId, CharSequence contentDescription) { int index = getSlotIndex(slot); Loading Loading @@ -290,8 +295,9 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu * For backwards compatibility, in the event that someone gives us a slot and a status bar icon */ private void setIcon(int index, StatusBarIcon icon) { String slot = getSlotName(index); if (icon == null) { removeAllIconsForSlot(getSlotName(index)); removeAllIconsForSlot(slot); return; } Loading @@ -299,6 +305,7 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu setIcon(index, holder); } /** */ @Override public void setIcon(int index, @NonNull StatusBarIconHolder holder) { boolean isNew = getIcon(index, holder.getTag()) == null; Loading Loading @@ -328,6 +335,7 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu handleSet(index, holder); } /** */ @Override public void setIconAccessibilityLiveRegion(String slotName, int accessibilityLiveRegion) { Slot slot = getSlot(slotName); Loading @@ -344,15 +352,18 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu } } /** */ public void removeIcon(String slot) { removeAllIconsForSlot(slot); } /** */ @Override public void removeIcon(String slot, int tag) { removeIcon(getSlotIndex(slot), tag); } /** */ @Override public void removeAllIconsForSlot(String slotName) { Slot slot = getSlot(slotName); Loading @@ -369,6 +380,7 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu } } /** */ @Override public void removeIcon(int index, int tag) { if (getIcon(index, tag) == null) { Loading @@ -384,6 +396,7 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu mIconGroups.forEach(l -> l.onSetIconHolder(viewIndex, holder)); } /** */ @Override public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { pw.println(TAG + " state:"); Loading @@ -402,6 +415,7 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu super.dump(pw); } /** */ @Override public void onDemoModeStarted() { for (IconManager manager : mIconGroups) { Loading @@ -411,6 +425,7 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu } } /** */ @Override public void onDemoModeFinished() { for (IconManager manager : mIconGroups) { Loading @@ -420,6 +435,7 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu } } /** */ @Override public void dispatchDemoCommand(String command, Bundle args) { for (IconManager manager : mIconGroups) { Loading @@ -429,6 +445,7 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu } } /** */ @Override public List<String> demoCommands() { List<String> s = new ArrayList<>(); Loading @@ -436,6 +453,7 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu return s; } /** */ @Override public void onDensityOrFontScaleChanged() { loadDimens(); Loading Loading
packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeaderController.java +2 −5 Original line number Diff line number Diff line Loading @@ -48,7 +48,6 @@ import com.android.systemui.privacy.logging.PrivacyLogger; import com.android.systemui.qs.carrier.QSCarrierGroupController; import com.android.systemui.qs.dagger.QSScope; import com.android.systemui.settings.UserTracker; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.phone.StatusBarIconController; import com.android.systemui.statusbar.phone.StatusIconContainer; import com.android.systemui.statusbar.policy.Clock; Loading Loading @@ -86,7 +85,6 @@ class QuickStatusBarHeaderController extends ViewController<QuickStatusBarHeader private final View mRingerContainer; private final QSTileHost mQSTileHost; private final StatusBarIconController mStatusBarIconController; private final CommandQueue mCommandQueue; private final DemoModeController mDemoModeController; private final UserTracker mUserTracker; private final StatusIconContainer mIconContainer; Loading Loading @@ -204,7 +202,7 @@ class QuickStatusBarHeaderController extends ViewController<QuickStatusBarHeader PrivacyItemController privacyItemController, RingerModeTracker ringerModeTracker, ActivityStarter activityStarter, UiEventLogger uiEventLogger, QSTileHost qsTileHost, StatusBarIconController statusBarIconController, CommandQueue commandQueue, DemoModeController demoModeController, DemoModeController demoModeController, UserTracker userTracker, QuickQSPanelController quickQSPanelController, QSCarrierGroupController.Builder qsCarrierGroupControllerBuilder, PrivacyLogger privacyLogger, Loading @@ -219,7 +217,6 @@ class QuickStatusBarHeaderController extends ViewController<QuickStatusBarHeader mUiEventLogger = uiEventLogger; mQSTileHost = qsTileHost; mStatusBarIconController = statusBarIconController; mCommandQueue = commandQueue; mDemoModeController = demoModeController; mUserTracker = userTracker; mLifecycle = new LifecycleRegistry(mLifecycleOwner); Loading @@ -238,7 +235,7 @@ class QuickStatusBarHeaderController extends ViewController<QuickStatusBarHeader mRingerContainer = mView.findViewById(R.id.ringer_container); mIconContainer = mView.findViewById(R.id.statusIcons); mIconManager = new StatusBarIconController.TintedIconManager(mIconContainer, mCommandQueue); mIconManager = new StatusBarIconController.TintedIconManager(mIconContainer); mDemoModeReceiver = new ClockDemoModeReceiver(mClockView); mColorExtractor = colorExtractor; mOnColorsChangedListener = (extractor, which) -> { Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java +10 −2 Original line number Diff line number Diff line Loading @@ -42,6 +42,9 @@ import com.android.systemui.statusbar.policy.KeyguardStateController; import com.android.systemui.statusbar.policy.NetworkController; import com.android.systemui.statusbar.policy.NetworkController.SignalCallback; import java.util.ArrayList; import java.util.List; /** * Contains the collapsed status bar and handles hiding/showing based on disable flags * and keyguard state. Also manages lifecycle to make sure the views it contains are being Loading Loading @@ -70,6 +73,8 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue private View mOperatorNameFrame; private CommandQueue mCommandQueue; private List<String> mBlockedIcons = new ArrayList<>(); private SignalCallback mSignalCallback = new SignalCallback() { @Override public void setIsAirplaneMode(NetworkController.IconState icon) { Loading Loading @@ -101,9 +106,12 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue mStatusBar.restoreHierarchyState( savedInstanceState.getSparseParcelableArray(EXTRA_PANEL_STATE)); } mDarkIconManager = new DarkIconManager(view.findViewById(R.id.statusIcons), Dependency.get(CommandQueue.class)); mDarkIconManager = new DarkIconManager(view.findViewById(R.id.statusIcons)); mDarkIconManager.setShouldLog(true); mBlockedIcons.add(getString(com.android.internal.R.string.status_bar_volume)); mBlockedIcons.add(getString(com.android.internal.R.string.status_bar_alarm_clock)); mBlockedIcons.add(getString(com.android.internal.R.string.status_bar_call_strength)); mDarkIconManager.setBlockList(mBlockedIcons); Dependency.get(StatusBarIconController.class).addIconGroup(mDarkIconManager); mSystemIconArea = mStatusBar.findViewById(R.id.system_icon_area); mClockView = mStatusBar.findViewById(R.id.clock); Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java +14 −3 Original line number Diff line number Diff line Loading @@ -47,7 +47,6 @@ import com.android.systemui.Dependency; import com.android.systemui.Interpolators; import com.android.systemui.R; import com.android.systemui.plugins.DarkIconDispatcher.DarkReceiver; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.phone.StatusBarIconController.TintedIconManager; import com.android.systemui.statusbar.policy.BatteryController; import com.android.systemui.statusbar.policy.BatteryController.BatteryStateChangeCallback; Loading @@ -59,6 +58,8 @@ import com.android.systemui.statusbar.policy.UserInfoControllerImpl; import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; /** * The header group on Keyguard. Loading Loading @@ -89,6 +90,7 @@ public class KeyguardStatusBarView extends RelativeLayout private int mSystemIconsBaseMargin; private View mSystemIconsContainer; private TintedIconManager mIconManager; private List<String> mBlockedIcons = new ArrayList<>(); private View mCutoutSpace; private ViewGroup mStatusIconArea; Loading Loading @@ -121,6 +123,7 @@ public class KeyguardStatusBarView extends RelativeLayout mStatusIconContainer = findViewById(R.id.statusIcons); loadDimens(); loadBlockList(); mBatteryController = Dependency.get(BatteryController.class); } Loading Loading @@ -181,6 +184,14 @@ public class KeyguardStatusBarView extends RelativeLayout R.dimen.rounded_corner_content_padding); } // Set hidden status bar items private void loadBlockList() { Resources r = getResources(); mBlockedIcons.add(r.getString(com.android.internal.R.string.status_bar_volume)); mBlockedIcons.add(r.getString(com.android.internal.R.string.status_bar_alarm_clock)); mBlockedIcons.add(r.getString(com.android.internal.R.string.status_bar_call_strength)); } private void updateVisibilities() { if (mMultiUserAvatar.getParent() != mStatusIconArea && !mKeyguardUserSwitcherEnabled) { Loading Loading @@ -336,8 +347,8 @@ public class KeyguardStatusBarView extends RelativeLayout userInfoController.addCallback(this); userInfoController.reloadUserInfo(); Dependency.get(ConfigurationController.class).addCallback(this); mIconManager = new TintedIconManager(findViewById(R.id.statusIcons), Dependency.get(CommandQueue.class)); mIconManager = new TintedIconManager(findViewById(R.id.statusIcons)); mIconManager.setBlockList(mBlockedIcons); Dependency.get(StatusBarIconController.class).addIconGroup(mIconManager); onThemeChanged(); } Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java +45 −19 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ import static com.android.systemui.statusbar.phone.StatusBarIconHolder.TYPE_ICON import static com.android.systemui.statusbar.phone.StatusBarIconHolder.TYPE_MOBILE; import static com.android.systemui.statusbar.phone.StatusBarIconHolder.TYPE_WIFI; import android.annotation.Nullable; import android.content.Context; import android.os.Bundle; import android.text.TextUtils; Loading @@ -37,7 +38,6 @@ import com.android.systemui.R; import com.android.systemui.demomode.DemoModeCommandReceiver; import com.android.systemui.plugins.DarkIconDispatcher; import com.android.systemui.plugins.DarkIconDispatcher.DarkReceiver; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.StatusBarIconView; import com.android.systemui.statusbar.StatusBarMobileView; import com.android.systemui.statusbar.StatusBarWifiView; Loading @@ -46,6 +46,7 @@ import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.CallIndicatorI import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.MobileIconState; import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.WifiIconState; import java.util.ArrayList; import java.util.List; public interface StatusBarIconController { Loading @@ -54,15 +55,22 @@ public interface StatusBarIconController { * When an icon is added with TAG_PRIMARY, it will be treated as the primary icon * in that slot and not added as a sub slot. */ public static final int TAG_PRIMARY = 0; public void addIconGroup(IconManager iconManager); public void removeIconGroup(IconManager iconManager); public void setExternalIcon(String slot); public void setIcon(String slot, int resourceId, CharSequence contentDescription); public void setIcon(String slot, StatusBarIcon icon); public void setSignalIcon(String slot, WifiIconState state); public void setMobileIcons(String slot, List<MobileIconState> states); int TAG_PRIMARY = 0; /** */ void addIconGroup(IconManager iconManager); /** */ void removeIconGroup(IconManager iconManager); /** */ void setExternalIcon(String slot); /** */ void setIcon(String slot, int resourceId, CharSequence contentDescription); /** */ void setIcon(String slot, StatusBarIcon icon); /** */ void setSignalIcon(String slot, WifiIconState state); /** */ void setMobileIcons(String slot, List<MobileIconState> states); /** * Display the no calling & SMS icons. */ Loading @@ -85,8 +93,9 @@ public interface StatusBarIconController { * If you don't know what to pass for `tag`, either remove all icons for slot, or use * TAG_PRIMARY to refer to the first icon at a given slot. */ public void removeIcon(String slot, int tag); public void removeAllIconsForSlot(String slot); void removeIcon(String slot, int tag); /** */ void removeAllIconsForSlot(String slot); // TODO: See if we can rename this tunable name. String ICON_HIDE_LIST = "icon_blacklist"; Loading @@ -108,12 +117,12 @@ public interface StatusBarIconController { /** * Version of ViewGroup that observes state from the DarkIconDispatcher. */ public static class DarkIconManager extends IconManager { class DarkIconManager extends IconManager { private final DarkIconDispatcher mDarkIconDispatcher; private int mIconHPadding; public DarkIconManager(LinearLayout linearLayout, CommandQueue commandQueue) { super(linearLayout, commandQueue); public DarkIconManager(LinearLayout linearLayout) { super(linearLayout); mIconHPadding = mContext.getResources().getDimensionPixelSize( R.dimen.status_bar_icon_padding); mDarkIconDispatcher = Dependency.get(DarkIconDispatcher.class); Loading Loading @@ -169,11 +178,12 @@ public interface StatusBarIconController { } } public static class TintedIconManager extends IconManager { /** */ class TintedIconManager extends IconManager { private int mColor; public TintedIconManager(ViewGroup group, CommandQueue commandQueue) { super(group, commandQueue); public TintedIconManager(ViewGroup group) { super(group); } @Override Loading Loading @@ -219,7 +229,9 @@ public interface StatusBarIconController { private boolean mIsInDemoMode; protected DemoStatusIcons mDemoStatusIcons; public IconManager(ViewGroup group, CommandQueue commandQueue) { protected ArrayList<String> mBlockList = new ArrayList<>(); public IconManager(ViewGroup group) { mGroup = group; mContext = group.getContext(); mIconSize = mContext.getResources().getDimensionPixelSize( Loading @@ -234,6 +246,15 @@ public interface StatusBarIconController { mDemoable = demoable; } public void setBlockList(@Nullable List<String> blockList) { mBlockList.clear(); if (blockList == null || blockList.isEmpty()) { return; } mBlockList.addAll(blockList); } public void setShouldLog(boolean should) { mShouldLog = should; } Loading @@ -249,6 +270,11 @@ public interface StatusBarIconController { protected StatusIconDisplayable addHolder(int index, String slot, boolean blocked, StatusBarIconHolder holder) { // This is a little hacky, and probably regrettable, but just set `blocked` on any icon // that is in our blocked list, then we'll never see it if (mBlockList.contains(slot)) { blocked = true; } switch (holder.getType()) { case TYPE_ICON: return addIcon(index, slot, blocked, holder.getIcon()); Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconControllerImpl.java +19 −1 Original line number Diff line number Diff line Loading @@ -66,6 +66,7 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu private Context mContext; /** */ @Inject public StatusBarIconControllerImpl( Context context, Loading @@ -84,6 +85,7 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu demoModeController.addCallback(this); } /** */ @Override public void addIconGroup(IconManager group) { mIconGroups.add(group); Loading @@ -101,12 +103,14 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu } } /** */ @Override public void removeIconGroup(IconManager group) { group.destroy(); mIconGroups.remove(group); } /** */ @Override public void onTuningChanged(String key, String newValue) { if (!ICON_HIDE_LIST.equals(key)) { Loading Loading @@ -149,6 +153,7 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu mIconGroups.forEach(l -> l.onIconAdded(viewIndex, slot, hidden, holder)); } /** */ @Override public void setIcon(String slot, int resourceId, CharSequence contentDescription) { int index = getSlotIndex(slot); Loading Loading @@ -290,8 +295,9 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu * For backwards compatibility, in the event that someone gives us a slot and a status bar icon */ private void setIcon(int index, StatusBarIcon icon) { String slot = getSlotName(index); if (icon == null) { removeAllIconsForSlot(getSlotName(index)); removeAllIconsForSlot(slot); return; } Loading @@ -299,6 +305,7 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu setIcon(index, holder); } /** */ @Override public void setIcon(int index, @NonNull StatusBarIconHolder holder) { boolean isNew = getIcon(index, holder.getTag()) == null; Loading Loading @@ -328,6 +335,7 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu handleSet(index, holder); } /** */ @Override public void setIconAccessibilityLiveRegion(String slotName, int accessibilityLiveRegion) { Slot slot = getSlot(slotName); Loading @@ -344,15 +352,18 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu } } /** */ public void removeIcon(String slot) { removeAllIconsForSlot(slot); } /** */ @Override public void removeIcon(String slot, int tag) { removeIcon(getSlotIndex(slot), tag); } /** */ @Override public void removeAllIconsForSlot(String slotName) { Slot slot = getSlot(slotName); Loading @@ -369,6 +380,7 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu } } /** */ @Override public void removeIcon(int index, int tag) { if (getIcon(index, tag) == null) { Loading @@ -384,6 +396,7 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu mIconGroups.forEach(l -> l.onSetIconHolder(viewIndex, holder)); } /** */ @Override public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { pw.println(TAG + " state:"); Loading @@ -402,6 +415,7 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu super.dump(pw); } /** */ @Override public void onDemoModeStarted() { for (IconManager manager : mIconGroups) { Loading @@ -411,6 +425,7 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu } } /** */ @Override public void onDemoModeFinished() { for (IconManager manager : mIconGroups) { Loading @@ -420,6 +435,7 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu } } /** */ @Override public void dispatchDemoCommand(String command, Bundle args) { for (IconManager manager : mIconGroups) { Loading @@ -429,6 +445,7 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu } } /** */ @Override public List<String> demoCommands() { List<String> s = new ArrayList<>(); Loading @@ -436,6 +453,7 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu return s; } /** */ @Override public void onDensityOrFontScaleChanged() { loadDimens(); Loading