Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d0638435 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

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

parents 42659917 e6ec7d8b
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -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" />
+2 −0
Original line number Diff line number Diff line
@@ -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" />
+37 −0
Original line number Diff line number Diff line
@@ -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
     *
+10 −0
Original line number Diff line number Diff line
@@ -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.
     *