Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java +3 −4 Original line number Diff line number Diff line Loading @@ -94,8 +94,7 @@ public class MobileSignalController extends SignalController< mPhone = phone; mDefaults = defaults; mSubscriptionInfo = info; mPhoneStateListener = new MobilePhoneStateListener(info.getSubscriptionId(), receiverLooper); mPhoneStateListener = new MobilePhoneStateListener(receiverLooper); mNetworkNameSeparator = getStringIfExists(R.string.status_bar_network_name_separator); mNetworkNameDefault = getStringIfExists( com.android.internal.R.string.lockscreen_carrier_default); Loading Loading @@ -574,8 +573,8 @@ public class MobileSignalController extends SignalController< } class MobilePhoneStateListener extends PhoneStateListener { public MobilePhoneStateListener(int subId, Looper looper) { super(subId, looper); public MobilePhoneStateListener(Looper looper) { super(looper); } @Override Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java +5 −3 Original line number Diff line number Diff line Loading @@ -662,8 +662,9 @@ public class NetworkControllerImpl extends BroadcastReceiver cachedControllers.remove(subId); } else { MobileSignalController controller = new MobileSignalController(mContext, mConfig, mHasMobileDataFeature, mPhone, mCallbackHandler, this, subscriptions.get(i), mSubDefaults, mReceiverHandler.getLooper()); mHasMobileDataFeature, mPhone.createForSubscriptionId(subId), mCallbackHandler, this, subscriptions.get(i), mSubDefaults, mReceiverHandler.getLooper()); controller.setUserSetupComplete(mUserSetup); mMobileSignalControllers.put(subId, controller); if (subscriptions.get(i).getSimSlotIndex() == 0) { Loading Loading @@ -1049,7 +1050,8 @@ public class NetworkControllerImpl extends BroadcastReceiver SubscriptionInfo info = new SubscriptionInfo(id, "", simSlotIndex, "", "", 0, 0, "", 0, null, null, null, "", false, null, null); MobileSignalController controller = new MobileSignalController(mContext, mConfig, mHasMobileDataFeature, mPhone, mCallbackHandler, this, info, mConfig, mHasMobileDataFeature, mPhone.createForSubscriptionId(info.getSubscriptionId()), mCallbackHandler, this, info, mSubDefaults, mReceiverHandler.getLooper()); mMobileSignalControllers.put(id, controller); controller.getState().userSetup = true; Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerBaseTest.java +1 −0 Original line number Diff line number Diff line Loading @@ -130,6 +130,7 @@ public class NetworkControllerBaseTest extends SysuiTestCase { when(mMockCm.isNetworkSupported(ConnectivityManager.TYPE_MOBILE)).thenReturn(true); when(mMockCm.getDefaultNetworkCapabilitiesForUser(0)).thenReturn( new NetworkCapabilities[] { mNetCapabilities }); when(mMockTm.createForSubscriptionId(anyInt())).thenReturn(mMockTm); mSignalStrength = mock(SignalStrength.class); mServiceState = mock(ServiceState.class); Loading telephony/java/android/telephony/PhoneStateListener.java +12 −1 Original line number Diff line number Diff line Loading @@ -38,6 +38,8 @@ import java.util.List; import java.util.Map; import java.util.concurrent.Executor; import dalvik.system.VMRuntime; /** * A listener class for monitoring changes in specific telephony states * on the device, including service state, signal strength, message Loading Loading @@ -400,8 +402,12 @@ public class PhoneStateListener { @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P) public PhoneStateListener(Integer subId) { this(subId, Looper.myLooper()); if (subId != null && VMRuntime.getRuntime().getTargetSdkVersion() >= Build.VERSION_CODES.Q) { throw new IllegalArgumentException("PhoneStateListener with subId: " + subId + " is not supported, use default constructor"); } } /** * Create a PhoneStateListener for the Phone using the specified subscription * and non-null Looper. Loading @@ -410,6 +416,11 @@ public class PhoneStateListener { @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P) public PhoneStateListener(Integer subId, Looper looper) { this(subId, new HandlerExecutor(new Handler(looper))); if (subId != null && VMRuntime.getRuntime().getTargetSdkVersion() >= Build.VERSION_CODES.Q) { throw new IllegalArgumentException("PhoneStateListener with subId: " + subId + " is not supported, use default constructor"); } } /** Loading telephony/java/android/telephony/TelephonyManager.java +33 −18 Original line number Diff line number Diff line Loading @@ -108,6 +108,8 @@ import java.util.function.Consumer; import java.util.regex.Matcher; import java.util.regex.Pattern; import dalvik.system.VMRuntime; /** * Provides access to information about the telephony services on * the device. Applications can use the methods in this class to Loading Loading @@ -4863,18 +4865,22 @@ public class TelephonyManager { * Registers a listener object to receive notification of changes * in specified telephony states. * <p> * To register a listener, pass a {@link PhoneStateListener} * and specify at least one telephony state of interest in * the events argument. * * At registration, and when a specified telephony state * changes, the telephony manager invokes the appropriate * callback method on the listener object and passes the * current (updated) values. * To register a listener, pass a {@link PhoneStateListener} and specify at least one telephony * state of interest in the events argument. * * At registration, and when a specified telephony state changes, the telephony manager invokes * the appropriate callback method on the listener object and passes the current (updated) * values. * <p> * To unregister a listener, pass the listener object and set the * events argument to * To un-register a listener, pass the listener object and set the events argument to * {@link PhoneStateListener#LISTEN_NONE LISTEN_NONE} (0). * * If this TelephonyManager object has been created with {@link #createForSubscriptionId}, * applies to the given subId. Otherwise, applies to * {@link SubscriptionManager#getDefaultSubscriptionId()}. To listen events for multiple subIds, * pass a separate listener object to each TelephonyManager object created with * {@link #createForSubscriptionId}. * * Note: if you call this method while in the middle of a binder transaction, you <b>must</b> * call {@link android.os.Binder#clearCallingIdentity()} before calling this method. A * {@link SecurityException} will be thrown otherwise. Loading @@ -4889,17 +4895,26 @@ public class TelephonyManager { if (mContext == null) return; try { boolean notifyNow = (getITelephony() != null); // If the listener has not explicitly set the subId (for example, created with the // default constructor), replace the subId so it will listen to the account the // telephony manager is created with. if (listener.mSubId == null) { listener.mSubId = mSubId; } ITelephonyRegistry registry = getTelephonyRegistry(); if (registry != null) { registry.listenForSubscriber(listener.mSubId, getOpPackageName(), int subId; // subId from phonestatelistner is deprecated Q on forward, use the subId from // TelephonyManager instance. if (VMRuntime.getRuntime().getTargetSdkVersion() >= Build.VERSION_CODES.Q || listener.mSubId == null) { subId = mSubId; } else { subId = listener.mSubId; } registry.listenForSubscriber(subId, getOpPackageName(), listener.callback, events, notifyNow); // TODO: remove this once we remove PhoneStateListener constructor with subId. if (events == PhoneStateListener.LISTEN_NONE) { listener.mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID; } else { listener.mSubId = subId; } } else { Rlog.w(TAG, "telephony registry not ready."); } Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java +3 −4 Original line number Diff line number Diff line Loading @@ -94,8 +94,7 @@ public class MobileSignalController extends SignalController< mPhone = phone; mDefaults = defaults; mSubscriptionInfo = info; mPhoneStateListener = new MobilePhoneStateListener(info.getSubscriptionId(), receiverLooper); mPhoneStateListener = new MobilePhoneStateListener(receiverLooper); mNetworkNameSeparator = getStringIfExists(R.string.status_bar_network_name_separator); mNetworkNameDefault = getStringIfExists( com.android.internal.R.string.lockscreen_carrier_default); Loading Loading @@ -574,8 +573,8 @@ public class MobileSignalController extends SignalController< } class MobilePhoneStateListener extends PhoneStateListener { public MobilePhoneStateListener(int subId, Looper looper) { super(subId, looper); public MobilePhoneStateListener(Looper looper) { super(looper); } @Override Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java +5 −3 Original line number Diff line number Diff line Loading @@ -662,8 +662,9 @@ public class NetworkControllerImpl extends BroadcastReceiver cachedControllers.remove(subId); } else { MobileSignalController controller = new MobileSignalController(mContext, mConfig, mHasMobileDataFeature, mPhone, mCallbackHandler, this, subscriptions.get(i), mSubDefaults, mReceiverHandler.getLooper()); mHasMobileDataFeature, mPhone.createForSubscriptionId(subId), mCallbackHandler, this, subscriptions.get(i), mSubDefaults, mReceiverHandler.getLooper()); controller.setUserSetupComplete(mUserSetup); mMobileSignalControllers.put(subId, controller); if (subscriptions.get(i).getSimSlotIndex() == 0) { Loading Loading @@ -1049,7 +1050,8 @@ public class NetworkControllerImpl extends BroadcastReceiver SubscriptionInfo info = new SubscriptionInfo(id, "", simSlotIndex, "", "", 0, 0, "", 0, null, null, null, "", false, null, null); MobileSignalController controller = new MobileSignalController(mContext, mConfig, mHasMobileDataFeature, mPhone, mCallbackHandler, this, info, mConfig, mHasMobileDataFeature, mPhone.createForSubscriptionId(info.getSubscriptionId()), mCallbackHandler, this, info, mSubDefaults, mReceiverHandler.getLooper()); mMobileSignalControllers.put(id, controller); controller.getState().userSetup = true; Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerBaseTest.java +1 −0 Original line number Diff line number Diff line Loading @@ -130,6 +130,7 @@ public class NetworkControllerBaseTest extends SysuiTestCase { when(mMockCm.isNetworkSupported(ConnectivityManager.TYPE_MOBILE)).thenReturn(true); when(mMockCm.getDefaultNetworkCapabilitiesForUser(0)).thenReturn( new NetworkCapabilities[] { mNetCapabilities }); when(mMockTm.createForSubscriptionId(anyInt())).thenReturn(mMockTm); mSignalStrength = mock(SignalStrength.class); mServiceState = mock(ServiceState.class); Loading
telephony/java/android/telephony/PhoneStateListener.java +12 −1 Original line number Diff line number Diff line Loading @@ -38,6 +38,8 @@ import java.util.List; import java.util.Map; import java.util.concurrent.Executor; import dalvik.system.VMRuntime; /** * A listener class for monitoring changes in specific telephony states * on the device, including service state, signal strength, message Loading Loading @@ -400,8 +402,12 @@ public class PhoneStateListener { @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P) public PhoneStateListener(Integer subId) { this(subId, Looper.myLooper()); if (subId != null && VMRuntime.getRuntime().getTargetSdkVersion() >= Build.VERSION_CODES.Q) { throw new IllegalArgumentException("PhoneStateListener with subId: " + subId + " is not supported, use default constructor"); } } /** * Create a PhoneStateListener for the Phone using the specified subscription * and non-null Looper. Loading @@ -410,6 +416,11 @@ public class PhoneStateListener { @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P) public PhoneStateListener(Integer subId, Looper looper) { this(subId, new HandlerExecutor(new Handler(looper))); if (subId != null && VMRuntime.getRuntime().getTargetSdkVersion() >= Build.VERSION_CODES.Q) { throw new IllegalArgumentException("PhoneStateListener with subId: " + subId + " is not supported, use default constructor"); } } /** Loading
telephony/java/android/telephony/TelephonyManager.java +33 −18 Original line number Diff line number Diff line Loading @@ -108,6 +108,8 @@ import java.util.function.Consumer; import java.util.regex.Matcher; import java.util.regex.Pattern; import dalvik.system.VMRuntime; /** * Provides access to information about the telephony services on * the device. Applications can use the methods in this class to Loading Loading @@ -4863,18 +4865,22 @@ public class TelephonyManager { * Registers a listener object to receive notification of changes * in specified telephony states. * <p> * To register a listener, pass a {@link PhoneStateListener} * and specify at least one telephony state of interest in * the events argument. * * At registration, and when a specified telephony state * changes, the telephony manager invokes the appropriate * callback method on the listener object and passes the * current (updated) values. * To register a listener, pass a {@link PhoneStateListener} and specify at least one telephony * state of interest in the events argument. * * At registration, and when a specified telephony state changes, the telephony manager invokes * the appropriate callback method on the listener object and passes the current (updated) * values. * <p> * To unregister a listener, pass the listener object and set the * events argument to * To un-register a listener, pass the listener object and set the events argument to * {@link PhoneStateListener#LISTEN_NONE LISTEN_NONE} (0). * * If this TelephonyManager object has been created with {@link #createForSubscriptionId}, * applies to the given subId. Otherwise, applies to * {@link SubscriptionManager#getDefaultSubscriptionId()}. To listen events for multiple subIds, * pass a separate listener object to each TelephonyManager object created with * {@link #createForSubscriptionId}. * * Note: if you call this method while in the middle of a binder transaction, you <b>must</b> * call {@link android.os.Binder#clearCallingIdentity()} before calling this method. A * {@link SecurityException} will be thrown otherwise. Loading @@ -4889,17 +4895,26 @@ public class TelephonyManager { if (mContext == null) return; try { boolean notifyNow = (getITelephony() != null); // If the listener has not explicitly set the subId (for example, created with the // default constructor), replace the subId so it will listen to the account the // telephony manager is created with. if (listener.mSubId == null) { listener.mSubId = mSubId; } ITelephonyRegistry registry = getTelephonyRegistry(); if (registry != null) { registry.listenForSubscriber(listener.mSubId, getOpPackageName(), int subId; // subId from phonestatelistner is deprecated Q on forward, use the subId from // TelephonyManager instance. if (VMRuntime.getRuntime().getTargetSdkVersion() >= Build.VERSION_CODES.Q || listener.mSubId == null) { subId = mSubId; } else { subId = listener.mSubId; } registry.listenForSubscriber(subId, getOpPackageName(), listener.callback, events, notifyNow); // TODO: remove this once we remove PhoneStateListener constructor with subId. if (events == PhoneStateListener.LISTEN_NONE) { listener.mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID; } else { listener.mSubId = subId; } } else { Rlog.w(TAG, "telephony registry not ready."); } Loading