Loading src/java/com/android/internal/telephony/ServiceStateTracker.java +34 −9 Original line number Diff line number Diff line Loading @@ -125,6 +125,7 @@ import java.util.Comparator; import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.Objects; import java.util.Set; import java.util.concurrent.TimeUnit; import java.util.regex.Matcher; Loading Loading @@ -210,6 +211,7 @@ public class ServiceStateTracker extends Handler { @UnsupportedAppUsage private RegistrantList mNetworkAttachedRegistrants = new RegistrantList(); private RegistrantList mNetworkDetachedRegistrants = new RegistrantList(); private RegistrantList mServiceStateChangedRegistrants = new RegistrantList(); private RegistrantList mPsRestrictEnabledRegistrants = new RegistrantList(); private RegistrantList mPsRestrictDisabledRegistrants = new RegistrantList(); private RegistrantList mImsCapabilityChangedRegistrants = new RegistrantList(); Loading Loading @@ -650,9 +652,6 @@ public class ServiceStateTracker extends Handler { .isVoiceCapable(); mUiccController = UiccController.getInstance(); mOutOfServiceSS = new ServiceState(); mOutOfServiceSS.setStateOutOfService(); mUiccController.registerForIccChanged(this, EVENT_ICC_CHANGED, null); mCi.registerForCellInfoList(this, EVENT_UNSOL_CELL_INFO_LIST, null); mCi.registerForPhysicalChannelConfiguration(this, EVENT_PHYSICAL_CHANNEL_CONFIG, null); Loading @@ -664,6 +663,8 @@ public class ServiceStateTracker extends Handler { mRestrictedState = new RestrictedState(); mTransportManager = mPhone.getTransportManager(); mOutOfServiceSS = new ServiceState(); mOutOfServiceSS.setOutOfService(mTransportManager.isInLegacyMode(), false); for (int transportType : mTransportManager.getAvailableTransports()) { mRegStateManagers.append(transportType, new NetworkRegistrationManager( Loading Loading @@ -759,9 +760,9 @@ public class ServiceStateTracker extends Handler { } mSS = new ServiceState(); mSS.setStateOutOfService(); mSS.setOutOfService(mTransportManager.isInLegacyMode(), false); mNewSS = new ServiceState(); mNewSS.setStateOutOfService(); mNewSS.setOutOfService(mTransportManager.isInLegacyMode(), false); mLastCellInfoReqTime = 0; mLastCellInfoList = null; mStartedGprsRegCheck = false; Loading Loading @@ -3323,7 +3324,7 @@ public class ServiceStateTracker extends Handler { switch (mCi.getRadioState()) { case TelephonyManager.RADIO_POWER_UNAVAILABLE: mNewSS.setStateOutOfService(); mNewSS.setOutOfService(mTransportManager.isInLegacyMode(), false); mPhone.getSignalStrengthController().setSignalStrengthDefaultValues(); mLastNitzData = null; mNitzState.handleNetworkUnavailable(); Loading @@ -3331,7 +3332,7 @@ public class ServiceStateTracker extends Handler { break; case TelephonyManager.RADIO_POWER_OFF: mNewSS.setStateOff(); mNewSS.setOutOfService(mTransportManager.isInLegacyMode(), true); mPhone.getSignalStrengthController().setSignalStrengthDefaultValues(); mLastNitzData = null; mNitzState.handleNetworkUnavailable(); Loading Loading @@ -3647,9 +3648,14 @@ public class ServiceStateTracker extends Handler { mRejectCode = mNewRejectCode; } if (!Objects.equals(mSS, mNewSS)) { mServiceStateChangedRegistrants.notifyRegistrants(); } ServiceState oldMergedSS = new ServiceState(mPhone.getServiceState()); mSS = new ServiceState(mNewSS); mNewSS.setStateOutOfService(); mNewSS.setOutOfService(mTransportManager.isInLegacyMode(), false); mCellIdentity = primaryCellIdentity; if (mSS.getState() == ServiceState.STATE_IN_SERVICE && primaryCellIdentity != null) { Loading Loading @@ -4941,6 +4947,25 @@ public class ServiceStateTracker extends Handler { mImsCapabilityChangedRegistrants.remove(h); } /** * Register for service state changed event. * * @param h handler to notify * @param what what code of message when delivered */ public void registerForServiceStateChanged(Handler h, int what) { mServiceStateChangedRegistrants.addUnique(h, what, null); } /** * Unregister for service state changed event. * * @param h The handler. */ public void unregisterForServiceStateChanged(Handler h) { mServiceStateChangedRegistrants.remove(h); } /** * Clean up existing voice and data connection then turn off radio power. * Loading Loading @@ -5559,7 +5584,7 @@ public class ServiceStateTracker extends Handler { } // operator info should be kept in SS String operator = mNewSS.getOperatorAlphaLong(); mNewSS.setStateOff(); mNewSS.setOutOfService(mTransportManager.isInLegacyMode(), true); if (resetIwlanRatVal) { mNewSS.setDataRegState(ServiceState.STATE_IN_SERVICE); NetworkRegistrationInfo nri = new NetworkRegistrationInfo.Builder() Loading src/java/com/android/internal/telephony/data/DataNetworkController.java +9 −10 Original line number Diff line number Diff line Loading @@ -842,9 +842,8 @@ public class DataNetworkController extends Handler { .registerForServiceBindingChanged(this, EVENT_DATA_SERVICE_BINDING_CHANGED); if (!mAccessNetworksManager.isInLegacyMode()) { mPhone.getServiceStateTracker().registerForDataRegStateOrRatChanged( AccessNetworkConstants.TRANSPORT_TYPE_WLAN, this, EVENT_SERVICE_STATE_CHANGED, AccessNetworkConstants.TRANSPORT_TYPE_WLAN); mPhone.getServiceStateTracker().registerForServiceStateChanged(this, EVENT_SERVICE_STATE_CHANGED); mDataServiceManagers.get(AccessNetworkConstants.TRANSPORT_TYPE_WLAN) .registerForServiceBindingChanged(this, EVENT_DATA_SERVICE_BINDING_CHANGED); } Loading Loading @@ -2458,11 +2457,11 @@ public class DataNetworkController extends Handler { private void onServiceStateChanged() { // Use the raw service state instead of the mPhone.getServiceState(). ServiceState newServiceState = mPhone.getServiceStateTracker().getServiceState(); logv("onServiceStateChanged: " + newServiceState); StringBuilder debugMessage = new StringBuilder("onServiceStateChanged: "); boolean evaluateNetworkRequests = false, evaluateDataNetworks = false; if (!mServiceState.equals(newServiceState)) { log("onServiceStateChanged: changed to " + newServiceState); for (int transport : mAccessNetworksManager.getAvailableTransports()) { NetworkRegistrationInfo oldNri = mServiceState.getNetworkRegistrationInfo( NetworkRegistrationInfo.DOMAIN_PS, transport); Loading Loading @@ -2614,10 +2613,10 @@ public class DataNetworkController extends Handler { * @return The current network type. */ private @NetworkType int getDataNetworkType(@TransportType int transport) { NetworkRegistrationInfo nrs = mServiceState.getNetworkRegistrationInfo( NetworkRegistrationInfo nri = mServiceState.getNetworkRegistrationInfo( NetworkRegistrationInfo.DOMAIN_PS, transport); if (nrs != null) { return nrs.getAccessNetworkTechnology(); if (nri != null) { return nri.getAccessNetworkTechnology(); } return TelephonyManager.NETWORK_TYPE_UNKNOWN; } Loading @@ -2629,10 +2628,10 @@ public class DataNetworkController extends Handler { * @return The registration state. */ private @RegistrationState int getDataRegistrationState(@TransportType int transport) { NetworkRegistrationInfo nrs = mServiceState.getNetworkRegistrationInfo( NetworkRegistrationInfo nri = mServiceState.getNetworkRegistrationInfo( NetworkRegistrationInfo.DOMAIN_PS, transport); if (nrs != null) { return nrs.getRegistrationState(); if (nri != null) { return nri.getRegistrationState(); } return NetworkRegistrationInfo.REGISTRATION_STATE_UNKNOWN; } Loading src/java/com/android/internal/telephony/imsphone/ImsPhone.java +5 −1 Original line number Diff line number Diff line Loading @@ -458,7 +458,11 @@ public class ImsPhone extends ImsPhoneBase { mCT.registerPhoneStateListener(mExternalCallTracker); mExternalCallTracker.setCallPuller(mCT); mSS.setStateOff(); boolean legacyMode = true; if (mDefaultPhone.getTransportManager() != null) { legacyMode = mDefaultPhone.getTransportManager().isInLegacyMode(); } mSS.setOutOfService(legacyMode, false); mPhoneId = mDefaultPhone.getPhoneId(); Loading Loading
src/java/com/android/internal/telephony/ServiceStateTracker.java +34 −9 Original line number Diff line number Diff line Loading @@ -125,6 +125,7 @@ import java.util.Comparator; import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.Objects; import java.util.Set; import java.util.concurrent.TimeUnit; import java.util.regex.Matcher; Loading Loading @@ -210,6 +211,7 @@ public class ServiceStateTracker extends Handler { @UnsupportedAppUsage private RegistrantList mNetworkAttachedRegistrants = new RegistrantList(); private RegistrantList mNetworkDetachedRegistrants = new RegistrantList(); private RegistrantList mServiceStateChangedRegistrants = new RegistrantList(); private RegistrantList mPsRestrictEnabledRegistrants = new RegistrantList(); private RegistrantList mPsRestrictDisabledRegistrants = new RegistrantList(); private RegistrantList mImsCapabilityChangedRegistrants = new RegistrantList(); Loading Loading @@ -650,9 +652,6 @@ public class ServiceStateTracker extends Handler { .isVoiceCapable(); mUiccController = UiccController.getInstance(); mOutOfServiceSS = new ServiceState(); mOutOfServiceSS.setStateOutOfService(); mUiccController.registerForIccChanged(this, EVENT_ICC_CHANGED, null); mCi.registerForCellInfoList(this, EVENT_UNSOL_CELL_INFO_LIST, null); mCi.registerForPhysicalChannelConfiguration(this, EVENT_PHYSICAL_CHANNEL_CONFIG, null); Loading @@ -664,6 +663,8 @@ public class ServiceStateTracker extends Handler { mRestrictedState = new RestrictedState(); mTransportManager = mPhone.getTransportManager(); mOutOfServiceSS = new ServiceState(); mOutOfServiceSS.setOutOfService(mTransportManager.isInLegacyMode(), false); for (int transportType : mTransportManager.getAvailableTransports()) { mRegStateManagers.append(transportType, new NetworkRegistrationManager( Loading Loading @@ -759,9 +760,9 @@ public class ServiceStateTracker extends Handler { } mSS = new ServiceState(); mSS.setStateOutOfService(); mSS.setOutOfService(mTransportManager.isInLegacyMode(), false); mNewSS = new ServiceState(); mNewSS.setStateOutOfService(); mNewSS.setOutOfService(mTransportManager.isInLegacyMode(), false); mLastCellInfoReqTime = 0; mLastCellInfoList = null; mStartedGprsRegCheck = false; Loading Loading @@ -3323,7 +3324,7 @@ public class ServiceStateTracker extends Handler { switch (mCi.getRadioState()) { case TelephonyManager.RADIO_POWER_UNAVAILABLE: mNewSS.setStateOutOfService(); mNewSS.setOutOfService(mTransportManager.isInLegacyMode(), false); mPhone.getSignalStrengthController().setSignalStrengthDefaultValues(); mLastNitzData = null; mNitzState.handleNetworkUnavailable(); Loading @@ -3331,7 +3332,7 @@ public class ServiceStateTracker extends Handler { break; case TelephonyManager.RADIO_POWER_OFF: mNewSS.setStateOff(); mNewSS.setOutOfService(mTransportManager.isInLegacyMode(), true); mPhone.getSignalStrengthController().setSignalStrengthDefaultValues(); mLastNitzData = null; mNitzState.handleNetworkUnavailable(); Loading Loading @@ -3647,9 +3648,14 @@ public class ServiceStateTracker extends Handler { mRejectCode = mNewRejectCode; } if (!Objects.equals(mSS, mNewSS)) { mServiceStateChangedRegistrants.notifyRegistrants(); } ServiceState oldMergedSS = new ServiceState(mPhone.getServiceState()); mSS = new ServiceState(mNewSS); mNewSS.setStateOutOfService(); mNewSS.setOutOfService(mTransportManager.isInLegacyMode(), false); mCellIdentity = primaryCellIdentity; if (mSS.getState() == ServiceState.STATE_IN_SERVICE && primaryCellIdentity != null) { Loading Loading @@ -4941,6 +4947,25 @@ public class ServiceStateTracker extends Handler { mImsCapabilityChangedRegistrants.remove(h); } /** * Register for service state changed event. * * @param h handler to notify * @param what what code of message when delivered */ public void registerForServiceStateChanged(Handler h, int what) { mServiceStateChangedRegistrants.addUnique(h, what, null); } /** * Unregister for service state changed event. * * @param h The handler. */ public void unregisterForServiceStateChanged(Handler h) { mServiceStateChangedRegistrants.remove(h); } /** * Clean up existing voice and data connection then turn off radio power. * Loading Loading @@ -5559,7 +5584,7 @@ public class ServiceStateTracker extends Handler { } // operator info should be kept in SS String operator = mNewSS.getOperatorAlphaLong(); mNewSS.setStateOff(); mNewSS.setOutOfService(mTransportManager.isInLegacyMode(), true); if (resetIwlanRatVal) { mNewSS.setDataRegState(ServiceState.STATE_IN_SERVICE); NetworkRegistrationInfo nri = new NetworkRegistrationInfo.Builder() Loading
src/java/com/android/internal/telephony/data/DataNetworkController.java +9 −10 Original line number Diff line number Diff line Loading @@ -842,9 +842,8 @@ public class DataNetworkController extends Handler { .registerForServiceBindingChanged(this, EVENT_DATA_SERVICE_BINDING_CHANGED); if (!mAccessNetworksManager.isInLegacyMode()) { mPhone.getServiceStateTracker().registerForDataRegStateOrRatChanged( AccessNetworkConstants.TRANSPORT_TYPE_WLAN, this, EVENT_SERVICE_STATE_CHANGED, AccessNetworkConstants.TRANSPORT_TYPE_WLAN); mPhone.getServiceStateTracker().registerForServiceStateChanged(this, EVENT_SERVICE_STATE_CHANGED); mDataServiceManagers.get(AccessNetworkConstants.TRANSPORT_TYPE_WLAN) .registerForServiceBindingChanged(this, EVENT_DATA_SERVICE_BINDING_CHANGED); } Loading Loading @@ -2458,11 +2457,11 @@ public class DataNetworkController extends Handler { private void onServiceStateChanged() { // Use the raw service state instead of the mPhone.getServiceState(). ServiceState newServiceState = mPhone.getServiceStateTracker().getServiceState(); logv("onServiceStateChanged: " + newServiceState); StringBuilder debugMessage = new StringBuilder("onServiceStateChanged: "); boolean evaluateNetworkRequests = false, evaluateDataNetworks = false; if (!mServiceState.equals(newServiceState)) { log("onServiceStateChanged: changed to " + newServiceState); for (int transport : mAccessNetworksManager.getAvailableTransports()) { NetworkRegistrationInfo oldNri = mServiceState.getNetworkRegistrationInfo( NetworkRegistrationInfo.DOMAIN_PS, transport); Loading Loading @@ -2614,10 +2613,10 @@ public class DataNetworkController extends Handler { * @return The current network type. */ private @NetworkType int getDataNetworkType(@TransportType int transport) { NetworkRegistrationInfo nrs = mServiceState.getNetworkRegistrationInfo( NetworkRegistrationInfo nri = mServiceState.getNetworkRegistrationInfo( NetworkRegistrationInfo.DOMAIN_PS, transport); if (nrs != null) { return nrs.getAccessNetworkTechnology(); if (nri != null) { return nri.getAccessNetworkTechnology(); } return TelephonyManager.NETWORK_TYPE_UNKNOWN; } Loading @@ -2629,10 +2628,10 @@ public class DataNetworkController extends Handler { * @return The registration state. */ private @RegistrationState int getDataRegistrationState(@TransportType int transport) { NetworkRegistrationInfo nrs = mServiceState.getNetworkRegistrationInfo( NetworkRegistrationInfo nri = mServiceState.getNetworkRegistrationInfo( NetworkRegistrationInfo.DOMAIN_PS, transport); if (nrs != null) { return nrs.getRegistrationState(); if (nri != null) { return nri.getRegistrationState(); } return NetworkRegistrationInfo.REGISTRATION_STATE_UNKNOWN; } Loading
src/java/com/android/internal/telephony/imsphone/ImsPhone.java +5 −1 Original line number Diff line number Diff line Loading @@ -458,7 +458,11 @@ public class ImsPhone extends ImsPhoneBase { mCT.registerPhoneStateListener(mExternalCallTracker); mExternalCallTracker.setCallPuller(mCT); mSS.setStateOff(); boolean legacyMode = true; if (mDefaultPhone.getTransportManager() != null) { legacyMode = mDefaultPhone.getTransportManager().isInLegacyMode(); } mSS.setOutOfService(legacyMode, false); mPhoneId = mDefaultPhone.getPhoneId(); Loading