Merge "Adds @hide ImsResolver API and device overlays (2/3)"

am: d063843549

Change-Id: I82a38c0cb2b7b229b96f0a617f8b7c921eb6d3a9
This commit is contained in:
Brad Ebinger
2017-01-27 23:03:47 +00:00
committed by android-build-merger
4 changed files with 56 additions and 0 deletions

View File

@@ -2267,6 +2267,13 @@
<!-- Whether to use voip audio mode for ims call -->
<bool name="config_use_voip_mode_for_ims">false</bool>
<!-- ImsService package name to bind to by default. If none is specified in an overlay, an
empty string is passed in -->
<string name="config_ims_package"/>
<!-- Flag specifying whether or not IMS will use the dynamic ImsResolver -->
<bool name="config_dynamic_bind_ims">true</bool>
<bool name="config_networkSamplingWakesDevice">true</bool>
<string-array translatable="false" name="config_cdma_home_system" />

View File

@@ -252,6 +252,8 @@
<java-symbol type="bool" name="config_enableBurnInProtection" />
<java-symbol type="bool" name="config_hotswapCapable" />
<java-symbol type="bool" name="config_mms_content_disposition_support" />
<java-symbol type="string" name="config_ims_package" />
<java-symbol type="bool" name="config_dynamic_bind_ims" />
<java-symbol type="bool" name="config_networkSamplingWakesDevice" />
<java-symbol type="bool" name="config_showMenuShortcutsWhenKeyboardPresent" />
<java-symbol type="bool" name="config_sip_wifi_only" />

View File

@@ -16,6 +16,7 @@
package android.telephony;
import android.annotation.IntDef;
import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.annotation.SdkConstant;
@@ -39,8 +40,11 @@ import android.service.carrier.CarrierIdentifier;
import android.telecom.PhoneAccount;
import android.telecom.PhoneAccountHandle;
import android.telephony.TelephonyHistogram;
import android.telephony.ims.feature.ImsFeature;
import android.util.Log;
import com.android.ims.internal.IImsServiceController;
import com.android.ims.internal.IImsServiceFeatureListener;
import com.android.internal.telecom.ITelecomService;
import com.android.internal.telephony.CellNetworkScanResult;
import com.android.internal.telephony.IPhoneSubInfo;
@@ -53,6 +57,8 @@ import com.android.internal.telephony.TelephonyProperties;
import java.io.FileInputStream;
import java.io.IOException;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -4041,6 +4047,37 @@ public class TelephonyManager {
}
}
/** @hide */
@IntDef({ImsFeature.EMERGENCY_MMTEL, ImsFeature.MMTEL, ImsFeature.RCS})
@Retention(RetentionPolicy.SOURCE)
public @interface Feature {}
/**
* Returns the {@link IImsServiceController} that corresponds to the given slot Id and IMS
* feature or {@link null} if the service is not available. If an ImsServiceController is
* available, the {@link IImsServiceFeatureListener} callback is registered as a listener for
* feature updates.
* @param slotId The SIM slot that we are requesting the {@link IImsServiceController} for.
* @param feature The IMS Feature we are requesting, corresponding to {@link ImsFeature}.
* @param callback Listener that will send updates to ImsManager when there are updates to
* ImsServiceController.
* @return {@link IImsServiceController} interface for the feature specified or {@link null} if
* it is unavailable.
* @hide
*/
public IImsServiceController getImsServiceControllerAndListen(int slotId, @Feature int feature,
IImsServiceFeatureListener callback) {
try {
ITelephony telephony = getITelephony();
if (telephony != null) {
return telephony.getImsServiceControllerAndListen(slotId, feature, callback);
}
} catch (RemoteException e) {
Rlog.e(TAG, "getImsServiceControllerAndListen, RemoteException: " + e.getMessage());
}
return null;
}
/**
* Set IMS registration state
*

View File

@@ -31,6 +31,8 @@ import android.telephony.RadioAccessFamily;
import android.telephony.ServiceState;
import android.telephony.TelephonyHistogram;
import android.telephony.VisualVoicemailSmsFilterSettings;
import com.android.ims.internal.IImsServiceController;
import com.android.ims.internal.IImsServiceFeatureListener;
import com.android.internal.telephony.CellNetworkScanResult;
import com.android.internal.telephony.OperatorInfo;
@@ -714,6 +716,14 @@ interface ITelephony {
*/
int getTetherApnRequired();
/**
* Get ImsServiceController binder from ImsResolver that corresponds to the subId and feature
* requested as well as registering the ImsServiceController for callbacks using the
* IImsServiceFeatureListener interface.
*/
IImsServiceController getImsServiceControllerAndListen(int slotId, int feature,
IImsServiceFeatureListener callback);
/**
* Set the network selection mode to automatic.
*