summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTaesu Lee <taesu82.lee@samsung.com>2021-07-07 22:56:04 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2021-07-07 22:56:04 +0000
commit1e23b91012b8f5ac054e28859f0db1974ce4f59b (patch)
tree0ab2c9d0553008a7d24fc7c557e20a6361df03dd
parentfd128b6cf1b0e2fe3d9eeed9126d0e453f3323c6 (diff)
parent31bda7cf4b00782020c99b75deb4393a24afecb3 (diff)
downloadMms-1e23b91012b8f5ac054e28859f0db1974ce4f59b.tar.gz
Reset an MMS HTTP client when a network disconnects or is suspended am: 6e2ecfb97f am: 6f2104d54c am: 31bda7cf4b
Original change: https://android-review.googlesource.com/c/platform/packages/services/Mms/+/1749507 Change-Id: I84932565dce53fa4eb84a24ced09e0ed9084ef63
-rw-r--r--src/com/android/mms/service/MmsNetworkManager.java22
1 files changed, 15 insertions, 7 deletions
diff --git a/src/com/android/mms/service/MmsNetworkManager.java b/src/com/android/mms/service/MmsNetworkManager.java
index 670ed81..6799d29 100644
--- a/src/com/android/mms/service/MmsNetworkManager.java
+++ b/src/com/android/mms/service/MmsNetworkManager.java
@@ -149,7 +149,10 @@ public class MmsNetworkManager {
LogUtil.w("NetworkCallbackListener.onLost: network=" + network);
synchronized (MmsNetworkManager.this) {
// Wait for other available network. Not notify.
- if (network.equals(mNetwork)) mNetwork = null;
+ if (network.equals(mNetwork)) {
+ mNetwork = null;
+ mMmsHttpClient = null;
+ }
}
}
@@ -176,6 +179,7 @@ public class MmsNetworkManager {
if (network.equals(mNetwork) && !isAvailable) {
// Current network becomes suspended.
mNetwork = null;
+ mMmsHttpClient = null;
// Not notify. Either wait for other available network or current network to
// become available again.
return;
@@ -265,23 +269,27 @@ public class MmsNetworkManager {
LogUtil.d(requestId, "MmsNetworkManager: already available");
return;
}
- // Not available, so start a new request if not done yet
- if (mNetworkCallback == null) {
+
+ if (!mReceiverRegistered) {
mPhoneId = mDeps.getPhoneId(mSubId);
if (mPhoneId == SubscriptionManager.INVALID_PHONE_INDEX
|| mPhoneId == SubscriptionManager.DEFAULT_PHONE_INDEX) {
throw new MmsNetworkException("Invalid Phone Id: " + mPhoneId);
}
- LogUtil.d(requestId, "MmsNetworkManager: start new network request");
- startNewNetworkRequestLocked(networkRequestTimeoutMillis);
-
// Register a receiver to listen to ACTION_SIM_CARD_STATE_CHANGED
mContext.registerReceiver(
mReceiver,
new IntentFilter(TelephonyManager.ACTION_SIM_CARD_STATE_CHANGED));
mReceiverRegistered = true;
}
+
+ // Not available, so start a new request if not done yet
+ if (mNetworkCallback == null) {
+ LogUtil.d(requestId, "MmsNetworkManager: start new network request");
+ startNewNetworkRequestLocked(networkRequestTimeoutMillis);
+ }
+
try {
this.wait(networkRequestTimeoutMillis
+ mDeps.getAdditionalNetworkAcquireTimeoutMillis());
@@ -305,7 +313,7 @@ public class MmsNetworkManager {
"MmsNetworkManager: timed out with networkRequestTimeoutMillis="
+ networkRequestTimeoutMillis
+ " and ADDITIONAL_NETWORK_ACQUIRE_TIMEOUT_MILLIS="
- + ADDITIONAL_NETWORK_ACQUIRE_TIMEOUT_MILLIS);
+ + mDeps.getAdditionalNetworkAcquireTimeoutMillis());
// Release the network request and wake up all the MmsRequests for fast-fail
// together.
// TODO: Start new network request for remaining MmsRequests?