Merge "Fix the alarm timing so that it uses absolute time." into mnc-dev
diff --git a/src/com/android/phone/vvm/omtp/sync/OmtpVvmSyncService.java b/src/com/android/phone/vvm/omtp/sync/OmtpVvmSyncService.java
index afced58..363aab9 100644
--- a/src/com/android/phone/vvm/omtp/sync/OmtpVvmSyncService.java
+++ b/src/com/android/phone/vvm/omtp/sync/OmtpVvmSyncService.java
@@ -62,7 +62,6 @@
 
     private VoicemailsQueryHelper mQueryHelper;
     private ConnectivityManager mConnectivityManager;
-    private Map<NetworkCallback, NetworkRequest> mNetworkRequestMap;
 
     public OmtpVvmSyncService() {
         super("OmtpVvmSyncService");
@@ -137,8 +136,6 @@
             return;
         }
 
-        mNetworkRequestMap = new HashMap<NetworkCallback, NetworkRequest>();
-
         String action = intent.getAction();
         PhoneAccountHandle phoneAccount = intent.getParcelableExtra(EXTRA_PHONE_ACCOUNT);
         if (phoneAccount != null) {
@@ -161,18 +158,8 @@
             return;
         }
 
-        NetworkRequest networkRequest = new NetworkRequest.Builder()
-        .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)
-        .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
-        .setNetworkSpecifier(
-                Integer.toString(PhoneUtils.getSubIdForPhoneAccountHandle(phoneAccount)))
-        .build();
-
-        NetworkCallback networkCallback = new OmtpVvmNetworkRequestCallback(this, phoneAccount,
-                action);
-
-        mNetworkRequestMap.put(networkCallback, networkRequest);
-
+        OmtpVvmNetworkRequestCallback networkCallback = new OmtpVvmNetworkRequestCallback(this,
+                phoneAccount, action);
         requestNetwork(networkCallback);
     }
 
@@ -180,6 +167,7 @@
         Context mContext;
         PhoneAccountHandle mPhoneAccount;
         String mAction;
+        NetworkRequest mNetworkRequest;
         int mRetryCount;
 
         public OmtpVvmNetworkRequestCallback(Context context, PhoneAccountHandle phoneAccount,
@@ -187,9 +175,19 @@
             mContext = context;
             mPhoneAccount = phoneAccount;
             mAction = action;
+            mNetworkRequest = new NetworkRequest.Builder()
+            .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)
+            .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
+            .setNetworkSpecifier(
+                    Integer.toString(PhoneUtils.getSubIdForPhoneAccountHandle(phoneAccount)))
+            .build();
             mRetryCount = NETWORK_RETRY_COUNT;
         }
 
+        public NetworkRequest getNetworkRequest() {
+            return mNetworkRequest;
+        }
+
         @Override
         public void onAvailable(final Network network) {
             boolean uploadSuccess;
@@ -271,12 +269,9 @@
         }
     }
 
-    private void requestNetwork(NetworkCallback networkCallback) {
-        NetworkRequest networkRequest = mNetworkRequestMap.get(networkCallback);
-        if (networkRequest != null) {
-            getConnectivityManager().requestNetwork(
-                    networkRequest, networkCallback, NETWORK_REQUEST_TIMEOUT_MILLIS);
-        }
+    private void requestNetwork(OmtpVvmNetworkRequestCallback networkCallback) {
+        getConnectivityManager().requestNetwork(networkCallback.getNetworkRequest(),
+                networkCallback, NETWORK_REQUEST_TIMEOUT_MILLIS);
     }
 
     private void releaseNetwork(NetworkCallback networkCallback) {