Loading src/java/com/android/internal/telephony/ServiceStateTracker.java +24 −0 Original line number Diff line number Diff line Loading @@ -224,6 +224,7 @@ public class ServiceStateTracker extends Handler { private RegistrantList mImsCapabilityChangedRegistrants = new RegistrantList(); private RegistrantList mNrStateChangedRegistrants = new RegistrantList(); private RegistrantList mNrFrequencyChangedRegistrants = new RegistrantList(); private RegistrantList mCssIndicatorChangedRegistrants = new RegistrantList(); /* Radio power off pending flag and tag counter */ private boolean mPendingRadioPowerOffAfterDataOff = false; Loading Loading @@ -3462,6 +3463,10 @@ public class ServiceStateTracker extends Handler { mNitzState.handleNetworkUnavailable(); } if (hasCssIndicatorChanged) { mCssIndicatorChangedRegistrants.notifyRegistrants(); } if (hasRejectCauseChanged) { setNotification(CS_REJECT_CAUSE_ENABLED); } Loading Loading @@ -5799,6 +5804,25 @@ public class ServiceStateTracker extends Handler { mNrFrequencyChangedRegistrants.remove(h); } /** * Registers for CSS indicator changed. * @param h handler to notify * @param what what code of message when delivered * @param obj placed in Message.obj */ public void registerForCssIndicatorChanged(Handler h, int what, Object obj) { Registrant r = new Registrant(h, what, obj); mCssIndicatorChangedRegistrants.add(r); } /** * Unregisters for CSS indicator changed. * @param h handler to notify */ public void unregisterForCssIndicatorChanged(Handler h) { mCssIndicatorChangedRegistrants.remove(h); } /** * Get the NR data connection context ids. * Loading src/java/com/android/internal/telephony/dataconnection/DataConnection.java +10 −3 Original line number Diff line number Diff line Loading @@ -341,7 +341,8 @@ public class DataConnection extends StateMachine { static final int EVENT_NR_FREQUENCY_CHANGED = BASE + 29; static final int EVENT_CARRIER_CONFIG_LINK_BANDWIDTHS_CHANGED = BASE + 30; static final int EVENT_CARRIER_PRIVILEGED_UIDS_CHANGED = BASE + 31; private static final int CMD_TO_STRING_COUNT = EVENT_CARRIER_PRIVILEGED_UIDS_CHANGED - BASE + 1; static final int EVENT_CSS_INDICATOR_CHANGED = BASE + 32; private static final int CMD_TO_STRING_COUNT = EVENT_CSS_INDICATOR_CHANGED - BASE + 1; private static String[] sCmdToString = new String[CMD_TO_STRING_COUNT]; static { Loading Loading @@ -385,6 +386,7 @@ public class DataConnection extends StateMachine { "EVENT_CARRIER_CONFIG_LINK_BANDWIDTHS_CHANGED"; sCmdToString[EVENT_CARRIER_PRIVILEGED_UIDS_CHANGED - BASE] = "EVENT_CARRIER_PRIVILEGED_UIDS_CHANGED"; sCmdToString[EVENT_CSS_INDICATOR_CHANGED - BASE] = "EVENT_CSS_INDICATOR_CHANGED"; } // Convert cmd to string or null if unknown static String cmdToString(int cmd) { Loading Loading @@ -1484,7 +1486,6 @@ public class DataConnection extends StateMachine { result.removeCapability(NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED); } updateSuspendState(); result.setCapability(NetworkCapabilities.NET_CAPABILITY_NOT_SUSPENDED, !mIsSuspended); result.setAdministratorUids(mAdministratorUids); Loading Loading @@ -1721,6 +1722,8 @@ public class DataConnection extends StateMachine { DataConnection.EVENT_NR_STATE_CHANGED, null); mPhone.getServiceStateTracker().registerForNrFrequencyChanged(getHandler(), DataConnection.EVENT_NR_FREQUENCY_CHANGED, null); mPhone.getServiceStateTracker().registerForCssIndicatorChanged(getHandler(), DataConnection.EVENT_CSS_INDICATOR_CHANGED, null); // Add ourselves to the list of data connections mDcController.addDc(DataConnection.this); Loading @@ -1737,6 +1740,7 @@ public class DataConnection extends StateMachine { mPhone.getServiceStateTracker().unregisterForDataRoamingOff(getHandler()); mPhone.getServiceStateTracker().unregisterForNrStateChanged(getHandler()); mPhone.getServiceStateTracker().unregisterForNrFrequencyChanged(getHandler()); mPhone.getServiceStateTracker().unregisterForCssIndicatorChanged(getHandler()); // Remove ourselves from the DC lists mDcController.removeDc(DataConnection.this); Loading Loading @@ -2403,6 +2407,7 @@ public class DataConnection extends StateMachine { + " drs=" + mDataRegState + " mRilRat=" + mRilRat); } updateSuspendState(); if (mNetworkAgent != null) { mNetworkAgent.updateLegacySubtype(DataConnection.this); // The new suspended state will be passed through connectivity service Loading Loading @@ -2438,7 +2443,9 @@ public class DataConnection extends StateMachine { case EVENT_DATA_CONNECTION_ROAM_OFF: case EVENT_DATA_CONNECTION_OVERRIDE_CHANGED: case EVENT_DATA_CONNECTION_VOICE_CALL_STARTED: case EVENT_DATA_CONNECTION_VOICE_CALL_ENDED: { case EVENT_DATA_CONNECTION_VOICE_CALL_ENDED: case EVENT_CSS_INDICATOR_CHANGED: { updateSuspendState(); if (mNetworkAgent != null) { mNetworkAgent.updateLegacySubtype(DataConnection.this); mNetworkAgent.sendNetworkCapabilities(getNetworkCapabilities(), Loading Loading
src/java/com/android/internal/telephony/ServiceStateTracker.java +24 −0 Original line number Diff line number Diff line Loading @@ -224,6 +224,7 @@ public class ServiceStateTracker extends Handler { private RegistrantList mImsCapabilityChangedRegistrants = new RegistrantList(); private RegistrantList mNrStateChangedRegistrants = new RegistrantList(); private RegistrantList mNrFrequencyChangedRegistrants = new RegistrantList(); private RegistrantList mCssIndicatorChangedRegistrants = new RegistrantList(); /* Radio power off pending flag and tag counter */ private boolean mPendingRadioPowerOffAfterDataOff = false; Loading Loading @@ -3462,6 +3463,10 @@ public class ServiceStateTracker extends Handler { mNitzState.handleNetworkUnavailable(); } if (hasCssIndicatorChanged) { mCssIndicatorChangedRegistrants.notifyRegistrants(); } if (hasRejectCauseChanged) { setNotification(CS_REJECT_CAUSE_ENABLED); } Loading Loading @@ -5799,6 +5804,25 @@ public class ServiceStateTracker extends Handler { mNrFrequencyChangedRegistrants.remove(h); } /** * Registers for CSS indicator changed. * @param h handler to notify * @param what what code of message when delivered * @param obj placed in Message.obj */ public void registerForCssIndicatorChanged(Handler h, int what, Object obj) { Registrant r = new Registrant(h, what, obj); mCssIndicatorChangedRegistrants.add(r); } /** * Unregisters for CSS indicator changed. * @param h handler to notify */ public void unregisterForCssIndicatorChanged(Handler h) { mCssIndicatorChangedRegistrants.remove(h); } /** * Get the NR data connection context ids. * Loading
src/java/com/android/internal/telephony/dataconnection/DataConnection.java +10 −3 Original line number Diff line number Diff line Loading @@ -341,7 +341,8 @@ public class DataConnection extends StateMachine { static final int EVENT_NR_FREQUENCY_CHANGED = BASE + 29; static final int EVENT_CARRIER_CONFIG_LINK_BANDWIDTHS_CHANGED = BASE + 30; static final int EVENT_CARRIER_PRIVILEGED_UIDS_CHANGED = BASE + 31; private static final int CMD_TO_STRING_COUNT = EVENT_CARRIER_PRIVILEGED_UIDS_CHANGED - BASE + 1; static final int EVENT_CSS_INDICATOR_CHANGED = BASE + 32; private static final int CMD_TO_STRING_COUNT = EVENT_CSS_INDICATOR_CHANGED - BASE + 1; private static String[] sCmdToString = new String[CMD_TO_STRING_COUNT]; static { Loading Loading @@ -385,6 +386,7 @@ public class DataConnection extends StateMachine { "EVENT_CARRIER_CONFIG_LINK_BANDWIDTHS_CHANGED"; sCmdToString[EVENT_CARRIER_PRIVILEGED_UIDS_CHANGED - BASE] = "EVENT_CARRIER_PRIVILEGED_UIDS_CHANGED"; sCmdToString[EVENT_CSS_INDICATOR_CHANGED - BASE] = "EVENT_CSS_INDICATOR_CHANGED"; } // Convert cmd to string or null if unknown static String cmdToString(int cmd) { Loading Loading @@ -1484,7 +1486,6 @@ public class DataConnection extends StateMachine { result.removeCapability(NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED); } updateSuspendState(); result.setCapability(NetworkCapabilities.NET_CAPABILITY_NOT_SUSPENDED, !mIsSuspended); result.setAdministratorUids(mAdministratorUids); Loading Loading @@ -1721,6 +1722,8 @@ public class DataConnection extends StateMachine { DataConnection.EVENT_NR_STATE_CHANGED, null); mPhone.getServiceStateTracker().registerForNrFrequencyChanged(getHandler(), DataConnection.EVENT_NR_FREQUENCY_CHANGED, null); mPhone.getServiceStateTracker().registerForCssIndicatorChanged(getHandler(), DataConnection.EVENT_CSS_INDICATOR_CHANGED, null); // Add ourselves to the list of data connections mDcController.addDc(DataConnection.this); Loading @@ -1737,6 +1740,7 @@ public class DataConnection extends StateMachine { mPhone.getServiceStateTracker().unregisterForDataRoamingOff(getHandler()); mPhone.getServiceStateTracker().unregisterForNrStateChanged(getHandler()); mPhone.getServiceStateTracker().unregisterForNrFrequencyChanged(getHandler()); mPhone.getServiceStateTracker().unregisterForCssIndicatorChanged(getHandler()); // Remove ourselves from the DC lists mDcController.removeDc(DataConnection.this); Loading Loading @@ -2403,6 +2407,7 @@ public class DataConnection extends StateMachine { + " drs=" + mDataRegState + " mRilRat=" + mRilRat); } updateSuspendState(); if (mNetworkAgent != null) { mNetworkAgent.updateLegacySubtype(DataConnection.this); // The new suspended state will be passed through connectivity service Loading Loading @@ -2438,7 +2443,9 @@ public class DataConnection extends StateMachine { case EVENT_DATA_CONNECTION_ROAM_OFF: case EVENT_DATA_CONNECTION_OVERRIDE_CHANGED: case EVENT_DATA_CONNECTION_VOICE_CALL_STARTED: case EVENT_DATA_CONNECTION_VOICE_CALL_ENDED: { case EVENT_DATA_CONNECTION_VOICE_CALL_ENDED: case EVENT_CSS_INDICATOR_CHANGED: { updateSuspendState(); if (mNetworkAgent != null) { mNetworkAgent.updateLegacySubtype(DataConnection.this); mNetworkAgent.sendNetworkCapabilities(getNetworkCapabilities(), Loading