Loading packages/SystemUI/src/com/android/systemui/qs/tiles/CellularTile.java +1 −1 Original line number Diff line number Diff line Loading @@ -266,7 +266,7 @@ public class CellularTile extends QSTileImpl<SignalState> { } @Override public void setNoSims(boolean show) { public void setNoSims(boolean show, boolean simDetected) { mInfo.noSim = show; if (mInfo.noSim) { // Make sure signal gets cleared out when no sims. Loading packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java +21 −1 Original line number Diff line number Diff line Loading @@ -55,6 +55,7 @@ import com.android.systemui.util.Utils.DisableStateTracker; import java.util.ArrayList; import java.util.List; import java.util.Objects; // Intimately tied to the design of res/layout/signal_cluster_view.xml public class SignalClusterView extends LinearLayout implements NetworkControllerImpl.SignalCallback, Loading @@ -74,6 +75,7 @@ public class SignalClusterView extends LinearLayout implements NetworkController private boolean mNoSimsVisible = false; private boolean mVpnVisible = false; private boolean mSimDetected; private int mVpnIconId = 0; private int mLastVpnIconId = -1; private boolean mEthernetVisible = false; Loading Loading @@ -330,8 +332,9 @@ public class SignalClusterView extends LinearLayout implements NetworkController } @Override public void setNoSims(boolean show) { public void setNoSims(boolean show, boolean simDetected) { mNoSimsVisible = show && !mBlockMobile; mSimDetected = simDetected; apply(); } Loading Loading @@ -551,6 +554,23 @@ public class SignalClusterView extends LinearLayout implements NetworkController if (mNoSimsVisible) { mIconLogger.onIconShown(SLOT_MOBILE); mNoSimsCombo.setVisibility(View.VISIBLE); if (!Objects.equals(mSimDetected, mNoSimsCombo.getTag())) { mNoSimsCombo.setTag(mSimDetected); if (mSimDetected) { SignalDrawable d = new SignalDrawable(mNoSims.getContext()); d.setDarkIntensity(0); mNoSims.setImageDrawable(d); mNoSims.setImageLevel(SignalDrawable.getEmptyState(4)); SignalDrawable dark = new SignalDrawable(mNoSims.getContext()); dark.setDarkIntensity(1); mNoSimsDark.setImageDrawable(dark); mNoSimsDark.setImageLevel(SignalDrawable.getEmptyState(4)); } else { mNoSims.setImageResource(R.drawable.stat_sys_no_sims); mNoSimsDark.setImageResource(R.drawable.stat_sys_no_sims); } } } else { mIconLogger.onIconHidden(SLOT_MOBILE); mNoSimsCombo.setVisibility(View.GONE); Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/CallbackHandler.java +3 −3 Original line number Diff line number Diff line Loading @@ -71,7 +71,7 @@ public class CallbackHandler extends Handler implements EmergencyListener, Signa break; case MSG_NO_SIM_VISIBLE_CHANGED: for (SignalCallback signalCluster : mSignalCallbacks) { signalCluster.setNoSims(msg.arg1 != 0); signalCluster.setNoSims(msg.arg1 != 0, msg.arg2 != 0); } break; case MSG_ETHERNET_CHANGED: Loading Loading @@ -144,8 +144,8 @@ public class CallbackHandler extends Handler implements EmergencyListener, Signa } @Override public void setNoSims(boolean show) { obtainMessage(MSG_NO_SIM_VISIBLE_CHANGED, show ? 1 : 0, 0).sendToTarget(); public void setNoSims(boolean show, boolean simDetected) { obtainMessage(MSG_NO_SIM_VISIBLE_CHANGED, show ? 1 : 0, simDetected ? 1 : 0).sendToTarget(); } @Override Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java +1 −1 Original line number Diff line number Diff line Loading @@ -52,7 +52,7 @@ public interface NetworkController extends CallbackController<SignalCallback>, D int qsType, boolean activityIn, boolean activityOut, String typeContentDescription, String description, boolean isWide, int subId, boolean roaming) {} default void setSubs(List<SubscriptionInfo> subs) {} default void setNoSims(boolean show) {} default void setNoSims(boolean show, boolean simDetected) {} default void setEthernetIndicators(IconState icon) {} Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java +24 −11 Original line number Diff line number Diff line Loading @@ -58,10 +58,8 @@ import java.util.ArrayList; import java.util.BitSet; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED; Loading Loading @@ -116,7 +114,7 @@ public class NetworkControllerImpl extends BroadcastReceiver // States that don't belong to a subcontroller. private boolean mAirplaneMode = false; private boolean mHasNoSims; private boolean mHasNoSubs; private Locale mLocale = null; // This list holds our ordering. private List<SubscriptionInfo> mCurrentSubscriptions = new ArrayList<>(); Loading @@ -140,6 +138,7 @@ public class NetworkControllerImpl extends BroadcastReceiver @VisibleForTesting ServiceState mLastServiceState; private boolean mUserSetup; private boolean mSimDetected; /** * Construct this controller object and register for updates. Loading Loading @@ -363,7 +362,7 @@ public class NetworkControllerImpl extends BroadcastReceiver cb.setSubs(mCurrentSubscriptions); cb.setIsAirplaneMode(new IconState(mAirplaneMode, TelephonyIcons.FLIGHT_MODE_ICON, R.string.accessibility_airplane_mode, mContext)); cb.setNoSims(mHasNoSims); cb.setNoSims(mHasNoSubs, mSimDetected); mWifiSignalController.notifyListeners(cb); mEthernetSignalController.notifyListeners(cb); for (int i = 0; i < mMobileSignalControllers.size(); i++) { Loading Loading @@ -498,13 +497,27 @@ public class NetworkControllerImpl extends BroadcastReceiver @VisibleForTesting protected void updateNoSims() { boolean hasNoSims = mHasMobileDataFeature && mMobileSignalControllers.size() == 0; if (hasNoSims != mHasNoSims) { mHasNoSims = hasNoSims; mCallbackHandler.setNoSims(mHasNoSims); boolean hasNoSubs = mHasMobileDataFeature && mMobileSignalControllers.size() == 0; boolean simDetected = hasAnySim(); if (hasNoSubs != mHasNoSubs || simDetected != mSimDetected) { mHasNoSubs = hasNoSubs; mSimDetected = simDetected; mCallbackHandler.setNoSims(mHasNoSubs, mSimDetected); } } private boolean hasAnySim() { int simCount = mPhone.getSimCount(); for (int i = 0; i < simCount; i++) { int state = mPhone.getSimState(i); if (state != TelephonyManager.SIM_STATE_ABSENT && state != TelephonyManager.SIM_STATE_UNKNOWN) { return true; } } return false; } @VisibleForTesting void setCurrentSubscriptions(List<SubscriptionInfo> subscriptions) { Collections.sort(subscriptions, new Comparator<SubscriptionInfo>() { Loading Loading @@ -631,7 +644,7 @@ public class NetworkControllerImpl extends BroadcastReceiver private void notifyListeners() { mCallbackHandler.setIsAirplaneMode(new IconState(mAirplaneMode, TelephonyIcons.FLIGHT_MODE_ICON, R.string.accessibility_airplane_mode, mContext)); mCallbackHandler.setNoSims(mHasNoSims); mCallbackHandler.setNoSims(mHasNoSubs, mSimDetected); } /** Loading Loading @@ -826,8 +839,8 @@ public class NetworkControllerImpl extends BroadcastReceiver } String nosim = args.getString("nosim"); if (nosim != null) { mHasNoSims = nosim.equals("show"); mCallbackHandler.setNoSims(mHasNoSims); mHasNoSubs = nosim.equals("show"); mCallbackHandler.setNoSims(mHasNoSubs, mSimDetected); } String mobile = args.getString("mobile"); if (mobile != null) { Loading Loading
packages/SystemUI/src/com/android/systemui/qs/tiles/CellularTile.java +1 −1 Original line number Diff line number Diff line Loading @@ -266,7 +266,7 @@ public class CellularTile extends QSTileImpl<SignalState> { } @Override public void setNoSims(boolean show) { public void setNoSims(boolean show, boolean simDetected) { mInfo.noSim = show; if (mInfo.noSim) { // Make sure signal gets cleared out when no sims. Loading
packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java +21 −1 Original line number Diff line number Diff line Loading @@ -55,6 +55,7 @@ import com.android.systemui.util.Utils.DisableStateTracker; import java.util.ArrayList; import java.util.List; import java.util.Objects; // Intimately tied to the design of res/layout/signal_cluster_view.xml public class SignalClusterView extends LinearLayout implements NetworkControllerImpl.SignalCallback, Loading @@ -74,6 +75,7 @@ public class SignalClusterView extends LinearLayout implements NetworkController private boolean mNoSimsVisible = false; private boolean mVpnVisible = false; private boolean mSimDetected; private int mVpnIconId = 0; private int mLastVpnIconId = -1; private boolean mEthernetVisible = false; Loading Loading @@ -330,8 +332,9 @@ public class SignalClusterView extends LinearLayout implements NetworkController } @Override public void setNoSims(boolean show) { public void setNoSims(boolean show, boolean simDetected) { mNoSimsVisible = show && !mBlockMobile; mSimDetected = simDetected; apply(); } Loading Loading @@ -551,6 +554,23 @@ public class SignalClusterView extends LinearLayout implements NetworkController if (mNoSimsVisible) { mIconLogger.onIconShown(SLOT_MOBILE); mNoSimsCombo.setVisibility(View.VISIBLE); if (!Objects.equals(mSimDetected, mNoSimsCombo.getTag())) { mNoSimsCombo.setTag(mSimDetected); if (mSimDetected) { SignalDrawable d = new SignalDrawable(mNoSims.getContext()); d.setDarkIntensity(0); mNoSims.setImageDrawable(d); mNoSims.setImageLevel(SignalDrawable.getEmptyState(4)); SignalDrawable dark = new SignalDrawable(mNoSims.getContext()); dark.setDarkIntensity(1); mNoSimsDark.setImageDrawable(dark); mNoSimsDark.setImageLevel(SignalDrawable.getEmptyState(4)); } else { mNoSims.setImageResource(R.drawable.stat_sys_no_sims); mNoSimsDark.setImageResource(R.drawable.stat_sys_no_sims); } } } else { mIconLogger.onIconHidden(SLOT_MOBILE); mNoSimsCombo.setVisibility(View.GONE); Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/CallbackHandler.java +3 −3 Original line number Diff line number Diff line Loading @@ -71,7 +71,7 @@ public class CallbackHandler extends Handler implements EmergencyListener, Signa break; case MSG_NO_SIM_VISIBLE_CHANGED: for (SignalCallback signalCluster : mSignalCallbacks) { signalCluster.setNoSims(msg.arg1 != 0); signalCluster.setNoSims(msg.arg1 != 0, msg.arg2 != 0); } break; case MSG_ETHERNET_CHANGED: Loading Loading @@ -144,8 +144,8 @@ public class CallbackHandler extends Handler implements EmergencyListener, Signa } @Override public void setNoSims(boolean show) { obtainMessage(MSG_NO_SIM_VISIBLE_CHANGED, show ? 1 : 0, 0).sendToTarget(); public void setNoSims(boolean show, boolean simDetected) { obtainMessage(MSG_NO_SIM_VISIBLE_CHANGED, show ? 1 : 0, simDetected ? 1 : 0).sendToTarget(); } @Override Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java +1 −1 Original line number Diff line number Diff line Loading @@ -52,7 +52,7 @@ public interface NetworkController extends CallbackController<SignalCallback>, D int qsType, boolean activityIn, boolean activityOut, String typeContentDescription, String description, boolean isWide, int subId, boolean roaming) {} default void setSubs(List<SubscriptionInfo> subs) {} default void setNoSims(boolean show) {} default void setNoSims(boolean show, boolean simDetected) {} default void setEthernetIndicators(IconState icon) {} Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java +24 −11 Original line number Diff line number Diff line Loading @@ -58,10 +58,8 @@ import java.util.ArrayList; import java.util.BitSet; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED; Loading Loading @@ -116,7 +114,7 @@ public class NetworkControllerImpl extends BroadcastReceiver // States that don't belong to a subcontroller. private boolean mAirplaneMode = false; private boolean mHasNoSims; private boolean mHasNoSubs; private Locale mLocale = null; // This list holds our ordering. private List<SubscriptionInfo> mCurrentSubscriptions = new ArrayList<>(); Loading @@ -140,6 +138,7 @@ public class NetworkControllerImpl extends BroadcastReceiver @VisibleForTesting ServiceState mLastServiceState; private boolean mUserSetup; private boolean mSimDetected; /** * Construct this controller object and register for updates. Loading Loading @@ -363,7 +362,7 @@ public class NetworkControllerImpl extends BroadcastReceiver cb.setSubs(mCurrentSubscriptions); cb.setIsAirplaneMode(new IconState(mAirplaneMode, TelephonyIcons.FLIGHT_MODE_ICON, R.string.accessibility_airplane_mode, mContext)); cb.setNoSims(mHasNoSims); cb.setNoSims(mHasNoSubs, mSimDetected); mWifiSignalController.notifyListeners(cb); mEthernetSignalController.notifyListeners(cb); for (int i = 0; i < mMobileSignalControllers.size(); i++) { Loading Loading @@ -498,13 +497,27 @@ public class NetworkControllerImpl extends BroadcastReceiver @VisibleForTesting protected void updateNoSims() { boolean hasNoSims = mHasMobileDataFeature && mMobileSignalControllers.size() == 0; if (hasNoSims != mHasNoSims) { mHasNoSims = hasNoSims; mCallbackHandler.setNoSims(mHasNoSims); boolean hasNoSubs = mHasMobileDataFeature && mMobileSignalControllers.size() == 0; boolean simDetected = hasAnySim(); if (hasNoSubs != mHasNoSubs || simDetected != mSimDetected) { mHasNoSubs = hasNoSubs; mSimDetected = simDetected; mCallbackHandler.setNoSims(mHasNoSubs, mSimDetected); } } private boolean hasAnySim() { int simCount = mPhone.getSimCount(); for (int i = 0; i < simCount; i++) { int state = mPhone.getSimState(i); if (state != TelephonyManager.SIM_STATE_ABSENT && state != TelephonyManager.SIM_STATE_UNKNOWN) { return true; } } return false; } @VisibleForTesting void setCurrentSubscriptions(List<SubscriptionInfo> subscriptions) { Collections.sort(subscriptions, new Comparator<SubscriptionInfo>() { Loading Loading @@ -631,7 +644,7 @@ public class NetworkControllerImpl extends BroadcastReceiver private void notifyListeners() { mCallbackHandler.setIsAirplaneMode(new IconState(mAirplaneMode, TelephonyIcons.FLIGHT_MODE_ICON, R.string.accessibility_airplane_mode, mContext)); mCallbackHandler.setNoSims(mHasNoSims); mCallbackHandler.setNoSims(mHasNoSubs, mSimDetected); } /** Loading Loading @@ -826,8 +839,8 @@ public class NetworkControllerImpl extends BroadcastReceiver } String nosim = args.getString("nosim"); if (nosim != null) { mHasNoSims = nosim.equals("show"); mCallbackHandler.setNoSims(mHasNoSims); mHasNoSubs = nosim.equals("show"); mCallbackHandler.setNoSims(mHasNoSubs, mSimDetected); } String mobile = args.getString("mobile"); if (mobile != null) { Loading