Loading src/java/com/android/internal/telephony/ServiceStateTracker.java +23 −0 Original line number Original line Diff line number Diff line Loading @@ -241,6 +241,7 @@ public class ServiceStateTracker extends Handler { private RegistrantList mNrStateChangedRegistrants = new RegistrantList(); private RegistrantList mNrStateChangedRegistrants = new RegistrantList(); private RegistrantList mNrFrequencyChangedRegistrants = new RegistrantList(); private RegistrantList mNrFrequencyChangedRegistrants = new RegistrantList(); private RegistrantList mCssIndicatorChangedRegistrants = new RegistrantList(); private RegistrantList mCssIndicatorChangedRegistrants = new RegistrantList(); private final RegistrantList mAirplaneModeChangedRegistrants = new RegistrantList(); /* Radio power off pending flag and tag counter */ /* Radio power off pending flag and tag counter */ private boolean mPendingRadioPowerOffAfterDataOff = false; private boolean mPendingRadioPowerOffAfterDataOff = false; Loading Loading @@ -2005,6 +2006,7 @@ public class ServiceStateTracker extends Handler { public void onAirplaneModeChanged(boolean isAirplaneModeOn) { public void onAirplaneModeChanged(boolean isAirplaneModeOn) { mLastNitzData = null; mLastNitzData = null; mNitzState.handleAirplaneModeChanged(isAirplaneModeOn); mNitzState.handleAirplaneModeChanged(isAirplaneModeOn); mAirplaneModeChangedRegistrants.notifyResult(isAirplaneModeOn); } } protected Phone getPhone() { protected Phone getPhone() { Loading Loading @@ -4790,6 +4792,27 @@ public class ServiceStateTracker extends Handler { } } } } /** * Registration for Airplane Mode changing. The state of Airplane Mode will be returned * {@link AsyncResult#result} as a {@link Boolean} Object. * The {@link AsyncResult} will be in the notification {@link Message#obj}. * @param h handler to notify * @param what what code of message when delivered * @param obj placed in {@link AsyncResult#userObj} */ public void registerForAirplaneModeChanged(Handler h, int what, Object obj) { mAirplaneModeChangedRegistrants.add(h, what, obj); } /** * Unregister for Airplane Mode changed event. * * @param h The handler */ public void unregisterForAirplaneModeChanged(Handler h) { mAirplaneModeChangedRegistrants.remove(h); } /** /** * Registration point for transition into network attached. * Registration point for transition into network attached. * @param h handler to notify * @param h handler to notify Loading src/java/com/android/internal/telephony/dataconnection/DataThrottler.java +15 −0 Original line number Original line Diff line number Diff line Loading @@ -127,6 +127,21 @@ public class DataThrottler { return RetryManager.NO_SUGGESTED_RETRY_DELAY; return RetryManager.NO_SUGGESTED_RETRY_DELAY; } } /** * Resets retry times for all APNs to {@link RetryManager.NO_SUGGESTED_RETRY_DELAY}. */ public void reset() { final List<Integer> apnTypes = new ArrayList<>(); for (ThrottleStatus throttleStatus : mThrottleStatus.values()) { apnTypes.add(throttleStatus.getApnType()); } for (int apnType : apnTypes) { setRetryTime(apnType, RetryManager.NO_SUGGESTED_RETRY_DELAY, DcTracker.REQUEST_TYPE_NORMAL); } } private ThrottleStatus createStatus(@Annotation.ApnType int apnType, long retryElapsedTime, private ThrottleStatus createStatus(@Annotation.ApnType int apnType, long retryElapsedTime, @DcTracker.RequestNetworkType int newRequestType) { @DcTracker.RequestNetworkType int newRequestType) { ThrottleStatus.Builder builder = new ThrottleStatus.Builder(); ThrottleStatus.Builder builder = new ThrottleStatus.Builder(); Loading src/java/com/android/internal/telephony/dataconnection/DcTracker.java +10 −0 Original line number Original line Diff line number Diff line Loading @@ -813,6 +813,8 @@ public class DcTracker extends Handler { DctConstants.EVENT_PS_RESTRICT_DISABLED, null); DctConstants.EVENT_PS_RESTRICT_DISABLED, null); mPhone.getServiceStateTracker().registerForDataRegStateOrRatChanged(mTransportType, this, mPhone.getServiceStateTracker().registerForDataRegStateOrRatChanged(mTransportType, this, DctConstants.EVENT_DATA_RAT_CHANGED, null); DctConstants.EVENT_DATA_RAT_CHANGED, null); mPhone.getServiceStateTracker().registerForAirplaneModeChanged(this, DctConstants.EVENT_AIRPLANE_MODE_CHANGED, null); } } public void unregisterServiceStateTrackerEvents() { public void unregisterServiceStateTrackerEvents() { Loading @@ -823,6 +825,7 @@ public class DcTracker extends Handler { mPhone.getServiceStateTracker().unregisterForPsRestrictedEnabled(this); mPhone.getServiceStateTracker().unregisterForPsRestrictedEnabled(this); mPhone.getServiceStateTracker().unregisterForPsRestrictedDisabled(this); mPhone.getServiceStateTracker().unregisterForPsRestrictedDisabled(this); mPhone.getServiceStateTracker().unregisterForDataRegStateOrRatChanged(mTransportType, this); mPhone.getServiceStateTracker().unregisterForDataRegStateOrRatChanged(mTransportType, this); mPhone.getServiceStateTracker().unregisterForAirplaneModeChanged(this); } } private void registerForAllEvents() { private void registerForAllEvents() { Loading Loading @@ -3996,6 +3999,13 @@ public class DcTracker extends Handler { String apn = (String) ar.result; String apn = (String) ar.result; onApnUnthrottled(apn); onApnUnthrottled(apn); break; break; case DctConstants.EVENT_AIRPLANE_MODE_CHANGED: ar = (AsyncResult) msg.obj; if (!(Boolean) ar.result) { log("Airplane Mode switched off, resetting data throttler"); mDataThrottler.reset(); } break; default: default: Rlog.e("DcTracker", "Unhandled event=" + msg); Rlog.e("DcTracker", "Unhandled event=" + msg); break; break; Loading Loading
src/java/com/android/internal/telephony/ServiceStateTracker.java +23 −0 Original line number Original line Diff line number Diff line Loading @@ -241,6 +241,7 @@ public class ServiceStateTracker extends Handler { private RegistrantList mNrStateChangedRegistrants = new RegistrantList(); private RegistrantList mNrStateChangedRegistrants = new RegistrantList(); private RegistrantList mNrFrequencyChangedRegistrants = new RegistrantList(); private RegistrantList mNrFrequencyChangedRegistrants = new RegistrantList(); private RegistrantList mCssIndicatorChangedRegistrants = new RegistrantList(); private RegistrantList mCssIndicatorChangedRegistrants = new RegistrantList(); private final RegistrantList mAirplaneModeChangedRegistrants = new RegistrantList(); /* Radio power off pending flag and tag counter */ /* Radio power off pending flag and tag counter */ private boolean mPendingRadioPowerOffAfterDataOff = false; private boolean mPendingRadioPowerOffAfterDataOff = false; Loading Loading @@ -2005,6 +2006,7 @@ public class ServiceStateTracker extends Handler { public void onAirplaneModeChanged(boolean isAirplaneModeOn) { public void onAirplaneModeChanged(boolean isAirplaneModeOn) { mLastNitzData = null; mLastNitzData = null; mNitzState.handleAirplaneModeChanged(isAirplaneModeOn); mNitzState.handleAirplaneModeChanged(isAirplaneModeOn); mAirplaneModeChangedRegistrants.notifyResult(isAirplaneModeOn); } } protected Phone getPhone() { protected Phone getPhone() { Loading Loading @@ -4790,6 +4792,27 @@ public class ServiceStateTracker extends Handler { } } } } /** * Registration for Airplane Mode changing. The state of Airplane Mode will be returned * {@link AsyncResult#result} as a {@link Boolean} Object. * The {@link AsyncResult} will be in the notification {@link Message#obj}. * @param h handler to notify * @param what what code of message when delivered * @param obj placed in {@link AsyncResult#userObj} */ public void registerForAirplaneModeChanged(Handler h, int what, Object obj) { mAirplaneModeChangedRegistrants.add(h, what, obj); } /** * Unregister for Airplane Mode changed event. * * @param h The handler */ public void unregisterForAirplaneModeChanged(Handler h) { mAirplaneModeChangedRegistrants.remove(h); } /** /** * Registration point for transition into network attached. * Registration point for transition into network attached. * @param h handler to notify * @param h handler to notify Loading
src/java/com/android/internal/telephony/dataconnection/DataThrottler.java +15 −0 Original line number Original line Diff line number Diff line Loading @@ -127,6 +127,21 @@ public class DataThrottler { return RetryManager.NO_SUGGESTED_RETRY_DELAY; return RetryManager.NO_SUGGESTED_RETRY_DELAY; } } /** * Resets retry times for all APNs to {@link RetryManager.NO_SUGGESTED_RETRY_DELAY}. */ public void reset() { final List<Integer> apnTypes = new ArrayList<>(); for (ThrottleStatus throttleStatus : mThrottleStatus.values()) { apnTypes.add(throttleStatus.getApnType()); } for (int apnType : apnTypes) { setRetryTime(apnType, RetryManager.NO_SUGGESTED_RETRY_DELAY, DcTracker.REQUEST_TYPE_NORMAL); } } private ThrottleStatus createStatus(@Annotation.ApnType int apnType, long retryElapsedTime, private ThrottleStatus createStatus(@Annotation.ApnType int apnType, long retryElapsedTime, @DcTracker.RequestNetworkType int newRequestType) { @DcTracker.RequestNetworkType int newRequestType) { ThrottleStatus.Builder builder = new ThrottleStatus.Builder(); ThrottleStatus.Builder builder = new ThrottleStatus.Builder(); Loading
src/java/com/android/internal/telephony/dataconnection/DcTracker.java +10 −0 Original line number Original line Diff line number Diff line Loading @@ -813,6 +813,8 @@ public class DcTracker extends Handler { DctConstants.EVENT_PS_RESTRICT_DISABLED, null); DctConstants.EVENT_PS_RESTRICT_DISABLED, null); mPhone.getServiceStateTracker().registerForDataRegStateOrRatChanged(mTransportType, this, mPhone.getServiceStateTracker().registerForDataRegStateOrRatChanged(mTransportType, this, DctConstants.EVENT_DATA_RAT_CHANGED, null); DctConstants.EVENT_DATA_RAT_CHANGED, null); mPhone.getServiceStateTracker().registerForAirplaneModeChanged(this, DctConstants.EVENT_AIRPLANE_MODE_CHANGED, null); } } public void unregisterServiceStateTrackerEvents() { public void unregisterServiceStateTrackerEvents() { Loading @@ -823,6 +825,7 @@ public class DcTracker extends Handler { mPhone.getServiceStateTracker().unregisterForPsRestrictedEnabled(this); mPhone.getServiceStateTracker().unregisterForPsRestrictedEnabled(this); mPhone.getServiceStateTracker().unregisterForPsRestrictedDisabled(this); mPhone.getServiceStateTracker().unregisterForPsRestrictedDisabled(this); mPhone.getServiceStateTracker().unregisterForDataRegStateOrRatChanged(mTransportType, this); mPhone.getServiceStateTracker().unregisterForDataRegStateOrRatChanged(mTransportType, this); mPhone.getServiceStateTracker().unregisterForAirplaneModeChanged(this); } } private void registerForAllEvents() { private void registerForAllEvents() { Loading Loading @@ -3996,6 +3999,13 @@ public class DcTracker extends Handler { String apn = (String) ar.result; String apn = (String) ar.result; onApnUnthrottled(apn); onApnUnthrottled(apn); break; break; case DctConstants.EVENT_AIRPLANE_MODE_CHANGED: ar = (AsyncResult) msg.obj; if (!(Boolean) ar.result) { log("Airplane Mode switched off, resetting data throttler"); mDataThrottler.reset(); } break; default: default: Rlog.e("DcTracker", "Unhandled event=" + msg); Rlog.e("DcTracker", "Unhandled event=" + msg); break; break; Loading