summaryrefslogtreecommitdiff
path: root/rcs/rcsservice/src
diff options
context:
space:
mode:
authorBrad Ebinger <breadley@google.com>2020-02-27 19:11:11 -0800
committerBrad Ebinger <breadley@google.com>2020-03-03 17:58:19 -0800
commit148b26fb19acb58faacf026bdf53b04e8dbdb27c (patch)
tree95ffbed83f9ea9eac896169cafd5e5fe5bc81c7c /rcs/rcsservice/src
parent01fae0642e1c54b47b5a12e676760ca58021950b (diff)
downloadims-148b26fb19acb58faacf026bdf53b04e8dbdb27c.tar.gz
Turn off polling until user opt-in occurs
Deny contact capability requests until opt-in occurs. Bug: 111305845 Test: atest CtsTelephonyTestCases;manual Change-Id: I3acf2c5b16239e97cd445d5f9cd04002c0d94707
Diffstat (limited to 'rcs/rcsservice/src')
-rw-r--r--rcs/rcsservice/src/com/android/service/ims/RcsSettingUtils.java17
-rw-r--r--rcs/rcsservice/src/com/android/service/ims/presence/PresenceSubscriber.java12
2 files changed, 29 insertions, 0 deletions
diff --git a/rcs/rcsservice/src/com/android/service/ims/RcsSettingUtils.java b/rcs/rcsservice/src/com/android/service/ims/RcsSettingUtils.java
index 9ef176e..13e0f42 100644
--- a/rcs/rcsservice/src/com/android/service/ims/RcsSettingUtils.java
+++ b/rcs/rcsservice/src/com/android/service/ims/RcsSettingUtils.java
@@ -35,7 +35,9 @@ import android.telephony.CarrierConfigManager;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.telephony.ims.ImsException;
+import android.telephony.ims.ImsManager;
import android.telephony.ims.ImsMmTelManager;
+import android.telephony.ims.ImsRcsManager;
import android.telephony.ims.ProvisioningManager;
import android.telephony.ims.feature.MmTelFeature;
import android.telephony.ims.stub.ImsRegistrationImplBase;
@@ -132,6 +134,21 @@ public class RcsSettingUtils {
return isProvisioned;
}
+ public static boolean hasUserEnabledContactDiscovery(Context context, int subId) {
+ if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+ logger.debug("hasUserEnabledContactDiscovery: no valid subscriptions!");
+ return false;
+ }
+ try {
+ ImsManager imsManager = context.getSystemService(ImsManager.class);
+ ImsRcsManager rcsManager = imsManager.getImsRcsManager(subId);
+ return rcsManager.getUceAdapter().isUceSettingEnabled();
+ } catch (Exception e) {
+ logger.warn("hasUserEnabledContactDiscovery: Exception = " + e.getMessage());
+ return false;
+ }
+ }
+
public static int getSIPT1Timer(int subId) {
int sipT1Timer = 0;
try {
diff --git a/rcs/rcsservice/src/com/android/service/ims/presence/PresenceSubscriber.java b/rcs/rcsservice/src/com/android/service/ims/presence/PresenceSubscriber.java
index 2071567..c804675 100644
--- a/rcs/rcsservice/src/com/android/service/ims/presence/PresenceSubscriber.java
+++ b/rcs/rcsservice/src/com/android/service/ims/presence/PresenceSubscriber.java
@@ -132,6 +132,12 @@ public class PresenceSubscriber extends PresenceBase {
return ResultCode.SUBSCRIBE_NOT_REGISTERED;
}
+ if (!RcsSettingUtils.hasUserEnabledContactDiscovery(mContext, mAssociatedSubscription)) {
+ logger.warn("requestCapability request has been denied due to contact discovery being "
+ + "disabled by the user");
+ return ResultCode.ERROR_SERVICE_NOT_ENABLED;
+ }
+
int ret = subscriber.getStackStatusForCapabilityRequest();
if (ret < ResultCode.SUCCESS) {
logger.error("requestCapability ret=" + ret);
@@ -197,6 +203,12 @@ public class PresenceSubscriber extends PresenceBase {
return ret;
}
+ if (!RcsSettingUtils.hasUserEnabledContactDiscovery(mContext, mAssociatedSubscription)) {
+ logger.warn("requestCapability request has been denied due to contact discovery being "
+ + "disabled by the user");
+ return ResultCode.ERROR_SERVICE_NOT_ENABLED;
+ }
+
if(!forceToNetwork){
logger.debug("check if we can use the value in cache");
int availabilityExpire =