1076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com/* 2076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * Copyright (c) 2014 The Android Open Source Project 3076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * 4076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * Licensed under the Apache License, Version 2.0 (the "License"); 5076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * you may not use this file except in compliance with the License. 6076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * You may obtain a copy of the License at 7076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * 8076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * http://www.apache.org/licenses/LICENSE-2.0 9076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * 10076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * Unless required by applicable law or agreed to in writing, software 11076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * distributed under the License is distributed on an "AS IS" BASIS, 12076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * See the License for the specific language governing permissions and 14076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * limitations under the License. 15076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com */ 16076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com 17076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.compackage com.android.ims; 18076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com 19076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.comimport android.os.RemoteException; 20076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.comimport android.telephony.Rlog; 21076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com 22076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.comimport com.android.ims.ImsConfigListener; 23076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.comimport com.android.ims.ImsReasonInfo; 24076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.comimport com.android.ims.internal.IImsConfig; 25076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com/** 26076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * Provides APIs to get/set the IMS service feature/capability/parameters. 27076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * The config items include: 28076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * 1) Items provisioned by the operator. 29076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * 2) Items configured by user. Mainly service feature class. 30076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * 31076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * @hide 32076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com */ 33076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.compublic class ImsConfig { 34076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com private static final String TAG = "ImsConfig"; 35076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com private boolean DBG = true; 36076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com private final IImsConfig miConfig; 37076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com 38076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com /** 39076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * Defines IMS service/capability feature constants. 40076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com */ 41076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com public static class FeatureConstants { 42076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com public static final int FEATURE_TYPE_UNKNOWN = -1; 43076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com 44076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com /** 457da5a11accec318cc3da2087fb3a891db4f661f7ram * FEATURE_TYPE_VOLTE supports features defined in 3GPP and 467da5a11accec318cc3da2087fb3a891db4f661f7ram * GSMA IR.92 over LTE. 47076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com */ 487da5a11accec318cc3da2087fb3a891db4f661f7ram public static final int FEATURE_TYPE_VOICE_OVER_LTE = 0; 49076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com 50076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com /** 517da5a11accec318cc3da2087fb3a891db4f661f7ram * FEATURE_TYPE_LVC supports features defined in 3GPP and 527da5a11accec318cc3da2087fb3a891db4f661f7ram * GSMA IR.94 over LTE. 53076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com */ 547da5a11accec318cc3da2087fb3a891db4f661f7ram public static final int FEATURE_TYPE_VIDEO_OVER_LTE = 1; 55076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com 56076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com /** 577da5a11accec318cc3da2087fb3a891db4f661f7ram * FEATURE_TYPE_VOICE_OVER_WIFI supports features defined in 3GPP and 587da5a11accec318cc3da2087fb3a891db4f661f7ram * GSMA IR.92 over WiFi. 59076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com */ 607da5a11accec318cc3da2087fb3a891db4f661f7ram public static final int FEATURE_TYPE_VOICE_OVER_WIFI = 2; 617da5a11accec318cc3da2087fb3a891db4f661f7ram 627da5a11accec318cc3da2087fb3a891db4f661f7ram /** 637da5a11accec318cc3da2087fb3a891db4f661f7ram * FEATURE_TYPE_VIDEO_OVER_WIFI supports features defined in 3GPP and 647da5a11accec318cc3da2087fb3a891db4f661f7ram * GSMA IR.94 over WiFi. 657da5a11accec318cc3da2087fb3a891db4f661f7ram */ 667da5a11accec318cc3da2087fb3a891db4f661f7ram public static final int FEATURE_TYPE_VIDEO_OVER_WIFI = 3; 67076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com } 68076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com 69076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com /** 70076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * Defines IMS service/capability parameters. 71076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com */ 72076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com public static class ConfigConstants { 73076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com 74076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com // Define IMS config items 75076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com public static final int CONFIG_START = 0; 76076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com 77076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com // Define operator provisioned config items 78076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com public static final int PROVISIONED_CONFIG_START = CONFIG_START; 79076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com 80076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com /** 81076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * AMR CODEC Mode Value set, 0-7 in comma separated sequence. 82076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * Value is in String format. 83076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com */ 84076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com public static final int VOCODER_AMRMODESET = CONFIG_START; 85076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com 86076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com /** 87076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * Wide Band AMR CODEC Mode Value set,0-7 in comma separated sequence. 88076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * Value is in String format. 89076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com */ 90076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com public static final int VOCODER_AMRWBMODESET = 1; 91076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com 92076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com /** 93076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * SIP Session Timer value (seconds). 94076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * Value is in Integer format. 95076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com */ 96076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com public static final int SIP_SESSION_TIMER = 2; 97076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com 98076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com /** 99076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * Minimum SIP Session Expiration Timer in (seconds). 100076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * Value is in Integer format. 101076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com */ 102076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com public static final int MIN_SE = 3; 103076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com 104076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com /** 105076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * SIP_INVITE cancellation time out value. Integer format. 106076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * Value is in Integer format. 107076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com */ 108076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com public static final int CANCELLATION_TIMER = 4; 109076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com 110076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com /** 111076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * Delay time when an iRAT transition from eHRPD/HRPD/1xRTT to LTE. 112076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * Value is in Integer format. 113076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com */ 114076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com public static final int TDELAY = 5; 115076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com 116076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com /** 117076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * Silent redial status of Enabled (True), or Disabled (False). 118076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * Value is in Integer format. 119076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com */ 120076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com public static final int SILENT_REDIAL_ENABLE = 6; 121076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com 122076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com /** 123076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * SIP T1 timer value in seconds. See RFC 3261 for define. 124076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * Value is in Integer format. 125076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com */ 126076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com public static final int SIP_T1_TIMER = 7; 127076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com 128076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com /** 129076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * SIP T2 timer value in seconds. See RFC 3261 for define. 130076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * Value is in Integer format. 131076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com */ 132076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com public static final int SIP_T2_TIMER = 8; 133076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com 134076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com /** 135076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * SIP TF timer value in seconds. See RFC 3261 for define. 136076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * Value is in Integer format. 137076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com */ 138076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com public static final int SIP_TF_TIMER = 9; 139076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com 140076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com /** 141076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * VoLTE status for VLT/s status of Enabled (1), or Disabled (0). 142076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * Value is in Integer format. 143076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com */ 144076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com public static final int VLT_SETTING_ENABLED = 10; 145076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com 146076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com /** 147076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * VoLTE status for LVC/s status of Enabled (1), or Disabled (0). 148076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * Value is in Integer format. 149076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com */ 150076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com public static final int LVC_SETTING_ENABLED = 11; 151076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com 152076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com // Expand the operator config items as needed here, need to change 153076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com // PROVISIONED_CONFIG_END after that. 154076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com public static final int PROVISIONED_CONFIG_END = LVC_SETTING_ENABLED; 155076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com 156076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com // Expand the operator config items as needed here. 157076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com } 158076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com 159076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com /** 160076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * Defines IMS set operation status. 161076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com */ 162076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com public static class OperationStatusConstants { 163076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com public static final int UNKNOWN = -1; 164076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com public static final int SUCCESS = 0; 165076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com public static final int FAILED = 1; 166076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com public static final int UNSUPPORTED_CAUSE_NONE = 2; 167076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com public static final int UNSUPPORTED_CAUSE_RAT = 3; 168076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com public static final int UNSUPPORTED_CAUSE_DISABLED = 4; 169076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com } 170076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com 171076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com /** 172076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * Defines IMS feature value. 173076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com */ 174076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com public static class FeatureValueConstants { 175076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com public static final int OFF = 0; 176076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com public static final int ON = 1; 177076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com } 178076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com 179076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com public ImsConfig(IImsConfig iconfig) { 180076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com if (DBG) Rlog.d(TAG, "ImsConfig creates"); 181076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com miConfig = iconfig; 182076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com } 183076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com 184076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com /** 185076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * Gets the value for IMS service/capabilities parameters used by IMS stack. 186076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * This function should not be called from the mainthread as it could block the 187076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * mainthread to cause ANR. 188076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * 189076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * @param item, as defined in com.android.ims.ImsConfig#ConfigConstants. 190076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * @return the value in Integer format. 191076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * 192076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * @throws ImsException if calling the IMS service results in an error. 193076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com */ 194076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com public int getMasterValue(int item) throws ImsException { 195076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com int ret = 0; 196076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com try { 197076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com ret = miConfig.getMasterValue(item); 198076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com } catch (RemoteException e) { 199076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com throw new ImsException("getValue()", e, 200076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com ImsReasonInfo.CODE_LOCAL_SERVICE_UNAVAILABLE); 201076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com } 2025216bd9de165e7fd1ec9b1caea983ab6ca50784eLibin.Tang@motorola.com if (DBG) Rlog.d(TAG, "getMasterValue(): item = " + item + ", ret =" + ret); 203076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com 204076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com return ret; 205076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com } 206076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com 207076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com /** 208076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * Gets the value for IMS service/capabilities parameters used by IMS stack. 209076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * This function should not be called from the mainthread as it could block the 210076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * mainthread to cause ANR. 211076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * 212076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * @param item, as defined in com.android.ims.ImsConfig#ConfigConstants. 213076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * @return value in String format. 214076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * 215076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * @throws ImsException if calling the IMS service results in an error. 216076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com */ 217076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com public String getMasterStringValue(int item) throws ImsException { 218076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com String ret = "Unknown"; 219076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com try { 220076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com ret = miConfig.getMasterStringValue(item); 221076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com } catch (RemoteException e) { 222076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com throw new ImsException("getStringValue()", e, 223076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com ImsReasonInfo.CODE_LOCAL_SERVICE_UNAVAILABLE); 224076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com } 2255216bd9de165e7fd1ec9b1caea983ab6ca50784eLibin.Tang@motorola.com if (DBG) Rlog.d(TAG, "getMasterStringValue(): item = " + item + ", ret =" + ret); 226076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com 227076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com return ret; 228076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com } 229076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com 230076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com /** 231076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * Sets the value for IMS service/capabilities parameters by 232076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * the operator device management entity. 233076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * This function should not be called from main thread as it could block 234076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * mainthread to cause ANR. 235076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * 236076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * @param item, as defined in com.android.ims.ImsConfig#ConfigConstants. 237076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * @param value in Integer format. 238076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * @return void 239076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * 240076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * @throws ImsException if calling the IMS service results in an error. 241076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com */ 242076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com public void setProvisionedValue(int item, int value) 243076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com throws ImsException { 244076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com // TODO: ADD PERMISSION CHECK 245076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com if (DBG) { 246076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com Rlog.d(TAG, "setProvisionedValue(): item = " + item + 247076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com "value = " + value); 248076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com } 249076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com try { 250076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com miConfig.setProvisionedValue(item, value); 251076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com } catch (RemoteException e) { 252076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com throw new ImsException("setProvisionedValue()", e, 253076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com ImsReasonInfo.CODE_LOCAL_SERVICE_UNAVAILABLE); 254076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com } 255076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com } 256076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com 257076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com /** 258076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * Sets the value for IMS service/capabilities parameters by 259076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * the operator device management entity. 260076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * 261076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * @param item, as defined in com.android.ims.ImsConfig#ConfigConstants. 262076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * @param value in String format. 263076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * @return void. 264076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * 265076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * @throws ImsException if calling the IMS service results in an error. 266076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com */ 267076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com public void setProvisionedStringValue(int item, String value) 268076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com throws ImsException { 269076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com // TODO: ADD PERMISSION CHECK 270076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com if (DBG) { 271076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com Rlog.d(TAG, "setProvisionedStringValue(): item = " + item + 272076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com ", value =" + value); 273076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com } 274076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com try { 275076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com miConfig.setProvisionedStringValue(item, value); 276076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com } catch (RemoteException e) { 277076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com throw new ImsException("setProvisionedStringValue()", e, 278076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com ImsReasonInfo.CODE_LOCAL_SERVICE_UNAVAILABLE); 279076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com } 280076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com } 281076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com 282076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com /** 283076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * Gets the value for IMS feature item for specified network type. 284076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * 285076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * @param feature, defined as in FeatureConstants. 286076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * @param network, defined as in android.telephony.TelephonyManager#NETWORK_TYPE_XXX. 287076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * @param listener, provided to be notified for the feature on/off status. 288076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * @return void 289076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * 290076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * @throws ImsException if calling the IMS service results in an error. 291076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com */ 292076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com public void getFeatureValue(int feature, int network, 293076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com ImsConfigListener listener) throws ImsException { 294076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com if (DBG) { 2955216bd9de165e7fd1ec9b1caea983ab6ca50784eLibin.Tang@motorola.com Rlog.d(TAG, "getFeatureValue: feature = " + feature + ", network =" + network + 296076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com ", listener =" + listener); 297076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com } 298076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com try { 299076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com miConfig.getFeatureValue(feature, network, listener); 300076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com } catch (RemoteException e) { 3015216bd9de165e7fd1ec9b1caea983ab6ca50784eLibin.Tang@motorola.com throw new ImsException("getFeatureValue()", e, 302076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com ImsReasonInfo.CODE_LOCAL_SERVICE_UNAVAILABLE); 303076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com } 304076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com } 305076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com 306076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com /** 307076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * Sets the value for IMS feature item for specified network type. 308076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * 309076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * @param feature, as defined in FeatureConstants. 310076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * @param network, as defined in android.telephony.TelephonyManager#NETWORK_TYPE_XXX. 311076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * @param value, as defined in FeatureValueConstants. 312076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * @param listener, provided if caller needs to be notified for set result. 313076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * @return void 314076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * 315076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * @throws ImsException if calling the IMS service results in an error. 316076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com */ 317076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com public void setFeatureValue(int feature, int network, int value, 318076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com ImsConfigListener listener) throws ImsException { 319076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com // TODO: ADD PERMISSION CHECK (should there be permission, same as provisioning?) 320076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com if (DBG) { 3215216bd9de165e7fd1ec9b1caea983ab6ca50784eLibin.Tang@motorola.com Rlog.d(TAG, "setFeatureValue: feature = " + feature + ", network =" + network + 322076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com ", value =" + value + ", listener =" + listener); 323076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com } 324076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com try { 325076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com miConfig.setFeatureValue(feature, network, value, listener); 326076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com } catch (RemoteException e) { 327076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com throw new ImsException("setFeatureValue()", e, 328076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com ImsReasonInfo.CODE_LOCAL_SERVICE_UNAVAILABLE); 329076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com } 330076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com } 3317da5a11accec318cc3da2087fb3a891db4f661f7ram} 332