Send an async request to modem each time getModemStatus is called to eventually
update the modemStatus, and not rely on stale cached value
Bug: 135067156
Test: manual
Change-Id: Iaf9b47c7c649ad031389278e2be8b3bc65f2ad58
Merged-In: Iaf9b47c7c649ad031389278e2be8b3bc65f2ad58
(cherry picked from commit a79b4c9c5d4fecb7862c1809102c47dd8f4a1d30)
diff --git a/src/java/com/android/internal/telephony/PhoneConfigurationManager.java b/src/java/com/android/internal/telephony/PhoneConfigurationManager.java
index 2771f25..197a7f3 100644
--- a/src/java/com/android/internal/telephony/PhoneConfigurationManager.java
+++ b/src/java/com/android/internal/telephony/PhoneConfigurationManager.java
@@ -208,12 +208,14 @@
try {
return getPhoneStatusFromCache(phoneId);
} catch (NoSuchElementException ex) {
- updatePhoneStatus(phone);
// Return true if modem status cannot be retrieved. For most cases, modem status
// is on. And for older version modems, GET_MODEM_STATUS and disable modem are not
// supported. Modem is always on.
//TODO: this should be fixed in R to support a third status UNKNOWN b/131631629
return true;
+ } finally {
+ //in either case send an asynchronous request to retrieve the phone status
+ updatePhoneStatus(phone);
}
}