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);
         }
     }