summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTaesu Lee <taesu82.lee@samsung.com>2021-06-28 13:22:15 +0900
committerTaesu Lee <taesu82.lee@samsung.com>2021-06-28 09:14:39 +0000
commit6e2ecfb97f4093c4d712128852e36509546a40b0 (patch)
tree56d5ed5ab8c0e1f2ed68a9ba5f6852b35d0578d1
parentf9a72a813d5bbcc467ca63348ae740cbd0b87f08 (diff)
downloadplatform_packages_services_Mms-android-s-beta-5.tar.gz
platform_packages_services_Mms-android-s-beta-5.tar.bz2
platform_packages_services_Mms-android-s-beta-5.zip
Reset an MMS HTTP client when a network disconnects or is suspendedandroid-s-beta-5android-s-beta-4android-s-beta-3android-s-beta-5android-s-beta-4
Clean up the MMS HTTP client also when an MMS network is reset. And it registers a receiver for ACTION_SIM_CARD_STATE_CHANGED for the requests waiting for other available networks following onLost(). Bug: 192209300 Test: make RunMmsServiceRoboTests ROBOTEST_FILTER=MmsNetworkManagerTest Signed-off-by: Taesu Lee <taesu82.lee@samsung.com> Change-Id: I470db056a4f3afb989bbfd39ccf8ff8e0b04adf9
-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?