Loading src/java/com/android/internal/telephony/RetryManager.java +24 −35 Original line number Diff line number Diff line Loading @@ -27,8 +27,6 @@ import android.util.Pair; import com.android.internal.telephony.dataconnection.ApnSetting; import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Random; Loading Loading @@ -111,6 +109,11 @@ public class RetryManager { */ private static final long DEFAULT_INTER_APN_DELAY_FOR_PROVISIONING = 3000; /** * The default value (in milliseconds) for retrying APN after disconnect */ private static final long DEFAULT_APN_RETRY_AFTER_DISCONNECT_DELAY = 10000; /** * The value indicating no retry is needed */ Loading Loading @@ -140,6 +143,12 @@ public class RetryManager { */ private long mFailFastInterApnDelay; /** * The delay (in milliseconds) for APN retrying after disconnect (e.g. Modem suddenly reports * data call lost) */ private long mApnRetryAfterDisconnectDelay; /** * Modem suggested delay for retrying the current APN */ Loading Loading @@ -337,6 +346,9 @@ public class RetryManager { mFailFastInterApnDelay = b.getLong( CarrierConfigManager.KEY_CARRIER_DATA_CALL_APN_DELAY_FASTER_LONG, DEFAULT_INTER_APN_DELAY_FOR_PROVISIONING); mApnRetryAfterDisconnectDelay = b.getLong( CarrierConfigManager.KEY_CARRIER_DATA_CALL_APN_RETRY_AFTER_DISCONNECT_LONG, DEFAULT_APN_RETRY_AFTER_DISCONNECT_DELAY); // Load all retry patterns for all different APNs. String[] allConfigStrings = b.getStringArray( Loading Loading @@ -645,44 +657,21 @@ public class RetryManager { } /** * Get the delay between APN setting trying. This is the fixed delay used for APN setting trying * within the same round, comparing to the exponential delay used for different rounds. * @param failFastEnabled True if fail fast mode enabled, which a shorter delay will be used * Get the delay in milliseconds for APN retry after disconnect * @return The delay in milliseconds */ public long getInterApnDelay(boolean failFastEnabled) { return (failFastEnabled) ? mFailFastInterApnDelay : mInterApnDelay; public long getRetryAfterDisconnectDelay() { return mApnRetryAfterDisconnectDelay; } public String toString() { return "mApnType=" + mApnType + " mRetryCount=" + mRetryCount + " mMaxRetryCount=" + mMaxRetryCount + " mCurrentApnIndex=" + mCurrentApnIndex + " mSameApnRtryCount=" + mSameApnRetryCount + " mModemSuggestedDelay=" + mModemSuggestedDelay + " mRetryForever=" + mRetryForever + " mConfig={" + mConfig + "}"; } public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { pw.println(" RetryManager"); pw.println("***************************************"); pw.println(" config = " + mConfig); pw.println(" mApnType = " + mApnType); pw.println(" mCurrentApnIndex = " + mCurrentApnIndex); pw.println(" mRetryCount = " + mRetryCount); pw.println(" mMaxRetryCount = " + mMaxRetryCount); pw.println(" mSameApnRetryCount = " + mSameApnRetryCount); pw.println(" mModemSuggestedDelay = " + mModemSuggestedDelay); if (mWaitingApns != null) { pw.println(" APN list: "); for (int i = 0; i < mWaitingApns.size(); i++) { pw.println(" [" + i + "]=" + mWaitingApns.get(i)); } } pw.println("***************************************"); pw.flush(); if (mConfig == null) return ""; return "RetryManager: mApnType=" + mApnType + " mRetryCount=" + mRetryCount + " mMaxRetryCount=" + mMaxRetryCount + " mCurrentApnIndex=" + mCurrentApnIndex + " mSameApnRtryCount=" + mSameApnRetryCount + " mModemSuggestedDelay=" + mModemSuggestedDelay + " mRetryForever=" + mRetryForever + " mInterApnDelay=" + mInterApnDelay + " mApnRetryAfterDisconnectDelay=" + mApnRetryAfterDisconnectDelay + " mConfig={" + mConfig + "}"; } private void log(String s) { Loading src/java/com/android/internal/telephony/dataconnection/ApnContext.java +3 −4 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package com.android.internal.telephony.dataconnection; import android.app.PendingIntent; import android.content.res.Resources; import android.net.ConnectivityManager; import android.net.NetworkCapabilities; import android.net.NetworkConfig; Loading Loading @@ -536,8 +535,8 @@ public class ApnContext { return mConnectionGeneration.get(); } public long getInterApnDelay(boolean failFastEnabled) { return mRetryManager.getInterApnDelay(failFastEnabled || isFastRetryReason()); long getRetryAfterDisconnectDelay() { return mRetryManager.getRetryAfterDisconnectDelay(); } public static int apnIdForType(int networkType) { Loading Loading @@ -726,7 +725,7 @@ public class ApnContext { l.dump(fd, pw, args); } pw.decreaseIndent(); pw.println("mRetryManager={" + mRetryManager.toString() + "}"); pw.println(mRetryManager); } } } src/java/com/android/internal/telephony/dataconnection/DcTracker.java +1 −1 Original line number Diff line number Diff line Loading @@ -3178,7 +3178,7 @@ public class DcTracker extends Handler { // we're not tying up the RIL command channel. // This also helps in any external dependency to turn off the context. if (DBG) log("onDisconnectDone: attached, ready and retry after disconnect"); long delay = apnContext.getInterApnDelay(mFailFast); long delay = apnContext.getRetryAfterDisconnectDelay(); if (delay > 0) { // Data connection is in IDLE state, so when we reconnect later, we'll rebuild // the waiting APN list, which will also reset/reconfigure the retry manager. Loading Loading
src/java/com/android/internal/telephony/RetryManager.java +24 −35 Original line number Diff line number Diff line Loading @@ -27,8 +27,6 @@ import android.util.Pair; import com.android.internal.telephony.dataconnection.ApnSetting; import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Random; Loading Loading @@ -111,6 +109,11 @@ public class RetryManager { */ private static final long DEFAULT_INTER_APN_DELAY_FOR_PROVISIONING = 3000; /** * The default value (in milliseconds) for retrying APN after disconnect */ private static final long DEFAULT_APN_RETRY_AFTER_DISCONNECT_DELAY = 10000; /** * The value indicating no retry is needed */ Loading Loading @@ -140,6 +143,12 @@ public class RetryManager { */ private long mFailFastInterApnDelay; /** * The delay (in milliseconds) for APN retrying after disconnect (e.g. Modem suddenly reports * data call lost) */ private long mApnRetryAfterDisconnectDelay; /** * Modem suggested delay for retrying the current APN */ Loading Loading @@ -337,6 +346,9 @@ public class RetryManager { mFailFastInterApnDelay = b.getLong( CarrierConfigManager.KEY_CARRIER_DATA_CALL_APN_DELAY_FASTER_LONG, DEFAULT_INTER_APN_DELAY_FOR_PROVISIONING); mApnRetryAfterDisconnectDelay = b.getLong( CarrierConfigManager.KEY_CARRIER_DATA_CALL_APN_RETRY_AFTER_DISCONNECT_LONG, DEFAULT_APN_RETRY_AFTER_DISCONNECT_DELAY); // Load all retry patterns for all different APNs. String[] allConfigStrings = b.getStringArray( Loading Loading @@ -645,44 +657,21 @@ public class RetryManager { } /** * Get the delay between APN setting trying. This is the fixed delay used for APN setting trying * within the same round, comparing to the exponential delay used for different rounds. * @param failFastEnabled True if fail fast mode enabled, which a shorter delay will be used * Get the delay in milliseconds for APN retry after disconnect * @return The delay in milliseconds */ public long getInterApnDelay(boolean failFastEnabled) { return (failFastEnabled) ? mFailFastInterApnDelay : mInterApnDelay; public long getRetryAfterDisconnectDelay() { return mApnRetryAfterDisconnectDelay; } public String toString() { return "mApnType=" + mApnType + " mRetryCount=" + mRetryCount + " mMaxRetryCount=" + mMaxRetryCount + " mCurrentApnIndex=" + mCurrentApnIndex + " mSameApnRtryCount=" + mSameApnRetryCount + " mModemSuggestedDelay=" + mModemSuggestedDelay + " mRetryForever=" + mRetryForever + " mConfig={" + mConfig + "}"; } public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { pw.println(" RetryManager"); pw.println("***************************************"); pw.println(" config = " + mConfig); pw.println(" mApnType = " + mApnType); pw.println(" mCurrentApnIndex = " + mCurrentApnIndex); pw.println(" mRetryCount = " + mRetryCount); pw.println(" mMaxRetryCount = " + mMaxRetryCount); pw.println(" mSameApnRetryCount = " + mSameApnRetryCount); pw.println(" mModemSuggestedDelay = " + mModemSuggestedDelay); if (mWaitingApns != null) { pw.println(" APN list: "); for (int i = 0; i < mWaitingApns.size(); i++) { pw.println(" [" + i + "]=" + mWaitingApns.get(i)); } } pw.println("***************************************"); pw.flush(); if (mConfig == null) return ""; return "RetryManager: mApnType=" + mApnType + " mRetryCount=" + mRetryCount + " mMaxRetryCount=" + mMaxRetryCount + " mCurrentApnIndex=" + mCurrentApnIndex + " mSameApnRtryCount=" + mSameApnRetryCount + " mModemSuggestedDelay=" + mModemSuggestedDelay + " mRetryForever=" + mRetryForever + " mInterApnDelay=" + mInterApnDelay + " mApnRetryAfterDisconnectDelay=" + mApnRetryAfterDisconnectDelay + " mConfig={" + mConfig + "}"; } private void log(String s) { Loading
src/java/com/android/internal/telephony/dataconnection/ApnContext.java +3 −4 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package com.android.internal.telephony.dataconnection; import android.app.PendingIntent; import android.content.res.Resources; import android.net.ConnectivityManager; import android.net.NetworkCapabilities; import android.net.NetworkConfig; Loading Loading @@ -536,8 +535,8 @@ public class ApnContext { return mConnectionGeneration.get(); } public long getInterApnDelay(boolean failFastEnabled) { return mRetryManager.getInterApnDelay(failFastEnabled || isFastRetryReason()); long getRetryAfterDisconnectDelay() { return mRetryManager.getRetryAfterDisconnectDelay(); } public static int apnIdForType(int networkType) { Loading Loading @@ -726,7 +725,7 @@ public class ApnContext { l.dump(fd, pw, args); } pw.decreaseIndent(); pw.println("mRetryManager={" + mRetryManager.toString() + "}"); pw.println(mRetryManager); } } }
src/java/com/android/internal/telephony/dataconnection/DcTracker.java +1 −1 Original line number Diff line number Diff line Loading @@ -3178,7 +3178,7 @@ public class DcTracker extends Handler { // we're not tying up the RIL command channel. // This also helps in any external dependency to turn off the context. if (DBG) log("onDisconnectDone: attached, ready and retry after disconnect"); long delay = apnContext.getInterApnDelay(mFailFast); long delay = apnContext.getRetryAfterDisconnectDelay(); if (delay > 0) { // Data connection is in IDLE state, so when we reconnect later, we'll rebuild // the waiting APN list, which will also reset/reconfigure the retry manager. Loading