Loading src/java/com/android/internal/telephony/data/DataNetworkController.java +15 −1 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.net.NetworkRequest; import android.os.Handler; import android.os.Looper; import android.os.Message; import android.os.RegistrantList; import android.os.SystemProperties; import android.telephony.AccessNetworkConstants; import android.telephony.data.DataProfile; Loading Loading @@ -145,6 +146,8 @@ public class DataNetworkController extends Handler { private final @NonNull NetworkRequestList mActivelyProcessedNetworkRequestList = new NetworkRequestList(); private final RegistrantList mInternetValidationStatusRegistrants = new RegistrantList(); /** * The sorted network request list by priority. The highest priority network request stays at * the head of the list. The highest priority is 100, the lowest is 0. Loading Loading @@ -215,7 +218,8 @@ public class DataNetworkController extends Handler { mDataConfigManager = new DataConfigManager(mPhone, looper); mDataSettingsManager = new DataSettingsManager(mPhone, looper); mDataProfileManager = new DataProfileManager(mPhone, looper); mDataStallMonitor = new DataStallMonitor(mPhone, looper); mDataStallMonitor = new DataStallMonitor(mPhone, this, mDataServiceManagers .get(AccessNetworkConstants.TRANSPORT_TYPE_WWAN), looper); mDataTaskManager = new DataTaskManager(mPhone, looper); registerAllEvents(); Loading Loading @@ -406,6 +410,16 @@ public class DataNetworkController extends Handler { return mPhone.getHalVersion().less(RIL.RADIO_HAL_VERSION_1_4); } /** * Register for internet data network validation status changed event. * * @param handler The handler to handle the event. * @param what The event. */ public void registerForInternetValidationStatusChanged(@NonNull Handler handler, int what) { mInternetValidationStatusRegistrants.addUnique(handler, what, null); } /** * Log debug messages. * @param s debug messages Loading src/java/com/android/internal/telephony/data/DataStallMonitor.java +55 −4 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.internal.telephony.data; import android.annotation.NonNull; import android.os.AsyncResult; import android.os.Handler; import android.os.Looper; import android.os.Message; Loading @@ -34,25 +35,75 @@ import java.io.PrintWriter; * actions to recover */ public class DataStallMonitor extends Handler { private final Phone mPhone; private final String mLogTag; private final LocalLog mLocalLog = new LocalLog(128); /** Event for data config updated. */ private static final int EVENT_DATA_CONFIG_UPDATED = 1; /** Event for internet validation status changed. */ private static final int EVENT_INTERNET_VALIDATION_STATUS_CHANGED = 2; private final @NonNull Phone mPhone; private final @NonNull String mLogTag; private final @NonNull LocalLog mLocalLog = new LocalLog(128); /** Data network controller */ private final @NonNull DataNetworkController mDataNetworkController; /** Data config manager */ private final @NonNull DataConfigManager mDataConfigManager; /** Cellular data service */ private final @NonNull DataServiceManager mWwanDataServiceManager; /** * Constructor * * @param phone The phone instance. * @param dataServiceManager The WWAN data service manager. * @param looper The looper to be used by the handler. Currently the handler thread is the * phone process's main thread. */ public DataStallMonitor(Phone phone, Looper looper) { public DataStallMonitor(@NonNull Phone phone, @NonNull DataNetworkController dataNetworkController, @NonNull DataServiceManager dataServiceManager, @NonNull Looper looper) { super(looper); mPhone = phone; mLogTag = "DSTMTR-" + mPhone.getPhoneId(); mDataNetworkController = dataNetworkController; mWwanDataServiceManager = dataServiceManager; mDataConfigManager = mDataNetworkController.getDataConfigManager(); mDataConfigManager.registerForConfigUpdate(this, EVENT_DATA_CONFIG_UPDATED); mDataNetworkController.registerForInternetValidationStatusChanged(this, EVENT_INTERNET_VALIDATION_STATUS_CHANGED); } @Override public void handleMessage(Message msg) { switch (msg.what) { case EVENT_DATA_CONFIG_UPDATED: onDataConfigUpdated(); break; case EVENT_INTERNET_VALIDATION_STATUS_CHANGED: AsyncResult ar = (AsyncResult) msg.obj; Boolean isValid = (Boolean) ar.result; onInternetValidationStatusChanged(isValid); break; } } /** * Called when data config was updated. */ private void onDataConfigUpdated() { } /** * Called when internet validation status changed. * * @param isValid {@code true} if internet validation succeeded. */ private void onInternetValidationStatusChanged(boolean isValid) { } Loading Loading
src/java/com/android/internal/telephony/data/DataNetworkController.java +15 −1 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.net.NetworkRequest; import android.os.Handler; import android.os.Looper; import android.os.Message; import android.os.RegistrantList; import android.os.SystemProperties; import android.telephony.AccessNetworkConstants; import android.telephony.data.DataProfile; Loading Loading @@ -145,6 +146,8 @@ public class DataNetworkController extends Handler { private final @NonNull NetworkRequestList mActivelyProcessedNetworkRequestList = new NetworkRequestList(); private final RegistrantList mInternetValidationStatusRegistrants = new RegistrantList(); /** * The sorted network request list by priority. The highest priority network request stays at * the head of the list. The highest priority is 100, the lowest is 0. Loading Loading @@ -215,7 +218,8 @@ public class DataNetworkController extends Handler { mDataConfigManager = new DataConfigManager(mPhone, looper); mDataSettingsManager = new DataSettingsManager(mPhone, looper); mDataProfileManager = new DataProfileManager(mPhone, looper); mDataStallMonitor = new DataStallMonitor(mPhone, looper); mDataStallMonitor = new DataStallMonitor(mPhone, this, mDataServiceManagers .get(AccessNetworkConstants.TRANSPORT_TYPE_WWAN), looper); mDataTaskManager = new DataTaskManager(mPhone, looper); registerAllEvents(); Loading Loading @@ -406,6 +410,16 @@ public class DataNetworkController extends Handler { return mPhone.getHalVersion().less(RIL.RADIO_HAL_VERSION_1_4); } /** * Register for internet data network validation status changed event. * * @param handler The handler to handle the event. * @param what The event. */ public void registerForInternetValidationStatusChanged(@NonNull Handler handler, int what) { mInternetValidationStatusRegistrants.addUnique(handler, what, null); } /** * Log debug messages. * @param s debug messages Loading
src/java/com/android/internal/telephony/data/DataStallMonitor.java +55 −4 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.internal.telephony.data; import android.annotation.NonNull; import android.os.AsyncResult; import android.os.Handler; import android.os.Looper; import android.os.Message; Loading @@ -34,25 +35,75 @@ import java.io.PrintWriter; * actions to recover */ public class DataStallMonitor extends Handler { private final Phone mPhone; private final String mLogTag; private final LocalLog mLocalLog = new LocalLog(128); /** Event for data config updated. */ private static final int EVENT_DATA_CONFIG_UPDATED = 1; /** Event for internet validation status changed. */ private static final int EVENT_INTERNET_VALIDATION_STATUS_CHANGED = 2; private final @NonNull Phone mPhone; private final @NonNull String mLogTag; private final @NonNull LocalLog mLocalLog = new LocalLog(128); /** Data network controller */ private final @NonNull DataNetworkController mDataNetworkController; /** Data config manager */ private final @NonNull DataConfigManager mDataConfigManager; /** Cellular data service */ private final @NonNull DataServiceManager mWwanDataServiceManager; /** * Constructor * * @param phone The phone instance. * @param dataServiceManager The WWAN data service manager. * @param looper The looper to be used by the handler. Currently the handler thread is the * phone process's main thread. */ public DataStallMonitor(Phone phone, Looper looper) { public DataStallMonitor(@NonNull Phone phone, @NonNull DataNetworkController dataNetworkController, @NonNull DataServiceManager dataServiceManager, @NonNull Looper looper) { super(looper); mPhone = phone; mLogTag = "DSTMTR-" + mPhone.getPhoneId(); mDataNetworkController = dataNetworkController; mWwanDataServiceManager = dataServiceManager; mDataConfigManager = mDataNetworkController.getDataConfigManager(); mDataConfigManager.registerForConfigUpdate(this, EVENT_DATA_CONFIG_UPDATED); mDataNetworkController.registerForInternetValidationStatusChanged(this, EVENT_INTERNET_VALIDATION_STATUS_CHANGED); } @Override public void handleMessage(Message msg) { switch (msg.what) { case EVENT_DATA_CONFIG_UPDATED: onDataConfigUpdated(); break; case EVENT_INTERNET_VALIDATION_STATUS_CHANGED: AsyncResult ar = (AsyncResult) msg.obj; Boolean isValid = (Boolean) ar.result; onInternetValidationStatusChanged(isValid); break; } } /** * Called when data config was updated. */ private void onDataConfigUpdated() { } /** * Called when internet validation status changed. * * @param isValid {@code true} if internet validation succeeded. */ private void onInternetValidationStatusChanged(boolean isValid) { } Loading