Snap for 4759746 from 07807ff29ee08f0ad40312f656d5c3ac7ca22dec to pi-release

Change-Id: I86ce6237ea058830809da9593a0f3bf2b25cc5fb
diff --git a/rcs/rcsservice/src/com/android/service/ims/RcsService.java b/rcs/rcsservice/src/com/android/service/ims/RcsService.java
index 631ffbd..01f9fbd 100644
--- a/rcs/rcsservice/src/com/android/service/ims/RcsService.java
+++ b/rcs/rcsservice/src/com/android/service/ims/RcsService.java
@@ -28,12 +28,9 @@
 
 package com.android.service.ims;
 
-import android.net.Uri;
-
 import java.util.List;
 
 import android.content.Intent;
-import android.app.PendingIntent;
 import android.content.IntentFilter;
 import android.os.IBinder;
 import android.os.RemoteException;
@@ -45,11 +42,8 @@
 import android.content.BroadcastReceiver;
 import android.provider.Settings;
 import android.net.ConnectivityManager;
-import com.android.ims.ImsConfig.FeatureValueConstants;
 import com.android.ims.ImsManager;
-import com.android.ims.ImsConfig;
 import com.android.ims.ImsConnectionStateListener;
-import com.android.ims.ImsServiceClass;
 import com.android.ims.ImsException;
 import android.telephony.SubscriptionManager;
 import android.telephony.ims.ImsReasonInfo;
@@ -58,12 +52,10 @@
 import com.android.ims.internal.IRcsService;
 import com.android.ims.IRcsPresenceListener;
 import com.android.ims.internal.IRcsPresence;
-import com.android.ims.RcsPresence.PublishState;
 
 import com.android.ims.internal.Logger;
 import com.android.internal.telephony.IccCardConstants;
 import com.android.internal.telephony.TelephonyIntents;
-import com.android.service.ims.RcsStackAdaptor;
 
 import com.android.service.ims.presence.PresencePublication;
 import com.android.service.ims.presence.PresenceSubscriber;
@@ -112,10 +104,9 @@
                 Settings.Global.getUriFor(Settings.Global.MOBILE_DATA),
                 false, mObserver);
 
-        mVtSettingObserver = new VtSettingContentObserver();
+        mSiminfoSettingObserver = new SimInfoContentObserver();
         getContentResolver().registerContentObserver(
-                Settings.Global.getUriFor(Settings.Global.VT_IMS_ENABLED),
-                false, mVtSettingObserver);
+                SubscriptionManager.CONTENT_URI, false, mSiminfoSettingObserver);
 
         mReceiver = new BroadcastReceiver() {
             @Override
@@ -179,7 +170,7 @@
     @Override
     public void onDestroy() {
         getContentResolver().unregisterContentObserver(mObserver);
-        getContentResolver().unregisterContentObserver(mVtSettingObserver);
+        getContentResolver().unregisterContentObserver(mSiminfoSettingObserver);
         if (mReceiver != null) {
             unregisterReceiver(mReceiver);
             mReceiver = null;
@@ -318,21 +309,25 @@
     }
 
 
-    private VtSettingContentObserver mVtSettingObserver;
+    private SimInfoContentObserver mSiminfoSettingObserver;
 
     /**
-     * Receives notifications when Mobile data is enabled or disabled.
+     * Receives notifications when the TelephonyProvider is changed.
      */
-    private class VtSettingContentObserver extends ContentObserver {
-        public VtSettingContentObserver() {
+    private class SimInfoContentObserver extends ContentObserver {
+        public SimInfoContentObserver() {
             super(new Handler());
         }
 
         @Override
         public void onChange(final boolean selfChange) {
-            boolean enabled = Settings.Global.getInt(getContentResolver(),
-                    Settings.Global.VT_IMS_ENABLED, 1) == 1;
-            logger.debug("vt enabled status: " + (enabled ? "ON" : "OFF"));
+            ImsManager imsManager = ImsManager.getInstance(RcsService.this,
+                    SubscriptionManager.getDefaultVoicePhoneId());
+            if (imsManager == null) {
+                return;
+            }
+            boolean enabled = imsManager.isVtEnabledByUser();
+             logger.debug("vt enabled status: " + (enabled ? "ON" : "OFF"));
 
             onVtEnabled(enabled);
         }