Loading core/res/res/values/config.xml +8 −0 Original line number Diff line number Diff line Loading @@ -44,7 +44,11 @@ <item><xliff:g id="id">@string/status_bar_zen</xliff:g></item> <item><xliff:g id="id">@string/status_bar_mute</xliff:g></item> <item><xliff:g id="id">@string/status_bar_volume</xliff:g></item> <item><xliff:g id="id">@string/status_bar_vpn</xliff:g></item> <item><xliff:g id="id">@string/status_bar_ethernet</xliff:g></item> <item><xliff:g id="id">@string/status_bar_wifi</xliff:g></item> <item><xliff:g id="id">@string/status_bar_mobile</xliff:g></item> <item><xliff:g id="id">@string/status_bar_airplane</xliff:g></item> <item><xliff:g id="id">@string/status_bar_cdma_eri</xliff:g></item> <item><xliff:g id="id">@string/status_bar_data_connection</xliff:g></item> <item><xliff:g id="id">@string/status_bar_phone_evdo_signal</xliff:g></item> Loading Loading @@ -81,6 +85,10 @@ <string translatable="false" name="status_bar_alarm_clock">alarm_clock</string> <string translatable="false" name="status_bar_secure">secure</string> <string translatable="false" name="status_bar_clock">clock</string> <string translatable="false" name="status_bar_mobile">mobile</string> <string translatable="false" name="status_bar_vpn">vpn</string> <string translatable="false" name="status_bar_ethernet">ethernet</string> <string translatable="false" name="status_bar_airplane">airplane</string> <!-- Flag indicating whether the surface flinger has limited alpha compositing functionality in hardware. If set, the window Loading packages/SystemUI/src/com/android/systemui/BatteryMeterView.java +4 −1 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener; import com.android.systemui.statusbar.policy.DarkIconDispatcher; import com.android.systemui.statusbar.policy.DarkIconDispatcher.DarkReceiver; import com.android.systemui.statusbar.policy.IconLogger; import com.android.systemui.tuner.TunerService; import com.android.systemui.tuner.TunerService.Tunable; Loading Loading @@ -150,7 +151,9 @@ public class BatteryMeterView extends LinearLayout implements public void onTuningChanged(String key, String newValue) { if (StatusBarIconController.ICON_BLACKLIST.equals(key)) { ArraySet<String> icons = StatusBarIconController.getIconBlacklist(newValue); setVisibility(icons.contains(mSlotBattery) ? View.GONE : View.VISIBLE); boolean hidden = icons.contains(mSlotBattery); Dependency.get(IconLogger.class).onIconVisibility(mSlotBattery, !hidden); setVisibility(hidden ? View.GONE : View.VISIBLE); } } Loading packages/SystemUI/src/com/android/systemui/Dependency.java +5 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,8 @@ import com.android.systemui.statusbar.policy.FlashlightController; import com.android.systemui.statusbar.policy.FlashlightControllerImpl; import com.android.systemui.statusbar.policy.HotspotController; import com.android.systemui.statusbar.policy.HotspotControllerImpl; import com.android.systemui.statusbar.policy.IconLogger; import com.android.systemui.statusbar.policy.IconLoggerImpl; import com.android.systemui.statusbar.policy.KeyguardMonitor; import com.android.systemui.statusbar.policy.KeyguardMonitorImpl; import com.android.systemui.statusbar.policy.LocationController; Loading Loading @@ -297,6 +299,9 @@ public class Dependency extends SystemUI { mProviders.put(PowerUI.WarningsUI.class, () -> new PowerNotificationWarnings(mContext)); mProviders.put(IconLogger.class, () -> new IconLoggerImpl(mContext, getDependency(BG_LOOPER), getDependency(MetricsLogger.class))); // Put all dependencies above here so the factory can override them if it wants. SystemUIFactory.getInstance().injectDependencies(mProviders, mContext); } Loading packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileImpl.java +13 −1 Original line number Diff line number Diff line Loading @@ -17,12 +17,12 @@ package com.android.systemui.qs.tileimpl; import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.ACTION_QS_CLICK; import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.ACTION_QS_LONG_PRESS; import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.ACTION_QS_SECONDARY_CLICK; import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.FIELD_CONTEXT; import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.FIELD_QS_POSITION; import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.FIELD_QS_VALUE; import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.TYPE_ACTION; import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; import android.R.attr; import android.app.ActivityManager; import android.content.Context; import android.content.Intent; Loading @@ -45,6 +45,8 @@ import com.android.systemui.plugins.qs.DetailAdapter; import com.android.systemui.plugins.qs.QSIconView; import com.android.systemui.plugins.qs.QSTile; import com.android.systemui.plugins.qs.QSTile.State; import com.android.systemui.qs.PagedTileLayout; import com.android.systemui.qs.PagedTileLayout.TilePage; import com.android.systemui.qs.QSHost; import java.util.ArrayList; Loading Loading @@ -180,9 +182,19 @@ public abstract class QSTileImpl<TState extends State> implements QSTile { logMaker.addTaggedData(FIELD_QS_VALUE, ((BooleanState) mState).value ? 1 : 0); } return logMaker.setSubtype(getMetricsCategory()) .addTaggedData(FIELD_CONTEXT, isFullQs()) .addTaggedData(FIELD_QS_POSITION, mHost.indexOf(mTileSpec)); } private int isFullQs() { for (Object listener : mListeners) { if (TilePage.class.equals(listener.getClass())) { return 1; } } return 0; } public void showDetail(boolean show) { mHandler.obtainMessage(H.SHOW_DETAIL, show ? 1 : 0, 0).sendToTarget(); } Loading packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java +24 −2 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import com.android.systemui.statusbar.phone.SignalDrawable; import com.android.systemui.statusbar.phone.StatusBarIconController; import com.android.systemui.statusbar.policy.DarkIconDispatcher; import com.android.systemui.statusbar.policy.DarkIconDispatcher.DarkReceiver; import com.android.systemui.statusbar.policy.IconLogger; import com.android.systemui.statusbar.policy.NetworkController; import com.android.systemui.statusbar.policy.NetworkController.IconState; import com.android.systemui.statusbar.policy.NetworkControllerImpl; Loading @@ -65,6 +66,7 @@ public class SignalClusterView extends LinearLayout implements NetworkController private static final String SLOT_MOBILE = "mobile"; private static final String SLOT_WIFI = "wifi"; private static final String SLOT_ETHERNET = "ethernet"; private static final String SLOT_VPN = "vpn"; private final NetworkController mNetworkController; private final SecurityController mSecurityController; Loading Loading @@ -117,6 +119,8 @@ public class SignalClusterView extends LinearLayout implements NetworkController private boolean mActivityEnabled; private boolean mForceBlockWifi; private final IconLogger mIconLogger = Dependency.get(IconLogger.class); public SignalClusterView(Context context) { this(context, null); } Loading Loading @@ -447,14 +451,15 @@ public class SignalClusterView extends LinearLayout implements NetworkController private void apply() { if (mWifiGroup == null) return; mVpn.setVisibility(mVpnVisible ? View.VISIBLE : View.GONE); if (mVpnVisible) { if (mLastVpnIconId != mVpnIconId) { setIconForView(mVpn, mVpnIconId); mLastVpnIconId = mVpnIconId; } mIconLogger.onIconShown(SLOT_VPN); mVpn.setVisibility(View.VISIBLE); } else { mIconLogger.onIconHidden(SLOT_VPN); mVpn.setVisibility(View.GONE); } if (DEBUG) Log.d(TAG, String.format("vpn: %s", mVpnVisible ? "VISIBLE" : "GONE")); Loading @@ -466,8 +471,10 @@ public class SignalClusterView extends LinearLayout implements NetworkController mLastEthernetIconId = mEthernetIconId; } mEthernetGroup.setContentDescription(mEthernetDescription); mIconLogger.onIconShown(SLOT_ETHERNET); mEthernetGroup.setVisibility(View.VISIBLE); } else { mIconLogger.onIconHidden(SLOT_ETHERNET); mEthernetGroup.setVisibility(View.GONE); } Loading @@ -481,9 +488,11 @@ public class SignalClusterView extends LinearLayout implements NetworkController setIconForView(mWifiDark, mWifiStrengthId); mLastWifiStrengthId = mWifiStrengthId; } mIconLogger.onIconShown(SLOT_WIFI); mWifiGroup.setContentDescription(mWifiDescription); mWifiGroup.setVisibility(View.VISIBLE); } else { mIconLogger.onIconHidden(SLOT_WIFI); mWifiGroup.setVisibility(View.GONE); } Loading @@ -505,6 +514,11 @@ public class SignalClusterView extends LinearLayout implements NetworkController } } } if (anyMobileVisible) { mIconLogger.onIconShown(SLOT_MOBILE); } else { mIconLogger.onIconHidden(SLOT_MOBILE); } if (mIsAirplaneMode) { if (mLastAirplaneIconId != mAirplaneIconId) { Loading @@ -512,8 +526,10 @@ public class SignalClusterView extends LinearLayout implements NetworkController mLastAirplaneIconId = mAirplaneIconId; } mAirplane.setContentDescription(mAirplaneContentDescription); mIconLogger.onIconShown(SLOT_AIRPLANE); mAirplane.setVisibility(View.VISIBLE); } else { mIconLogger.onIconHidden(SLOT_AIRPLANE); mAirplane.setVisibility(View.GONE); } Loading @@ -529,7 +545,13 @@ public class SignalClusterView extends LinearLayout implements NetworkController mWifiSignalSpacer.setVisibility(View.GONE); } mNoSimsCombo.setVisibility(mNoSimsVisible ? View.VISIBLE : View.GONE); if (mNoSimsVisible) { mIconLogger.onIconShown(SLOT_MOBILE); mNoSimsCombo.setVisibility(View.VISIBLE); } else { mIconLogger.onIconHidden(SLOT_MOBILE); mNoSimsCombo.setVisibility(View.GONE); } boolean anythingVisible = mNoSimsVisible || mWifiVisible || mIsAirplaneMode || anyMobileVisible || mVpnVisible || mEthernetVisible; Loading Loading
core/res/res/values/config.xml +8 −0 Original line number Diff line number Diff line Loading @@ -44,7 +44,11 @@ <item><xliff:g id="id">@string/status_bar_zen</xliff:g></item> <item><xliff:g id="id">@string/status_bar_mute</xliff:g></item> <item><xliff:g id="id">@string/status_bar_volume</xliff:g></item> <item><xliff:g id="id">@string/status_bar_vpn</xliff:g></item> <item><xliff:g id="id">@string/status_bar_ethernet</xliff:g></item> <item><xliff:g id="id">@string/status_bar_wifi</xliff:g></item> <item><xliff:g id="id">@string/status_bar_mobile</xliff:g></item> <item><xliff:g id="id">@string/status_bar_airplane</xliff:g></item> <item><xliff:g id="id">@string/status_bar_cdma_eri</xliff:g></item> <item><xliff:g id="id">@string/status_bar_data_connection</xliff:g></item> <item><xliff:g id="id">@string/status_bar_phone_evdo_signal</xliff:g></item> Loading Loading @@ -81,6 +85,10 @@ <string translatable="false" name="status_bar_alarm_clock">alarm_clock</string> <string translatable="false" name="status_bar_secure">secure</string> <string translatable="false" name="status_bar_clock">clock</string> <string translatable="false" name="status_bar_mobile">mobile</string> <string translatable="false" name="status_bar_vpn">vpn</string> <string translatable="false" name="status_bar_ethernet">ethernet</string> <string translatable="false" name="status_bar_airplane">airplane</string> <!-- Flag indicating whether the surface flinger has limited alpha compositing functionality in hardware. If set, the window Loading
packages/SystemUI/src/com/android/systemui/BatteryMeterView.java +4 −1 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener; import com.android.systemui.statusbar.policy.DarkIconDispatcher; import com.android.systemui.statusbar.policy.DarkIconDispatcher.DarkReceiver; import com.android.systemui.statusbar.policy.IconLogger; import com.android.systemui.tuner.TunerService; import com.android.systemui.tuner.TunerService.Tunable; Loading Loading @@ -150,7 +151,9 @@ public class BatteryMeterView extends LinearLayout implements public void onTuningChanged(String key, String newValue) { if (StatusBarIconController.ICON_BLACKLIST.equals(key)) { ArraySet<String> icons = StatusBarIconController.getIconBlacklist(newValue); setVisibility(icons.contains(mSlotBattery) ? View.GONE : View.VISIBLE); boolean hidden = icons.contains(mSlotBattery); Dependency.get(IconLogger.class).onIconVisibility(mSlotBattery, !hidden); setVisibility(hidden ? View.GONE : View.VISIBLE); } } Loading
packages/SystemUI/src/com/android/systemui/Dependency.java +5 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,8 @@ import com.android.systemui.statusbar.policy.FlashlightController; import com.android.systemui.statusbar.policy.FlashlightControllerImpl; import com.android.systemui.statusbar.policy.HotspotController; import com.android.systemui.statusbar.policy.HotspotControllerImpl; import com.android.systemui.statusbar.policy.IconLogger; import com.android.systemui.statusbar.policy.IconLoggerImpl; import com.android.systemui.statusbar.policy.KeyguardMonitor; import com.android.systemui.statusbar.policy.KeyguardMonitorImpl; import com.android.systemui.statusbar.policy.LocationController; Loading Loading @@ -297,6 +299,9 @@ public class Dependency extends SystemUI { mProviders.put(PowerUI.WarningsUI.class, () -> new PowerNotificationWarnings(mContext)); mProviders.put(IconLogger.class, () -> new IconLoggerImpl(mContext, getDependency(BG_LOOPER), getDependency(MetricsLogger.class))); // Put all dependencies above here so the factory can override them if it wants. SystemUIFactory.getInstance().injectDependencies(mProviders, mContext); } Loading
packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileImpl.java +13 −1 Original line number Diff line number Diff line Loading @@ -17,12 +17,12 @@ package com.android.systemui.qs.tileimpl; import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.ACTION_QS_CLICK; import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.ACTION_QS_LONG_PRESS; import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.ACTION_QS_SECONDARY_CLICK; import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.FIELD_CONTEXT; import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.FIELD_QS_POSITION; import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.FIELD_QS_VALUE; import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.TYPE_ACTION; import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; import android.R.attr; import android.app.ActivityManager; import android.content.Context; import android.content.Intent; Loading @@ -45,6 +45,8 @@ import com.android.systemui.plugins.qs.DetailAdapter; import com.android.systemui.plugins.qs.QSIconView; import com.android.systemui.plugins.qs.QSTile; import com.android.systemui.plugins.qs.QSTile.State; import com.android.systemui.qs.PagedTileLayout; import com.android.systemui.qs.PagedTileLayout.TilePage; import com.android.systemui.qs.QSHost; import java.util.ArrayList; Loading Loading @@ -180,9 +182,19 @@ public abstract class QSTileImpl<TState extends State> implements QSTile { logMaker.addTaggedData(FIELD_QS_VALUE, ((BooleanState) mState).value ? 1 : 0); } return logMaker.setSubtype(getMetricsCategory()) .addTaggedData(FIELD_CONTEXT, isFullQs()) .addTaggedData(FIELD_QS_POSITION, mHost.indexOf(mTileSpec)); } private int isFullQs() { for (Object listener : mListeners) { if (TilePage.class.equals(listener.getClass())) { return 1; } } return 0; } public void showDetail(boolean show) { mHandler.obtainMessage(H.SHOW_DETAIL, show ? 1 : 0, 0).sendToTarget(); } Loading
packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java +24 −2 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import com.android.systemui.statusbar.phone.SignalDrawable; import com.android.systemui.statusbar.phone.StatusBarIconController; import com.android.systemui.statusbar.policy.DarkIconDispatcher; import com.android.systemui.statusbar.policy.DarkIconDispatcher.DarkReceiver; import com.android.systemui.statusbar.policy.IconLogger; import com.android.systemui.statusbar.policy.NetworkController; import com.android.systemui.statusbar.policy.NetworkController.IconState; import com.android.systemui.statusbar.policy.NetworkControllerImpl; Loading @@ -65,6 +66,7 @@ public class SignalClusterView extends LinearLayout implements NetworkController private static final String SLOT_MOBILE = "mobile"; private static final String SLOT_WIFI = "wifi"; private static final String SLOT_ETHERNET = "ethernet"; private static final String SLOT_VPN = "vpn"; private final NetworkController mNetworkController; private final SecurityController mSecurityController; Loading Loading @@ -117,6 +119,8 @@ public class SignalClusterView extends LinearLayout implements NetworkController private boolean mActivityEnabled; private boolean mForceBlockWifi; private final IconLogger mIconLogger = Dependency.get(IconLogger.class); public SignalClusterView(Context context) { this(context, null); } Loading Loading @@ -447,14 +451,15 @@ public class SignalClusterView extends LinearLayout implements NetworkController private void apply() { if (mWifiGroup == null) return; mVpn.setVisibility(mVpnVisible ? View.VISIBLE : View.GONE); if (mVpnVisible) { if (mLastVpnIconId != mVpnIconId) { setIconForView(mVpn, mVpnIconId); mLastVpnIconId = mVpnIconId; } mIconLogger.onIconShown(SLOT_VPN); mVpn.setVisibility(View.VISIBLE); } else { mIconLogger.onIconHidden(SLOT_VPN); mVpn.setVisibility(View.GONE); } if (DEBUG) Log.d(TAG, String.format("vpn: %s", mVpnVisible ? "VISIBLE" : "GONE")); Loading @@ -466,8 +471,10 @@ public class SignalClusterView extends LinearLayout implements NetworkController mLastEthernetIconId = mEthernetIconId; } mEthernetGroup.setContentDescription(mEthernetDescription); mIconLogger.onIconShown(SLOT_ETHERNET); mEthernetGroup.setVisibility(View.VISIBLE); } else { mIconLogger.onIconHidden(SLOT_ETHERNET); mEthernetGroup.setVisibility(View.GONE); } Loading @@ -481,9 +488,11 @@ public class SignalClusterView extends LinearLayout implements NetworkController setIconForView(mWifiDark, mWifiStrengthId); mLastWifiStrengthId = mWifiStrengthId; } mIconLogger.onIconShown(SLOT_WIFI); mWifiGroup.setContentDescription(mWifiDescription); mWifiGroup.setVisibility(View.VISIBLE); } else { mIconLogger.onIconHidden(SLOT_WIFI); mWifiGroup.setVisibility(View.GONE); } Loading @@ -505,6 +514,11 @@ public class SignalClusterView extends LinearLayout implements NetworkController } } } if (anyMobileVisible) { mIconLogger.onIconShown(SLOT_MOBILE); } else { mIconLogger.onIconHidden(SLOT_MOBILE); } if (mIsAirplaneMode) { if (mLastAirplaneIconId != mAirplaneIconId) { Loading @@ -512,8 +526,10 @@ public class SignalClusterView extends LinearLayout implements NetworkController mLastAirplaneIconId = mAirplaneIconId; } mAirplane.setContentDescription(mAirplaneContentDescription); mIconLogger.onIconShown(SLOT_AIRPLANE); mAirplane.setVisibility(View.VISIBLE); } else { mIconLogger.onIconHidden(SLOT_AIRPLANE); mAirplane.setVisibility(View.GONE); } Loading @@ -529,7 +545,13 @@ public class SignalClusterView extends LinearLayout implements NetworkController mWifiSignalSpacer.setVisibility(View.GONE); } mNoSimsCombo.setVisibility(mNoSimsVisible ? View.VISIBLE : View.GONE); if (mNoSimsVisible) { mIconLogger.onIconShown(SLOT_MOBILE); mNoSimsCombo.setVisibility(View.VISIBLE); } else { mIconLogger.onIconHidden(SLOT_MOBILE); mNoSimsCombo.setVisibility(View.GONE); } boolean anythingVisible = mNoSimsVisible || mWifiVisible || mIsAirplaneMode || anyMobileVisible || mVpnVisible || mEthernetVisible; Loading