From 07807ff29ee08f0ad40312f656d5c3ac7ca22dec Mon Sep 17 00:00:00 2001 From: Brad Ebinger Date: Thu, 26 Apr 2018 16:06:19 -0700 Subject: Move VT ContentObserver to TelephonyProvider. The user VT setting was moved from settings into the TelephonyProvider in P. RCS presence service is still relying on ContentObserver changes in settings. Move over to listening for changes in the siminfo database and query VT user setting for that instead. Bug: 78076949 Test: manual, enable/disable user VT setting and watch Presence changes. Change-Id: I5d793b043ef10640c9d355371b703a697798804f --- .../src/com/android/service/ims/RcsService.java | 33 +++++++++------------- 1 file changed, 14 insertions(+), 19 deletions(-) (limited to 'rcs/rcsservice/src/com/android/service/ims/RcsService.java') 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.database.ContentObserver; 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.RcsManager.ResultCode; 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 @@ public class RcsService extends Service{ 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 @@ public class RcsService extends Service{ @Override public void onDestroy() { getContentResolver().unregisterContentObserver(mObserver); - getContentResolver().unregisterContentObserver(mVtSettingObserver); + getContentResolver().unregisterContentObserver(mSiminfoSettingObserver); if (mReceiver != null) { unregisterReceiver(mReceiver); mReceiver = null; @@ -318,21 +309,25 @@ public class RcsService extends Service{ } - 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); } -- cgit v1.2.3