summaryrefslogtreecommitdiff
path: root/rcs
diff options
context:
space:
mode:
authorBrad Ebinger <breadley@google.com>2018-04-26 16:06:19 -0700
committerBrad Ebinger <breadley@google.com>2018-06-11 12:47:50 -0700
commit4857d22a960b7c9dd9ccecb4addc0150b4353204 (patch)
treee706fadd6fad0de0b746798e34e3c4a5ee80bc66 /rcs
parent4ec55aea90e8724275d4f91a36c2aa3d47c72776 (diff)
downloadims-4857d22a960b7c9dd9ccecb4addc0150b4353204.tar.gz
Move VT ContentObserver to TelephonyProvider.android-p-preview-5android-p-preview-4
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. Merged-In: Ib1acb9ec23482a32ebded0e6730547920358b98f Change-Id: I5d793b043ef10640c9d355371b703a697798804f
Diffstat (limited to 'rcs')
-rw-r--r--rcs/rcsservice/src/com/android/service/ims/RcsService.java33
1 files changed, 14 insertions, 19 deletions
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);
}