diff options
23 files changed, 1037 insertions, 517 deletions
diff --git a/api/system-current.txt b/api/system-current.txt index 5c38ed4ec972..7ea45dcbd7a6 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -4700,8 +4700,11 @@ package android.net.wifi {      method @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD}) public void startEasyConnectAsConfiguratorInitiator(@NonNull String, int, int, @NonNull java.util.concurrent.Executor, @NonNull android.net.wifi.EasyConnectStatusCallback);      method @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD}) public void startEasyConnectAsEnrolleeInitiator(@NonNull String, @NonNull java.util.concurrent.Executor, @NonNull android.net.wifi.EasyConnectStatusCallback);      method @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public boolean startScan(android.os.WorkSource); +    method @RequiresPermission(anyOf={"android.permission.NETWORK_STACK", android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK}) public boolean startSoftAp(@Nullable android.net.wifi.WifiConfiguration);      method @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD}) public void startSubscriptionProvisioning(@NonNull android.net.wifi.hotspot2.OsuProvider, @NonNull java.util.concurrent.Executor, @NonNull android.net.wifi.hotspot2.ProvisioningCallback);      method @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD}) public void stopEasyConnectSession(); +    method @RequiresPermission(anyOf={"android.permission.NETWORK_STACK", android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK}) public boolean stopSoftAp(); +    method @RequiresPermission(anyOf={"android.permission.NETWORK_STACK", android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK}) public void updateInterfaceIpState(@Nullable String, int);      method @RequiresPermission("android.permission.WIFI_UPDATE_USABILITY_STATS_SCORE") public void updateWifiUsabilityScore(int, int, int);      field public static final int CHANGE_REASON_ADDED = 0; // 0x0      field public static final int CHANGE_REASON_CONFIG_CHANGE = 2; // 0x2 @@ -4716,10 +4719,16 @@ package android.net.wifi {      field public static final String EXTRA_CHANGE_REASON = "changeReason";      field public static final String EXTRA_MULTIPLE_NETWORKS_CHANGED = "multipleChanges";      field public static final String EXTRA_PREVIOUS_WIFI_AP_STATE = "previous_wifi_state"; +    field public static final String EXTRA_WIFI_AP_INTERFACE_NAME = "android.net.wifi.extra.WIFI_AP_INTERFACE_NAME"; +    field public static final String EXTRA_WIFI_AP_MODE = "android.net.wifi.extra.WIFI_AP_MODE";      field public static final String EXTRA_WIFI_AP_STATE = "wifi_state";      field public static final String EXTRA_WIFI_CONFIGURATION = "wifiConfiguration";      field public static final String EXTRA_WIFI_CREDENTIAL_EVENT_TYPE = "et";      field public static final String EXTRA_WIFI_CREDENTIAL_SSID = "ssid"; +    field public static final int IFACE_IP_MODE_CONFIGURATION_ERROR = 0; // 0x0 +    field public static final int IFACE_IP_MODE_LOCAL_ONLY = 2; // 0x2 +    field public static final int IFACE_IP_MODE_TETHERED = 1; // 0x1 +    field public static final int IFACE_IP_MODE_UNSPECIFIED = -1; // 0xffffffff      field public static final int PASSPOINT_HOME_NETWORK = 0; // 0x0      field public static final int PASSPOINT_ROAMING_NETWORK = 1; // 0x1      field public static final String WIFI_AP_STATE_CHANGED_ACTION = "android.net.wifi.WIFI_AP_STATE_CHANGED"; @@ -6383,6 +6392,28 @@ package android.service.carrier {      method @NonNull @WorkerThread public abstract java.util.List<android.content.ContentValues> onRestoreApns(int);    } +  public abstract class CarrierMessagingServiceWrapper { +    ctor public CarrierMessagingServiceWrapper(); +    method public boolean bindToCarrierMessagingService(@NonNull android.content.Context, @NonNull String); +    method public void disposeConnection(@NonNull android.content.Context); +    method public void downloadMms(@NonNull android.net.Uri, int, @NonNull android.net.Uri, @NonNull android.service.carrier.CarrierMessagingServiceWrapper.CarrierMessagingCallbackWrapper); +    method public void filterSms(@NonNull android.service.carrier.MessagePdu, @NonNull String, int, int, @NonNull android.service.carrier.CarrierMessagingServiceWrapper.CarrierMessagingCallbackWrapper); +    method public abstract void onServiceReady(); +    method public void sendDataSms(@NonNull byte[], int, @NonNull String, int, int, @NonNull android.service.carrier.CarrierMessagingServiceWrapper.CarrierMessagingCallbackWrapper); +    method public void sendMms(@NonNull android.net.Uri, int, @NonNull android.net.Uri, @NonNull android.service.carrier.CarrierMessagingServiceWrapper.CarrierMessagingCallbackWrapper); +    method public void sendMultipartTextSms(@NonNull java.util.List<java.lang.String>, int, @NonNull String, int, @NonNull android.service.carrier.CarrierMessagingServiceWrapper.CarrierMessagingCallbackWrapper); +    method public void sendTextSms(@NonNull String, int, @NonNull String, int, @NonNull android.service.carrier.CarrierMessagingServiceWrapper.CarrierMessagingCallbackWrapper); +  } + +  public abstract static class CarrierMessagingServiceWrapper.CarrierMessagingCallbackWrapper { +    ctor public CarrierMessagingServiceWrapper.CarrierMessagingCallbackWrapper(); +    method public void onDownloadMmsComplete(int); +    method public void onFilterComplete(int); +    method public void onSendMmsComplete(int, @Nullable byte[]); +    method public void onSendMultipartSmsComplete(int, @Nullable int[]); +    method public void onSendSmsComplete(int, int); +  } +  }  package android.service.contentcapture { diff --git a/config/hiddenapi-greylist-max-p.txt b/config/hiddenapi-greylist-max-p.txt index 25d45b0e6570..34339d7a27bb 100644 --- a/config/hiddenapi-greylist-max-p.txt +++ b/config/hiddenapi-greylist-max-p.txt @@ -47,7 +47,6 @@ Landroid/os/WorkSource;->sTmpWorkSource:Landroid/os/WorkSource;  Landroid/os/WorkSource;->updateLocked(Landroid/os/WorkSource;ZZ)Z  Landroid/service/carrier/ICarrierMessagingCallback$Stub;-><init>()V  Landroid/service/carrier/ICarrierMessagingService;->filterSms(Landroid/service/carrier/MessagePdu;Ljava/lang/String;IILandroid/service/carrier/ICarrierMessagingCallback;)V -Landroid/telephony/CarrierMessagingServiceManager;-><init>()V  Landroid/view/IGraphicsStats$Stub$Proxy;-><init>(Landroid/os/IBinder;)V  Landroid/view/IGraphicsStats$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IGraphicsStats;  Landroid/view/IWindowManager;->setInTouchMode(Z)V diff --git a/core/java/android/os/telephony/TelephonyRegistryManager.java b/core/java/android/os/telephony/TelephonyRegistryManager.java index 459c414cdf73..b67409988da0 100644 --- a/core/java/android/os/telephony/TelephonyRegistryManager.java +++ b/core/java/android/os/telephony/TelephonyRegistryManager.java @@ -21,23 +21,25 @@ import android.net.NetworkCapabilities;  import android.os.Bundle;  import android.os.RemoteException;  import android.os.ServiceManager; +import android.telephony.Annotation; +import android.telephony.Annotation.ApnType; +import android.telephony.Annotation.CallState; +import android.telephony.Annotation.DataActivityType; +import android.telephony.Annotation.DataFailureCause; +import android.telephony.Annotation.DataState; +import android.telephony.Annotation.NetworkType; +import android.telephony.Annotation.RadioPowerState; +import android.telephony.Annotation.SimActivationState; +import android.telephony.Annotation.SrvccState;  import android.telephony.CallQuality;  import android.telephony.CellInfo; -import android.telephony.DataFailCause;  import android.telephony.DisconnectCause;  import android.telephony.PhoneCapability;  import android.telephony.PreciseCallState.State;  import android.telephony.ServiceState;  import android.telephony.SignalStrength;  import android.telephony.TelephonyManager; -import android.telephony.TelephonyManager.CallState; -import android.telephony.TelephonyManager.DataActivityType; -import android.telephony.TelephonyManager.DataState; -import android.telephony.TelephonyManager.NetworkType; -import android.telephony.TelephonyManager.RadioPowerState; -import android.telephony.TelephonyManager.SimActivationState;  import android.telephony.data.ApnSetting; -import android.telephony.data.ApnSetting.ApnType;  import android.telephony.ims.ImsReasonInfo;  import com.android.internal.telephony.ITelephonyRegistry;  import java.util.List; @@ -103,7 +105,7 @@ public class TelephonyRegistryManager {      public void notifyCallStateChanged(int subId, int slotIndex, @CallState int state,          String incomingNumer) {          try { -            sRegistry.notifyCallState(slotIndex, subId, state, incomingNumer); +          sRegistry.notifyCallState(slotIndex, subId, state, incomingNumer);          } catch (RemoteException ex) {              // system server crash          } @@ -410,7 +412,7 @@ public class TelephonyRegistryManager {       * @hide       */      public void notifyPreciseDataConnectionFailed(int subId, int slotIndex, String apnType, -        String apn, @DataFailCause.FailCause int failCause) { +        String apn, @DataFailureCause int failCause) {          try {              sRegistry.notifyPreciseDataConnectionFailed(slotIndex, subId, apnType, apn, failCause);          } catch (RemoteException ex) { @@ -427,7 +429,7 @@ public class TelephonyRegistryManager {       *       * @hide       */ -    public void notifySrvccStateChanged(int subId, @TelephonyManager.SrvccState int state) { +    public void notifySrvccStateChanged(int subId, @SrvccState int state) {          try {              sRegistry.notifySrvccStateChanged(subId, state);          } catch (RemoteException ex) { diff --git a/core/java/android/service/carrier/CarrierMessagingServiceWrapper.java b/core/java/android/service/carrier/CarrierMessagingServiceWrapper.java new file mode 100644 index 000000000000..de90b94d7535 --- /dev/null +++ b/core/java/android/service/carrier/CarrierMessagingServiceWrapper.java @@ -0,0 +1,389 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + *      http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.service.carrier; + +import android.annotation.NonNull; +import android.annotation.Nullable; +import android.annotation.SystemApi; +import android.content.ComponentName; +import android.content.Context; +import android.content.Intent; +import android.content.ServiceConnection; +import android.net.Uri; +import android.os.IBinder; +import android.os.RemoteException; + +import com.android.internal.util.Preconditions; + +import java.util.List; + +/** + * Provides basic structure for platform to connect to the carrier messaging service. + * <p> + * <code> + * CarrierMessagingServiceWrapper carrierMessagingServiceWrapper = + *     new CarrierMessagingServiceWrapperImpl(); + * if (carrierMessagingServiceWrapper.bindToCarrierMessagingService(context, carrierPackageName)) { + *   // wait for onServiceReady callback + * } else { + *   // Unable to bind: handle error. + * } + * </code> + * <p> Upon completion {@link #disposeConnection} should be called to unbind the + * CarrierMessagingService. + * @hide + */ +@SystemApi +public abstract class CarrierMessagingServiceWrapper { +    // Populated by bindToCarrierMessagingService. bindToCarrierMessagingService must complete +    // prior to calling disposeConnection so that mCarrierMessagingServiceConnection is initialized. +    private volatile CarrierMessagingServiceConnection mCarrierMessagingServiceConnection; + +    private volatile ICarrierMessagingService mICarrierMessagingService; + +    /** +     * Binds to the carrier messaging service under package {@code carrierPackageName}. This method +     * should be called exactly once. +     * +     * @param context the context +     * @param carrierPackageName the carrier package name +     * @return true upon successfully binding to a carrier messaging service, false otherwise +     * @hide +     */ +    @SystemApi +    public boolean bindToCarrierMessagingService(@NonNull Context context, +            @NonNull String carrierPackageName) { +        Preconditions.checkState(mCarrierMessagingServiceConnection == null); + +        Intent intent = new Intent(CarrierMessagingService.SERVICE_INTERFACE); +        intent.setPackage(carrierPackageName); +        mCarrierMessagingServiceConnection = new CarrierMessagingServiceConnection(); +        return context.bindService(intent, mCarrierMessagingServiceConnection, +                Context.BIND_AUTO_CREATE); +    } + +    /** +     * Unbinds the carrier messaging service. This method should be called exactly once. +     * +     * @param context the context +     * @hide +     */ +    @SystemApi +    public void disposeConnection(@NonNull Context context) { +        Preconditions.checkNotNull(mCarrierMessagingServiceConnection); +        context.unbindService(mCarrierMessagingServiceConnection); +        mCarrierMessagingServiceConnection = null; +    } + +    /** +     * Implemented by subclasses to use the carrier messaging service once it is ready. +     * @hide +     */ +    @SystemApi +    public abstract void onServiceReady(); + +    /** +     * Called when connection with service is established. +     * +     * @param carrierMessagingService the carrier messaing service interface +     */ +    private void onServiceReady(ICarrierMessagingService carrierMessagingService) { +        mICarrierMessagingService = carrierMessagingService; +        onServiceReady(); +    } + +    /** +     * Request filtering an incoming SMS message. +     * The service will call callback.onFilterComplete with the filtering result. +     * +     * @param pdu the PDUs of the message +     * @param format the format of the PDUs, typically "3gpp" or "3gpp2" +     * @param destPort the destination port of a data SMS. It will be -1 for text SMS +     * @param subId SMS subscription ID of the SIM +     * @param callback the callback to notify upon completion +     * @hide +     */ +    @SystemApi +    public void filterSms(@NonNull MessagePdu pdu, @NonNull String format, int destPort, +            int subId, @NonNull final CarrierMessagingCallbackWrapper callback) { +        if (mICarrierMessagingService != null) { +            try { +                mICarrierMessagingService.filterSms(pdu, format, destPort, subId, +                        new CarrierMessagingCallbackWrapperInternal(callback)); +            } catch (RemoteException e) { +                throw new RuntimeException(e); +            } +        } +    } + +    /** +     * Request sending a new text SMS from the device. +     * The service will call {@link ICarrierMessagingCallback#onSendSmsComplete} with the send +     * status. +     * +     * @param text the text to send +     * @param subId SMS subscription ID of the SIM +     * @param destAddress phone number of the recipient of the message +     * @param sendSmsFlag flag for sending SMS +     * @param callback the callback to notify upon completion +     * @hide +     */ +    @SystemApi +    public void sendTextSms(@NonNull String text, int subId, @NonNull String destAddress, +            int sendSmsFlag, @NonNull final CarrierMessagingCallbackWrapper callback) { +        if (mICarrierMessagingService != null) { +            try { +                mICarrierMessagingService.sendTextSms(text, subId, destAddress, sendSmsFlag, +                        new CarrierMessagingCallbackWrapperInternal(callback)); +            } catch (RemoteException e) { +                throw new RuntimeException(e); +            } +        } +    } + +    /** +     * Request sending a new data SMS from the device. +     * The service will call {@link ICarrierMessagingCallback#onSendSmsComplete} with the send +     * status. +     * +     * @param data the data to send +     * @param subId SMS subscription ID of the SIM +     * @param destAddress phone number of the recipient of the message +     * @param destPort port number of the recipient of the message +     * @param sendSmsFlag flag for sending SMS +     * @param callback the callback to notify upon completion +     * @hide +     */ +    @SystemApi +    public void sendDataSms(@NonNull byte[] data, int subId, @NonNull String destAddress, +            int destPort, int sendSmsFlag, +            @NonNull final CarrierMessagingCallbackWrapper callback) { +        if (mICarrierMessagingService != null) { +            try { +                mICarrierMessagingService.sendDataSms(data, subId, destAddress, destPort, +                        sendSmsFlag, new CarrierMessagingCallbackWrapperInternal(callback)); +            } catch (RemoteException e) { +                throw new RuntimeException(e); +            } +        } +    } + +    /** +     * Request sending a new multi-part text SMS from the device. +     * The service will call {@link ICarrierMessagingCallback#onSendMultipartSmsComplete} +     * with the send status. +     * +     * @param parts the parts of the multi-part text SMS to send +     * @param subId SMS subscription ID of the SIM +     * @param destAddress phone number of the recipient of the message +     * @param sendSmsFlag flag for sending SMS +     * @param callback the callback to notify upon completion +     * @hide +     */ +    @SystemApi +    public void sendMultipartTextSms(@NonNull List<String> parts, int subId, +            @NonNull String destAddress, int sendSmsFlag, +            @NonNull final CarrierMessagingCallbackWrapper callback) { +        if (mICarrierMessagingService != null) { +            try { +                mICarrierMessagingService.sendMultipartTextSms(parts, subId, destAddress, +                        sendSmsFlag, new CarrierMessagingCallbackWrapperInternal(callback)); +            } catch (RemoteException e) { +                throw new RuntimeException(e); +            } +        } +    } + +    /** +     * Request sending a new MMS PDU from the device. +     * The service will call {@link ICarrierMessagingCallback#onSendMmsComplete} with the send +     * status. +     * +     * @param pduUri the content provider URI of the PDU to send +     * @param subId SMS subscription ID of the SIM +     * @param location the optional URI to send this MMS PDU. If this is {code null}, +     *        the PDU should be sent to the default MMSC URL. +     * @param callback the callback to notify upon completion +     * @hide +     */ +    @SystemApi +    public void sendMms(@NonNull Uri pduUri, int subId, @NonNull Uri location, +            @NonNull final CarrierMessagingCallbackWrapper callback) { +        if (mICarrierMessagingService != null) { +            try { +                mICarrierMessagingService.sendMms(pduUri, subId, location, +                        new CarrierMessagingCallbackWrapperInternal(callback)); +            } catch (RemoteException e) { +                throw new RuntimeException(e); +            } +        } +    } + +    /** +     * Request downloading a new MMS. +     * The service will call {@link ICarrierMessagingCallback#onDownloadMmsComplete} with the +     * download status. +     * +     * @param pduUri the content provider URI of the PDU to be downloaded. +     * @param subId SMS subscription ID of the SIM +     * @param location the URI of the message to be downloaded. +     * @param callback the callback to notify upon completion +     * @hide +     */ +    @SystemApi +    public void downloadMms(@NonNull Uri pduUri, int subId, @NonNull Uri location, +            @NonNull final CarrierMessagingCallbackWrapper callback) { +        if (mICarrierMessagingService != null) { +            try { +                mICarrierMessagingService.downloadMms(pduUri, subId, location, +                        new CarrierMessagingCallbackWrapperInternal(callback)); +            } catch (RemoteException e) { +                throw new RuntimeException(e); +            } +        } +    } + +    /** +     * A basic {@link ServiceConnection}. +     */ +    private final class CarrierMessagingServiceConnection implements ServiceConnection { +        @Override +        public void onServiceConnected(ComponentName name, IBinder service) { +            onServiceReady(ICarrierMessagingService.Stub.asInterface(service)); +        } + +        @Override +        public void onServiceDisconnected(ComponentName name) { +        } +    } + +    /** +     * Callback wrapper used for response to requests exposed by +     * {@link CarrierMessagingServiceWrapper}. +     * @hide +     */ +    @SystemApi +    public abstract static class CarrierMessagingCallbackWrapper { + +        /** +         * Response callback for {@link CarrierMessagingServiceWrapper#filterSms}. +         * @param result a bitmask integer to indicate how the incoming text SMS should be handled +         *               by the platform. Bits set can be +         *               {@link CarrierMessagingService#RECEIVE_OPTIONS_DROP} and +         *               {@link CarrierMessagingService# +         *               RECEIVE_OPTIONS_SKIP_NOTIFY_WHEN_CREDENTIAL_PROTECTED_STORAGE_UNAVAILABLE}. +         *               {@see CarrierMessagingService#onReceiveTextSms}. +         * @hide +         */ +        @SystemApi +        public void onFilterComplete(int result) { + +        } + +        /** +         * Response callback for {@link CarrierMessagingServiceWrapper#sendTextSms} and +         * {@link CarrierMessagingServiceWrapper#sendDataSms}. +         * @param result send status, one of {@link CarrierMessagingService#SEND_STATUS_OK}, +         *               {@link CarrierMessagingService#SEND_STATUS_RETRY_ON_CARRIER_NETWORK}, +         *               and {@link CarrierMessagingService#SEND_STATUS_ERROR}. +         * @param messageRef message reference of the just-sent message. This field is applicable +         *                   only if result is {@link CarrierMessagingService#SEND_STATUS_OK}. +         * @hide +         */ +        @SystemApi +        public void onSendSmsComplete(int result, int messageRef) { + +        } + +        /** +         * Response callback for {@link CarrierMessagingServiceWrapper#sendMultipartTextSms}. +         * @param result send status, one of {@link CarrierMessagingService#SEND_STATUS_OK}, +         *               {@link CarrierMessagingService#SEND_STATUS_RETRY_ON_CARRIER_NETWORK}, +         *               and {@link CarrierMessagingService#SEND_STATUS_ERROR}. +         * @param messageRefs an array of message references, one for each part of the +         *                    multipart SMS. This field is applicable only if result is +         *                    {@link CarrierMessagingService#SEND_STATUS_OK}. +         * @hide +         */ +        @SystemApi +        public void onSendMultipartSmsComplete(int result, @Nullable int[] messageRefs) { + +        } + +        /** +         * Response callback for {@link CarrierMessagingServiceWrapper#sendMms}. +         * @param result send status, one of {@link CarrierMessagingService#SEND_STATUS_OK}, +         *               {@link CarrierMessagingService#SEND_STATUS_RETRY_ON_CARRIER_NETWORK}, +         *               and {@link CarrierMessagingService#SEND_STATUS_ERROR}. +         * @param sendConfPdu a possibly {code null} SendConf PDU, which confirms that the message +         *                    was sent. sendConfPdu is ignored if the {@code result} is not +         *                    {@link CarrierMessagingService#SEND_STATUS_OK}. +         * @hide +         */ +        @SystemApi +        public void onSendMmsComplete(int result, @Nullable byte[] sendConfPdu) { + +        } + +        /** +         * Response callback for {@link CarrierMessagingServiceWrapper#downloadMms}. +         * @param result download status, one of {@link CarrierMessagingService#SEND_STATUS_OK}, +         *               {@link CarrierMessagingService#SEND_STATUS_RETRY_ON_CARRIER_NETWORK}, +         *               and {@link CarrierMessagingService#SEND_STATUS_ERROR}. +         * @hide +         */ +        @SystemApi +        public void onDownloadMmsComplete(int result) { + +        } +    } + +    private final class CarrierMessagingCallbackWrapperInternal +            extends ICarrierMessagingCallback.Stub { +        CarrierMessagingCallbackWrapper mCarrierMessagingCallbackWrapper; + +        CarrierMessagingCallbackWrapperInternal(CarrierMessagingCallbackWrapper callback) { +            mCarrierMessagingCallbackWrapper = callback; +        } + +        @Override +        public void onFilterComplete(int result) throws RemoteException { +            mCarrierMessagingCallbackWrapper.onFilterComplete(result); +        } + +        @Override +        public void onSendSmsComplete(int result, int messageRef) throws RemoteException { +            mCarrierMessagingCallbackWrapper.onSendSmsComplete(result, messageRef); +        } + +        @Override +        public void onSendMultipartSmsComplete(int result, int[] messageRefs) +                throws RemoteException { +            mCarrierMessagingCallbackWrapper.onSendMultipartSmsComplete(result, messageRefs); +        } + +        @Override +        public void onSendMmsComplete(int result, byte[] sendConfPdu) throws RemoteException { +            mCarrierMessagingCallbackWrapper.onSendMmsComplete(result, sendConfPdu); +        } + +        @Override +        public void onDownloadMmsComplete(int result) throws RemoteException { +            mCarrierMessagingCallbackWrapper.onDownloadMmsComplete(result); +        } +    } +} diff --git a/services/core/java/com/android/server/TelephonyRegistry.java b/services/core/java/com/android/server/TelephonyRegistry.java index e25c34d4a260..447ed59a775e 100644 --- a/services/core/java/com/android/server/TelephonyRegistry.java +++ b/services/core/java/com/android/server/TelephonyRegistry.java @@ -33,6 +33,9 @@ import android.os.IBinder;  import android.os.Message;  import android.os.RemoteException;  import android.os.UserHandle; +import android.telephony.Annotation.DataFailureCause; +import android.telephony.Annotation.RadioPowerState; +import android.telephony.Annotation.SrvccState;  import android.telephony.CallAttributes;  import android.telephony.CallQuality;  import android.telephony.CellInfo; @@ -245,7 +248,7 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {      private int mActiveDataSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID; -    @TelephonyManager.RadioPowerState +    @RadioPowerState      private int mRadioPowerState = TelephonyManager.RADIO_POWER_UNAVAILABLE;      private final LocalLog mLocalLog = new LocalLog(100); @@ -1718,7 +1721,7 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {      }      public void notifyPreciseDataConnectionFailed(int phoneId, int subId, String apnType, -            String apn, @DataFailCause.FailCause int failCause) { +            String apn, @DataFailureCause int failCause) {          if (!checkNotifyPermission("notifyPreciseDataConnectionFailed()")) {              return;          } @@ -1748,7 +1751,7 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {      }      @Override -    public void notifySrvccStateChanged(int subId, @TelephonyManager.SrvccState int state) { +    public void notifySrvccStateChanged(int subId, @SrvccState int state) {          if (!checkNotifyPermission("notifySrvccStateChanged()")) {              return;          } @@ -1855,8 +1858,7 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {          }      } -    public void notifyRadioPowerStateChanged(int phoneId, int subId, -                                             @TelephonyManager.RadioPowerState int state) { +    public void notifyRadioPowerStateChanged(int phoneId, int subId, @RadioPowerState int state) {          if (!checkNotifyPermission("notifyRadioPowerStateChanged()")) {              return;          } @@ -2227,7 +2229,7 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {      private void broadcastPreciseDataConnectionStateChanged(int state, int networkType,              String apnType, String apn, LinkProperties linkProperties, -            @DataFailCause.FailCause int failCause) { +            @DataFailureCause int failCause) {          Intent intent = new Intent(TelephonyManager.ACTION_PRECISE_DATA_CONNECTION_STATE_CHANGED);          intent.putExtra(PhoneConstants.STATE_KEY, state);          intent.putExtra(PhoneConstants.DATA_NETWORK_TYPE_KEY, networkType); diff --git a/telecomm/java/android/telecom/TelecomManager.java b/telecomm/java/android/telecom/TelecomManager.java index 12066c4caeb6..2bc20d51113a 100644 --- a/telecomm/java/android/telecom/TelecomManager.java +++ b/telecomm/java/android/telecom/TelecomManager.java @@ -33,6 +33,7 @@ import android.os.Bundle;  import android.os.RemoteException;  import android.os.ServiceManager;  import android.os.UserHandle; +import android.telephony.Annotation.CallState;  import android.telephony.SubscriptionManager;  import android.telephony.TelephonyManager;  import android.text.TextUtils; @@ -1412,7 +1413,7 @@ public class TelecomManager {       * @hide       */      @SystemApi -    public @TelephonyManager.CallState int getCallState() { +    public @CallState int getCallState() {          try {              if (isServiceConnected()) {                  return getTelecomService().getCallState(); diff --git a/telephony/java/android/telephony/Annotation.java b/telephony/java/android/telephony/Annotation.java new file mode 100644 index 000000000000..a884a7039d5b --- /dev/null +++ b/telephony/java/android/telephony/Annotation.java @@ -0,0 +1,472 @@ +package android.telephony; + +import android.annotation.IntDef; +import android.telephony.data.ApnSetting; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +/** + * Telephony Annotations. + * Telephony sdk is a mainline module and others cannot reference hidden @IntDef. Moving some + * telephony annotations to a separate class to allow others statically link to it. + * + * @hide + */ +public class Annotation { +    @IntDef(prefix = {"DATA_"}, value = { +            TelephonyManager.DATA_ACTIVITY_NONE, +            TelephonyManager.DATA_ACTIVITY_IN, +            TelephonyManager.DATA_ACTIVITY_OUT, +            TelephonyManager.DATA_ACTIVITY_INOUT, +            TelephonyManager.DATA_ACTIVITY_DORMANT, +    }) +    @Retention(RetentionPolicy.SOURCE) +    public @interface DataActivityType { +    } + +    @IntDef(prefix = {"DATA_"}, value = { +            TelephonyManager.DATA_UNKNOWN, +            TelephonyManager.DATA_DISCONNECTED, +            TelephonyManager.DATA_CONNECTING, +            TelephonyManager.DATA_CONNECTED, +            TelephonyManager.DATA_SUSPENDED, +    }) +    @Retention(RetentionPolicy.SOURCE) +    public @interface DataState { +    } + +    @Retention(RetentionPolicy.SOURCE) +    @IntDef(prefix = {"RADIO_POWER_"}, +            value = { +                    TelephonyManager.RADIO_POWER_OFF, +                    TelephonyManager.RADIO_POWER_ON, +                    TelephonyManager.RADIO_POWER_UNAVAILABLE, +            }) +    public @interface RadioPowerState { +    } + +    @IntDef({ +            TelephonyManager.SIM_ACTIVATION_STATE_UNKNOWN, +            TelephonyManager.SIM_ACTIVATION_STATE_ACTIVATING, +            TelephonyManager.SIM_ACTIVATION_STATE_ACTIVATED, +            TelephonyManager.SIM_ACTIVATION_STATE_DEACTIVATED, +            TelephonyManager.SIM_ACTIVATION_STATE_RESTRICTED +    }) +    @Retention(RetentionPolicy.SOURCE) +    public @interface SimActivationState { +    } + +    @Retention(RetentionPolicy.SOURCE) +    @IntDef(prefix = {"SRVCC_STATE_"}, +            value = { +                    TelephonyManager.SRVCC_STATE_HANDOVER_NONE, +                    TelephonyManager.SRVCC_STATE_HANDOVER_STARTED, +                    TelephonyManager.SRVCC_STATE_HANDOVER_COMPLETED, +                    TelephonyManager.SRVCC_STATE_HANDOVER_FAILED, +                    TelephonyManager.SRVCC_STATE_HANDOVER_CANCELED}) +    public @interface SrvccState { +    } + +    @IntDef(prefix = {"CALL_STATE_"}, value = { +            TelephonyManager.CALL_STATE_IDLE, +            TelephonyManager.CALL_STATE_RINGING, +            TelephonyManager.CALL_STATE_OFFHOOK +    }) +    @Retention(RetentionPolicy.SOURCE) +    public @interface CallState { +    } + +    @IntDef({ +            TelephonyManager.NETWORK_TYPE_UNKNOWN, +            TelephonyManager.NETWORK_TYPE_GPRS, +            TelephonyManager.NETWORK_TYPE_EDGE, +            TelephonyManager.NETWORK_TYPE_UMTS, +            TelephonyManager.NETWORK_TYPE_CDMA, +            TelephonyManager.NETWORK_TYPE_EVDO_0, +            TelephonyManager.NETWORK_TYPE_EVDO_A, +            TelephonyManager.NETWORK_TYPE_1xRTT, +            TelephonyManager.NETWORK_TYPE_HSDPA, +            TelephonyManager.NETWORK_TYPE_HSUPA, +            TelephonyManager.NETWORK_TYPE_HSPA, +            TelephonyManager.NETWORK_TYPE_IDEN, +            TelephonyManager.NETWORK_TYPE_EVDO_B, +            TelephonyManager.NETWORK_TYPE_LTE, +            TelephonyManager.NETWORK_TYPE_EHRPD, +            TelephonyManager.NETWORK_TYPE_HSPAP, +            TelephonyManager.NETWORK_TYPE_GSM, +            TelephonyManager.NETWORK_TYPE_TD_SCDMA, +            TelephonyManager.NETWORK_TYPE_IWLAN, +            TelephonyManager.NETWORK_TYPE_LTE_CA, +            TelephonyManager.NETWORK_TYPE_NR, +    }) +    @Retention(RetentionPolicy.SOURCE) +    public @interface NetworkType { +    } + +    @IntDef(flag = true, prefix = {"TYPE_"}, value = { +            ApnSetting.TYPE_DEFAULT, +            ApnSetting.TYPE_MMS, +            ApnSetting.TYPE_SUPL, +            ApnSetting.TYPE_DUN, +            ApnSetting.TYPE_HIPRI, +            ApnSetting.TYPE_FOTA, +            ApnSetting.TYPE_IMS, +            ApnSetting.TYPE_CBS, +            ApnSetting.TYPE_IA, +            ApnSetting.TYPE_EMERGENCY, +            ApnSetting.TYPE_MCX +    }) +    @Retention(RetentionPolicy.SOURCE) +    public @interface ApnType { +    } + +    @IntDef(value = { +            DataFailCause.NONE, +            DataFailCause.OPERATOR_BARRED, +            DataFailCause.NAS_SIGNALLING, +            DataFailCause.LLC_SNDCP, +            DataFailCause.INSUFFICIENT_RESOURCES, +            DataFailCause.MISSING_UNKNOWN_APN, +            DataFailCause.UNKNOWN_PDP_ADDRESS_TYPE, +            DataFailCause.USER_AUTHENTICATION, +            DataFailCause.ACTIVATION_REJECT_GGSN, +            DataFailCause.ACTIVATION_REJECT_UNSPECIFIED, +            DataFailCause.SERVICE_OPTION_NOT_SUPPORTED, +            DataFailCause.SERVICE_OPTION_NOT_SUBSCRIBED, +            DataFailCause.SERVICE_OPTION_OUT_OF_ORDER, +            DataFailCause.NSAPI_IN_USE, +            DataFailCause.REGULAR_DEACTIVATION, +            DataFailCause.QOS_NOT_ACCEPTED, +            DataFailCause.NETWORK_FAILURE, +            DataFailCause.UMTS_REACTIVATION_REQ, +            DataFailCause.FEATURE_NOT_SUPP, +            DataFailCause.TFT_SEMANTIC_ERROR, +            DataFailCause.TFT_SYTAX_ERROR, +            DataFailCause.UNKNOWN_PDP_CONTEXT, +            DataFailCause.FILTER_SEMANTIC_ERROR, +            DataFailCause.FILTER_SYTAX_ERROR, +            DataFailCause.PDP_WITHOUT_ACTIVE_TFT, +            DataFailCause.ACTIVATION_REJECTED_BCM_VIOLATION, +            DataFailCause.ONLY_IPV4_ALLOWED, +            DataFailCause.ONLY_IPV6_ALLOWED, +            DataFailCause.ONLY_SINGLE_BEARER_ALLOWED, +            DataFailCause.ESM_INFO_NOT_RECEIVED, +            DataFailCause.PDN_CONN_DOES_NOT_EXIST, +            DataFailCause.MULTI_CONN_TO_SAME_PDN_NOT_ALLOWED, +            DataFailCause.COLLISION_WITH_NETWORK_INITIATED_REQUEST, +            DataFailCause.ONLY_IPV4V6_ALLOWED, +            DataFailCause.ONLY_NON_IP_ALLOWED, +            DataFailCause.UNSUPPORTED_QCI_VALUE, +            DataFailCause.BEARER_HANDLING_NOT_SUPPORTED, +            DataFailCause.ACTIVE_PDP_CONTEXT_MAX_NUMBER_REACHED, +            DataFailCause.UNSUPPORTED_APN_IN_CURRENT_PLMN, +            DataFailCause.INVALID_TRANSACTION_ID, +            DataFailCause.MESSAGE_INCORRECT_SEMANTIC, +            DataFailCause.INVALID_MANDATORY_INFO, +            DataFailCause.MESSAGE_TYPE_UNSUPPORTED, +            DataFailCause.MSG_TYPE_NONCOMPATIBLE_STATE, +            DataFailCause.UNKNOWN_INFO_ELEMENT, +            DataFailCause.CONDITIONAL_IE_ERROR, +            DataFailCause.MSG_AND_PROTOCOL_STATE_UNCOMPATIBLE, +            DataFailCause.PROTOCOL_ERRORS, +            DataFailCause.APN_TYPE_CONFLICT, +            DataFailCause.INVALID_PCSCF_ADDR, +            DataFailCause.INTERNAL_CALL_PREEMPT_BY_HIGH_PRIO_APN, +            DataFailCause.EMM_ACCESS_BARRED, +            DataFailCause.EMERGENCY_IFACE_ONLY, +            DataFailCause.IFACE_MISMATCH, +            DataFailCause.COMPANION_IFACE_IN_USE, +            DataFailCause.IP_ADDRESS_MISMATCH, +            DataFailCause.IFACE_AND_POL_FAMILY_MISMATCH, +            DataFailCause.EMM_ACCESS_BARRED_INFINITE_RETRY, +            DataFailCause.AUTH_FAILURE_ON_EMERGENCY_CALL, +            DataFailCause.INVALID_DNS_ADDR, +            DataFailCause.INVALID_PCSCF_OR_DNS_ADDRESS, +            DataFailCause.CALL_PREEMPT_BY_EMERGENCY_APN, +            DataFailCause.UE_INITIATED_DETACH_OR_DISCONNECT, +            DataFailCause.MIP_FA_REASON_UNSPECIFIED, +            DataFailCause.MIP_FA_ADMIN_PROHIBITED, +            DataFailCause.MIP_FA_INSUFFICIENT_RESOURCES, +            DataFailCause.MIP_FA_MOBILE_NODE_AUTHENTICATION_FAILURE, +            DataFailCause.MIP_FA_HOME_AGENT_AUTHENTICATION_FAILURE, +            DataFailCause.MIP_FA_REQUESTED_LIFETIME_TOO_LONG, +            DataFailCause.MIP_FA_MALFORMED_REQUEST, +            DataFailCause.MIP_FA_MALFORMED_REPLY, +            DataFailCause.MIP_FA_ENCAPSULATION_UNAVAILABLE, +            DataFailCause.MIP_FA_VJ_HEADER_COMPRESSION_UNAVAILABLE, +            DataFailCause.MIP_FA_REVERSE_TUNNEL_UNAVAILABLE, +            DataFailCause.MIP_FA_REVERSE_TUNNEL_IS_MANDATORY, +            DataFailCause.MIP_FA_DELIVERY_STYLE_NOT_SUPPORTED, +            DataFailCause.MIP_FA_MISSING_NAI, +            DataFailCause.MIP_FA_MISSING_HOME_AGENT, +            DataFailCause.MIP_FA_MISSING_HOME_ADDRESS, +            DataFailCause.MIP_FA_UNKNOWN_CHALLENGE, +            DataFailCause.MIP_FA_MISSING_CHALLENGE, +            DataFailCause.MIP_FA_STALE_CHALLENGE, +            DataFailCause.MIP_HA_REASON_UNSPECIFIED, +            DataFailCause.MIP_HA_ADMIN_PROHIBITED, +            DataFailCause.MIP_HA_INSUFFICIENT_RESOURCES, +            DataFailCause.MIP_HA_MOBILE_NODE_AUTHENTICATION_FAILURE, +            DataFailCause.MIP_HA_FOREIGN_AGENT_AUTHENTICATION_FAILURE, +            DataFailCause.MIP_HA_REGISTRATION_ID_MISMATCH, +            DataFailCause.MIP_HA_MALFORMED_REQUEST, +            DataFailCause.MIP_HA_UNKNOWN_HOME_AGENT_ADDRESS, +            DataFailCause.MIP_HA_REVERSE_TUNNEL_UNAVAILABLE, +            DataFailCause.MIP_HA_REVERSE_TUNNEL_IS_MANDATORY, +            DataFailCause.MIP_HA_ENCAPSULATION_UNAVAILABLE, +            DataFailCause.CLOSE_IN_PROGRESS, +            DataFailCause.NETWORK_INITIATED_TERMINATION, +            DataFailCause.MODEM_APP_PREEMPTED, +            DataFailCause.PDN_IPV4_CALL_DISALLOWED, +            DataFailCause.PDN_IPV4_CALL_THROTTLED, +            DataFailCause.PDN_IPV6_CALL_DISALLOWED, +            DataFailCause.PDN_IPV6_CALL_THROTTLED, +            DataFailCause.MODEM_RESTART, +            DataFailCause.PDP_PPP_NOT_SUPPORTED, +            DataFailCause.UNPREFERRED_RAT, +            DataFailCause.PHYSICAL_LINK_CLOSE_IN_PROGRESS, +            DataFailCause.APN_PENDING_HANDOVER, +            DataFailCause.PROFILE_BEARER_INCOMPATIBLE, +            DataFailCause.SIM_CARD_CHANGED, +            DataFailCause.LOW_POWER_MODE_OR_POWERING_DOWN, +            DataFailCause.APN_DISABLED, +            DataFailCause.MAX_PPP_INACTIVITY_TIMER_EXPIRED, +            DataFailCause.IPV6_ADDRESS_TRANSFER_FAILED, +            DataFailCause.TRAT_SWAP_FAILED, +            DataFailCause.EHRPD_TO_HRPD_FALLBACK, +            DataFailCause.MIP_CONFIG_FAILURE, +            DataFailCause.PDN_INACTIVITY_TIMER_EXPIRED, +            DataFailCause.MAX_IPV4_CONNECTIONS, +            DataFailCause.MAX_IPV6_CONNECTIONS, +            DataFailCause.APN_MISMATCH, +            DataFailCause.IP_VERSION_MISMATCH, +            DataFailCause.DUN_CALL_DISALLOWED, +            DataFailCause.INTERNAL_EPC_NONEPC_TRANSITION, +            DataFailCause.INTERFACE_IN_USE, +            DataFailCause.APN_DISALLOWED_ON_ROAMING, +            DataFailCause.APN_PARAMETERS_CHANGED, +            DataFailCause.NULL_APN_DISALLOWED, +            DataFailCause.THERMAL_MITIGATION, +            DataFailCause.DATA_SETTINGS_DISABLED, +            DataFailCause.DATA_ROAMING_SETTINGS_DISABLED, +            DataFailCause.DDS_SWITCHED, +            DataFailCause.FORBIDDEN_APN_NAME, +            DataFailCause.DDS_SWITCH_IN_PROGRESS, +            DataFailCause.CALL_DISALLOWED_IN_ROAMING, +            DataFailCause.NON_IP_NOT_SUPPORTED, +            DataFailCause.PDN_NON_IP_CALL_THROTTLED, +            DataFailCause.PDN_NON_IP_CALL_DISALLOWED, +            DataFailCause.CDMA_LOCK, +            DataFailCause.CDMA_INTERCEPT, +            DataFailCause.CDMA_REORDER, +            DataFailCause.CDMA_RELEASE_DUE_TO_SO_REJECTION, +            DataFailCause.CDMA_INCOMING_CALL, +            DataFailCause.CDMA_ALERT_STOP, +            DataFailCause.CHANNEL_ACQUISITION_FAILURE, +            DataFailCause.MAX_ACCESS_PROBE, +            DataFailCause.CONCURRENT_SERVICE_NOT_SUPPORTED_BY_BASE_STATION, +            DataFailCause.NO_RESPONSE_FROM_BASE_STATION, +            DataFailCause.REJECTED_BY_BASE_STATION, +            DataFailCause.CONCURRENT_SERVICES_INCOMPATIBLE, +            DataFailCause.NO_CDMA_SERVICE, +            DataFailCause.RUIM_NOT_PRESENT, +            DataFailCause.CDMA_RETRY_ORDER, +            DataFailCause.ACCESS_BLOCK, +            DataFailCause.ACCESS_BLOCK_ALL, +            DataFailCause.IS707B_MAX_ACCESS_PROBES, +            DataFailCause.THERMAL_EMERGENCY, +            DataFailCause.CONCURRENT_SERVICES_NOT_ALLOWED, +            DataFailCause.INCOMING_CALL_REJECTED, +            DataFailCause.NO_SERVICE_ON_GATEWAY, +            DataFailCause.NO_GPRS_CONTEXT, +            DataFailCause.ILLEGAL_MS, +            DataFailCause.ILLEGAL_ME, +            DataFailCause.GPRS_SERVICES_AND_NON_GPRS_SERVICES_NOT_ALLOWED, +            DataFailCause.GPRS_SERVICES_NOT_ALLOWED, +            DataFailCause.MS_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK, +            DataFailCause.IMPLICITLY_DETACHED, +            DataFailCause.PLMN_NOT_ALLOWED, +            DataFailCause.LOCATION_AREA_NOT_ALLOWED, +            DataFailCause.GPRS_SERVICES_NOT_ALLOWED_IN_THIS_PLMN, +            DataFailCause.PDP_DUPLICATE, +            DataFailCause.UE_RAT_CHANGE, +            DataFailCause.CONGESTION, +            DataFailCause.NO_PDP_CONTEXT_ACTIVATED, +            DataFailCause.ACCESS_CLASS_DSAC_REJECTION, +            DataFailCause.PDP_ACTIVATE_MAX_RETRY_FAILED, +            DataFailCause.RADIO_ACCESS_BEARER_FAILURE, +            DataFailCause.ESM_UNKNOWN_EPS_BEARER_CONTEXT, +            DataFailCause.DRB_RELEASED_BY_RRC, +            DataFailCause.CONNECTION_RELEASED, +            DataFailCause.EMM_DETACHED, +            DataFailCause.EMM_ATTACH_FAILED, +            DataFailCause.EMM_ATTACH_STARTED, +            DataFailCause.LTE_NAS_SERVICE_REQUEST_FAILED, +            DataFailCause.DUPLICATE_BEARER_ID, +            DataFailCause.ESM_COLLISION_SCENARIOS, +            DataFailCause.ESM_BEARER_DEACTIVATED_TO_SYNC_WITH_NETWORK, +            DataFailCause.ESM_NW_ACTIVATED_DED_BEARER_WITH_ID_OF_DEF_BEARER, +            DataFailCause.ESM_BAD_OTA_MESSAGE, +            DataFailCause.ESM_DOWNLOAD_SERVER_REJECTED_THE_CALL, +            DataFailCause.ESM_CONTEXT_TRANSFERRED_DUE_TO_IRAT, +            DataFailCause.DS_EXPLICIT_DEACTIVATION, +            DataFailCause.ESM_LOCAL_CAUSE_NONE, +            DataFailCause.LTE_THROTTLING_NOT_REQUIRED, +            DataFailCause.ACCESS_CONTROL_LIST_CHECK_FAILURE, +            DataFailCause.SERVICE_NOT_ALLOWED_ON_PLMN, +            DataFailCause.EMM_T3417_EXPIRED, +            DataFailCause.EMM_T3417_EXT_EXPIRED, +            DataFailCause.RRC_UPLINK_DATA_TRANSMISSION_FAILURE, +            DataFailCause.RRC_UPLINK_DELIVERY_FAILED_DUE_TO_HANDOVER, +            DataFailCause.RRC_UPLINK_CONNECTION_RELEASE, +            DataFailCause.RRC_UPLINK_RADIO_LINK_FAILURE, +            DataFailCause.RRC_UPLINK_ERROR_REQUEST_FROM_NAS, +            DataFailCause.RRC_CONNECTION_ACCESS_STRATUM_FAILURE, +            DataFailCause.RRC_CONNECTION_ANOTHER_PROCEDURE_IN_PROGRESS, +            DataFailCause.RRC_CONNECTION_ACCESS_BARRED, +            DataFailCause.RRC_CONNECTION_CELL_RESELECTION, +            DataFailCause.RRC_CONNECTION_CONFIG_FAILURE, +            DataFailCause.RRC_CONNECTION_TIMER_EXPIRED, +            DataFailCause.RRC_CONNECTION_LINK_FAILURE, +            DataFailCause.RRC_CONNECTION_CELL_NOT_CAMPED, +            DataFailCause.RRC_CONNECTION_SYSTEM_INTERVAL_FAILURE, +            DataFailCause.RRC_CONNECTION_REJECT_BY_NETWORK, +            DataFailCause.RRC_CONNECTION_NORMAL_RELEASE, +            DataFailCause.RRC_CONNECTION_RADIO_LINK_FAILURE, +            DataFailCause.RRC_CONNECTION_REESTABLISHMENT_FAILURE, +            DataFailCause.RRC_CONNECTION_OUT_OF_SERVICE_DURING_CELL_REGISTER, +            DataFailCause.RRC_CONNECTION_ABORT_REQUEST, +            DataFailCause.RRC_CONNECTION_SYSTEM_INFORMATION_BLOCK_READ_ERROR, +            DataFailCause.NETWORK_INITIATED_DETACH_WITH_AUTO_REATTACH, +            DataFailCause.NETWORK_INITIATED_DETACH_NO_AUTO_REATTACH, +            DataFailCause.ESM_PROCEDURE_TIME_OUT, +            DataFailCause.INVALID_CONNECTION_ID, +            DataFailCause.MAXIMIUM_NSAPIS_EXCEEDED, +            DataFailCause.INVALID_PRIMARY_NSAPI, +            DataFailCause.CANNOT_ENCODE_OTA_MESSAGE, +            DataFailCause.RADIO_ACCESS_BEARER_SETUP_FAILURE, +            DataFailCause.PDP_ESTABLISH_TIMEOUT_EXPIRED, +            DataFailCause.PDP_MODIFY_TIMEOUT_EXPIRED, +            DataFailCause.PDP_INACTIVE_TIMEOUT_EXPIRED, +            DataFailCause.PDP_LOWERLAYER_ERROR, +            DataFailCause.PDP_MODIFY_COLLISION, +            DataFailCause.MAXINUM_SIZE_OF_L2_MESSAGE_EXCEEDED, +            DataFailCause.NAS_REQUEST_REJECTED_BY_NETWORK, +            DataFailCause.RRC_CONNECTION_INVALID_REQUEST, +            DataFailCause.RRC_CONNECTION_TRACKING_AREA_ID_CHANGED, +            DataFailCause.RRC_CONNECTION_RF_UNAVAILABLE, +            DataFailCause.RRC_CONNECTION_ABORTED_DUE_TO_IRAT_CHANGE, +            DataFailCause.RRC_CONNECTION_RELEASED_SECURITY_NOT_ACTIVE, +            DataFailCause.RRC_CONNECTION_ABORTED_AFTER_HANDOVER, +            DataFailCause.RRC_CONNECTION_ABORTED_AFTER_IRAT_CELL_CHANGE, +            DataFailCause.RRC_CONNECTION_ABORTED_DURING_IRAT_CELL_CHANGE, +            DataFailCause.IMSI_UNKNOWN_IN_HOME_SUBSCRIBER_SERVER, +            DataFailCause.IMEI_NOT_ACCEPTED, +            DataFailCause.EPS_SERVICES_AND_NON_EPS_SERVICES_NOT_ALLOWED, +            DataFailCause.EPS_SERVICES_NOT_ALLOWED_IN_PLMN, +            DataFailCause.MSC_TEMPORARILY_NOT_REACHABLE, +            DataFailCause.CS_DOMAIN_NOT_AVAILABLE, +            DataFailCause.ESM_FAILURE, +            DataFailCause.MAC_FAILURE, +            DataFailCause.SYNCHRONIZATION_FAILURE, +            DataFailCause.UE_SECURITY_CAPABILITIES_MISMATCH, +            DataFailCause.SECURITY_MODE_REJECTED, +            DataFailCause.UNACCEPTABLE_NON_EPS_AUTHENTICATION, +            DataFailCause.CS_FALLBACK_CALL_ESTABLISHMENT_NOT_ALLOWED, +            DataFailCause.NO_EPS_BEARER_CONTEXT_ACTIVATED, +            DataFailCause.INVALID_EMM_STATE, +            DataFailCause.NAS_LAYER_FAILURE, +            DataFailCause.MULTIPLE_PDP_CALL_NOT_ALLOWED, +            DataFailCause.EMBMS_NOT_ENABLED, +            DataFailCause.IRAT_HANDOVER_FAILED, +            DataFailCause.EMBMS_REGULAR_DEACTIVATION, +            DataFailCause.TEST_LOOPBACK_REGULAR_DEACTIVATION, +            DataFailCause.LOWER_LAYER_REGISTRATION_FAILURE, +            DataFailCause.DATA_PLAN_EXPIRED, +            DataFailCause.UMTS_HANDOVER_TO_IWLAN, +            DataFailCause.EVDO_CONNECTION_DENY_BY_GENERAL_OR_NETWORK_BUSY, +            DataFailCause.EVDO_CONNECTION_DENY_BY_BILLING_OR_AUTHENTICATION_FAILURE, +            DataFailCause.EVDO_HDR_CHANGED, +            DataFailCause.EVDO_HDR_EXITED, +            DataFailCause.EVDO_HDR_NO_SESSION, +            DataFailCause.EVDO_USING_GPS_FIX_INSTEAD_OF_HDR_CALL, +            DataFailCause.EVDO_HDR_CONNECTION_SETUP_TIMEOUT, +            DataFailCause.FAILED_TO_ACQUIRE_COLOCATED_HDR, +            DataFailCause.OTASP_COMMIT_IN_PROGRESS, +            DataFailCause.NO_HYBRID_HDR_SERVICE, +            DataFailCause.HDR_NO_LOCK_GRANTED, +            DataFailCause.DBM_OR_SMS_IN_PROGRESS, +            DataFailCause.HDR_FADE, +            DataFailCause.HDR_ACCESS_FAILURE, +            DataFailCause.UNSUPPORTED_1X_PREV, +            DataFailCause.LOCAL_END, +            DataFailCause.NO_SERVICE, +            DataFailCause.FADE, +            DataFailCause.NORMAL_RELEASE, +            DataFailCause.ACCESS_ATTEMPT_ALREADY_IN_PROGRESS, +            DataFailCause.REDIRECTION_OR_HANDOFF_IN_PROGRESS, +            DataFailCause.EMERGENCY_MODE, +            DataFailCause.PHONE_IN_USE, +            DataFailCause.INVALID_MODE, +            DataFailCause.INVALID_SIM_STATE, +            DataFailCause.NO_COLLOCATED_HDR, +            DataFailCause.UE_IS_ENTERING_POWERSAVE_MODE, +            DataFailCause.DUAL_SWITCH, +            DataFailCause.PPP_TIMEOUT, +            DataFailCause.PPP_AUTH_FAILURE, +            DataFailCause.PPP_OPTION_MISMATCH, +            DataFailCause.PPP_PAP_FAILURE, +            DataFailCause.PPP_CHAP_FAILURE, +            DataFailCause.PPP_CLOSE_IN_PROGRESS, +            DataFailCause.LIMITED_TO_IPV4, +            DataFailCause.LIMITED_TO_IPV6, +            DataFailCause.VSNCP_TIMEOUT, +            DataFailCause.VSNCP_GEN_ERROR, +            DataFailCause.VSNCP_APN_UNATHORIZED, +            DataFailCause.VSNCP_PDN_LIMIT_EXCEEDED, +            DataFailCause.VSNCP_NO_PDN_GATEWAY_ADDRESS, +            DataFailCause.VSNCP_PDN_GATEWAY_UNREACHABLE, +            DataFailCause.VSNCP_PDN_GATEWAY_REJECT, +            DataFailCause.VSNCP_INSUFFICIENT_PARAMETERS, +            DataFailCause.VSNCP_RESOURCE_UNAVAILABLE, +            DataFailCause.VSNCP_ADMINISTRATIVELY_PROHIBITED, +            DataFailCause.VSNCP_PDN_ID_IN_USE, +            DataFailCause.VSNCP_SUBSCRIBER_LIMITATION, +            DataFailCause.VSNCP_PDN_EXISTS_FOR_THIS_APN, +            DataFailCause.VSNCP_RECONNECT_NOT_ALLOWED, +            DataFailCause.IPV6_PREFIX_UNAVAILABLE, +            DataFailCause.HANDOFF_PREFERENCE_CHANGED, +            DataFailCause.OEM_DCFAILCAUSE_1, +            DataFailCause.OEM_DCFAILCAUSE_2, +            DataFailCause.OEM_DCFAILCAUSE_3, +            DataFailCause.OEM_DCFAILCAUSE_4, +            DataFailCause.OEM_DCFAILCAUSE_5, +            DataFailCause.OEM_DCFAILCAUSE_6, +            DataFailCause.OEM_DCFAILCAUSE_7, +            DataFailCause.OEM_DCFAILCAUSE_8, +            DataFailCause.OEM_DCFAILCAUSE_9, +            DataFailCause.OEM_DCFAILCAUSE_10, +            DataFailCause.OEM_DCFAILCAUSE_11, +            DataFailCause.OEM_DCFAILCAUSE_12, +            DataFailCause.OEM_DCFAILCAUSE_13, +            DataFailCause.OEM_DCFAILCAUSE_14, +            DataFailCause.OEM_DCFAILCAUSE_15, +            DataFailCause.REGISTRATION_FAIL, +            DataFailCause.GPRS_REGISTRATION_FAIL, +            DataFailCause.SIGNAL_LOST, +            DataFailCause.PREF_RADIO_TECH_CHANGED, +            DataFailCause.RADIO_POWER_OFF, +            DataFailCause.TETHERED_CALL_ACTIVE, +            DataFailCause.ERROR_UNSPECIFIED, +            DataFailCause.UNKNOWN, +            DataFailCause.RADIO_NOT_AVAILABLE, +            DataFailCause.UNACCEPTABLE_NETWORK_PARAMETER, +            DataFailCause.CONNECTION_TO_DATACONNECTIONAC_BROKEN, +            DataFailCause.LOST_CONNECTION, +            DataFailCause.RESET_BY_FRAMEWORK +    }) +    @Retention(RetentionPolicy.SOURCE) +    public @interface DataFailureCause { +    } +} diff --git a/telephony/java/android/telephony/CallAttributes.java b/telephony/java/android/telephony/CallAttributes.java index 1c03d8089df7..cd830adf23b0 100644 --- a/telephony/java/android/telephony/CallAttributes.java +++ b/telephony/java/android/telephony/CallAttributes.java @@ -21,8 +21,8 @@ import android.annotation.Nullable;  import android.annotation.SystemApi;  import android.os.Parcel;  import android.os.Parcelable; -import android.telephony.TelephonyManager.NetworkType; +import android.telephony.Annotation.NetworkType;  import java.util.Objects;  /** diff --git a/telephony/java/android/telephony/DataFailCause.java b/telephony/java/android/telephony/DataFailCause.java index ca264f738e1d..246bec7de59e 100644 --- a/telephony/java/android/telephony/DataFailCause.java +++ b/telephony/java/android/telephony/DataFailCause.java @@ -21,6 +21,7 @@ import android.annotation.SystemApi;  import android.content.Context;  import android.os.PersistableBundle; +import android.telephony.Annotation.DataFailureCause;  import com.android.internal.util.ArrayUtils;  import java.lang.annotation.Retention; @@ -968,355 +969,6 @@ public final class DataFailCause {       */      public static final int HANDOVER_FAILED = 0x10006; -    /** @hide */ -    @IntDef(value = { -            NONE, -            OPERATOR_BARRED, -            NAS_SIGNALLING, -            LLC_SNDCP, -            INSUFFICIENT_RESOURCES, -            MISSING_UNKNOWN_APN, -            UNKNOWN_PDP_ADDRESS_TYPE, -            USER_AUTHENTICATION, -            ACTIVATION_REJECT_GGSN, -            ACTIVATION_REJECT_UNSPECIFIED, -            SERVICE_OPTION_NOT_SUPPORTED, -            SERVICE_OPTION_NOT_SUBSCRIBED, -            SERVICE_OPTION_OUT_OF_ORDER, -            NSAPI_IN_USE, -            REGULAR_DEACTIVATION, -            QOS_NOT_ACCEPTED, -            NETWORK_FAILURE, -            UMTS_REACTIVATION_REQ, -            FEATURE_NOT_SUPP, -            TFT_SEMANTIC_ERROR, -            TFT_SYTAX_ERROR, -            UNKNOWN_PDP_CONTEXT, -            FILTER_SEMANTIC_ERROR, -            FILTER_SYTAX_ERROR, -            PDP_WITHOUT_ACTIVE_TFT, -            ACTIVATION_REJECTED_BCM_VIOLATION, -            ONLY_IPV4_ALLOWED, -            ONLY_IPV6_ALLOWED, -            ONLY_SINGLE_BEARER_ALLOWED, -            ESM_INFO_NOT_RECEIVED, -            PDN_CONN_DOES_NOT_EXIST, -            MULTI_CONN_TO_SAME_PDN_NOT_ALLOWED, -            COLLISION_WITH_NETWORK_INITIATED_REQUEST, -            ONLY_IPV4V6_ALLOWED, -            ONLY_NON_IP_ALLOWED, -            UNSUPPORTED_QCI_VALUE, -            BEARER_HANDLING_NOT_SUPPORTED, -            ACTIVE_PDP_CONTEXT_MAX_NUMBER_REACHED, -            UNSUPPORTED_APN_IN_CURRENT_PLMN, -            INVALID_TRANSACTION_ID, -            MESSAGE_INCORRECT_SEMANTIC, -            INVALID_MANDATORY_INFO, -            MESSAGE_TYPE_UNSUPPORTED, -            MSG_TYPE_NONCOMPATIBLE_STATE, -            UNKNOWN_INFO_ELEMENT, -            CONDITIONAL_IE_ERROR, -            MSG_AND_PROTOCOL_STATE_UNCOMPATIBLE, -            PROTOCOL_ERRORS, -            APN_TYPE_CONFLICT, -            INVALID_PCSCF_ADDR, -            INTERNAL_CALL_PREEMPT_BY_HIGH_PRIO_APN, -            EMM_ACCESS_BARRED, -            EMERGENCY_IFACE_ONLY, -            IFACE_MISMATCH, -            COMPANION_IFACE_IN_USE, -            IP_ADDRESS_MISMATCH, -            IFACE_AND_POL_FAMILY_MISMATCH, -            EMM_ACCESS_BARRED_INFINITE_RETRY, -            AUTH_FAILURE_ON_EMERGENCY_CALL, -            INVALID_DNS_ADDR, -            INVALID_PCSCF_OR_DNS_ADDRESS, -            CALL_PREEMPT_BY_EMERGENCY_APN, -            UE_INITIATED_DETACH_OR_DISCONNECT, -            MIP_FA_REASON_UNSPECIFIED, -            MIP_FA_ADMIN_PROHIBITED, -            MIP_FA_INSUFFICIENT_RESOURCES, -            MIP_FA_MOBILE_NODE_AUTHENTICATION_FAILURE, -            MIP_FA_HOME_AGENT_AUTHENTICATION_FAILURE, -            MIP_FA_REQUESTED_LIFETIME_TOO_LONG, -            MIP_FA_MALFORMED_REQUEST, -            MIP_FA_MALFORMED_REPLY, -            MIP_FA_ENCAPSULATION_UNAVAILABLE, -            MIP_FA_VJ_HEADER_COMPRESSION_UNAVAILABLE, -            MIP_FA_REVERSE_TUNNEL_UNAVAILABLE, -            MIP_FA_REVERSE_TUNNEL_IS_MANDATORY, -            MIP_FA_DELIVERY_STYLE_NOT_SUPPORTED, -            MIP_FA_MISSING_NAI, -            MIP_FA_MISSING_HOME_AGENT, -            MIP_FA_MISSING_HOME_ADDRESS, -            MIP_FA_UNKNOWN_CHALLENGE, -            MIP_FA_MISSING_CHALLENGE, -            MIP_FA_STALE_CHALLENGE, -            MIP_HA_REASON_UNSPECIFIED, -            MIP_HA_ADMIN_PROHIBITED, -            MIP_HA_INSUFFICIENT_RESOURCES, -            MIP_HA_MOBILE_NODE_AUTHENTICATION_FAILURE, -            MIP_HA_FOREIGN_AGENT_AUTHENTICATION_FAILURE, -            MIP_HA_REGISTRATION_ID_MISMATCH, -            MIP_HA_MALFORMED_REQUEST, -            MIP_HA_UNKNOWN_HOME_AGENT_ADDRESS, -            MIP_HA_REVERSE_TUNNEL_UNAVAILABLE, -            MIP_HA_REVERSE_TUNNEL_IS_MANDATORY, -            MIP_HA_ENCAPSULATION_UNAVAILABLE, -            CLOSE_IN_PROGRESS, -            NETWORK_INITIATED_TERMINATION, -            MODEM_APP_PREEMPTED, -            PDN_IPV4_CALL_DISALLOWED, -            PDN_IPV4_CALL_THROTTLED, -            PDN_IPV6_CALL_DISALLOWED, -            PDN_IPV6_CALL_THROTTLED, -            MODEM_RESTART, -            PDP_PPP_NOT_SUPPORTED, -            UNPREFERRED_RAT, -            PHYSICAL_LINK_CLOSE_IN_PROGRESS, -            APN_PENDING_HANDOVER, -            PROFILE_BEARER_INCOMPATIBLE, -            SIM_CARD_CHANGED, -            LOW_POWER_MODE_OR_POWERING_DOWN, -            APN_DISABLED, -            MAX_PPP_INACTIVITY_TIMER_EXPIRED, -            IPV6_ADDRESS_TRANSFER_FAILED, -            TRAT_SWAP_FAILED, -            EHRPD_TO_HRPD_FALLBACK, -            MIP_CONFIG_FAILURE, -            PDN_INACTIVITY_TIMER_EXPIRED, -            MAX_IPV4_CONNECTIONS, -            MAX_IPV6_CONNECTIONS, -            APN_MISMATCH, -            IP_VERSION_MISMATCH, -            DUN_CALL_DISALLOWED, -            INTERNAL_EPC_NONEPC_TRANSITION, -            INTERFACE_IN_USE, -            APN_DISALLOWED_ON_ROAMING, -            APN_PARAMETERS_CHANGED, -            NULL_APN_DISALLOWED, -            THERMAL_MITIGATION, -            DATA_SETTINGS_DISABLED, -            DATA_ROAMING_SETTINGS_DISABLED, -            DDS_SWITCHED, -            FORBIDDEN_APN_NAME, -            DDS_SWITCH_IN_PROGRESS, -            CALL_DISALLOWED_IN_ROAMING, -            NON_IP_NOT_SUPPORTED, -            PDN_NON_IP_CALL_THROTTLED, -            PDN_NON_IP_CALL_DISALLOWED, -            CDMA_LOCK, -            CDMA_INTERCEPT, -            CDMA_REORDER, -            CDMA_RELEASE_DUE_TO_SO_REJECTION, -            CDMA_INCOMING_CALL, -            CDMA_ALERT_STOP, -            CHANNEL_ACQUISITION_FAILURE, -            MAX_ACCESS_PROBE, -            CONCURRENT_SERVICE_NOT_SUPPORTED_BY_BASE_STATION, -            NO_RESPONSE_FROM_BASE_STATION, -            REJECTED_BY_BASE_STATION, -            CONCURRENT_SERVICES_INCOMPATIBLE, -            NO_CDMA_SERVICE, -            RUIM_NOT_PRESENT, -            CDMA_RETRY_ORDER, -            ACCESS_BLOCK, -            ACCESS_BLOCK_ALL, -            IS707B_MAX_ACCESS_PROBES, -            THERMAL_EMERGENCY, -            CONCURRENT_SERVICES_NOT_ALLOWED, -            INCOMING_CALL_REJECTED, -            NO_SERVICE_ON_GATEWAY, -            NO_GPRS_CONTEXT, -            ILLEGAL_MS, -            ILLEGAL_ME, -            GPRS_SERVICES_AND_NON_GPRS_SERVICES_NOT_ALLOWED, -            GPRS_SERVICES_NOT_ALLOWED, -            MS_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK, -            IMPLICITLY_DETACHED, -            PLMN_NOT_ALLOWED, -            LOCATION_AREA_NOT_ALLOWED, -            GPRS_SERVICES_NOT_ALLOWED_IN_THIS_PLMN, -            PDP_DUPLICATE, -            UE_RAT_CHANGE, -            CONGESTION, -            NO_PDP_CONTEXT_ACTIVATED, -            ACCESS_CLASS_DSAC_REJECTION, -            PDP_ACTIVATE_MAX_RETRY_FAILED, -            RADIO_ACCESS_BEARER_FAILURE, -            ESM_UNKNOWN_EPS_BEARER_CONTEXT, -            DRB_RELEASED_BY_RRC, -            CONNECTION_RELEASED, -            EMM_DETACHED, -            EMM_ATTACH_FAILED, -            EMM_ATTACH_STARTED, -            LTE_NAS_SERVICE_REQUEST_FAILED, -            DUPLICATE_BEARER_ID, -            ESM_COLLISION_SCENARIOS, -            ESM_BEARER_DEACTIVATED_TO_SYNC_WITH_NETWORK, -            ESM_NW_ACTIVATED_DED_BEARER_WITH_ID_OF_DEF_BEARER, -            ESM_BAD_OTA_MESSAGE, -            ESM_DOWNLOAD_SERVER_REJECTED_THE_CALL, -            ESM_CONTEXT_TRANSFERRED_DUE_TO_IRAT, -            DS_EXPLICIT_DEACTIVATION, -            ESM_LOCAL_CAUSE_NONE, -            LTE_THROTTLING_NOT_REQUIRED, -            ACCESS_CONTROL_LIST_CHECK_FAILURE, -            SERVICE_NOT_ALLOWED_ON_PLMN, -            EMM_T3417_EXPIRED, -            EMM_T3417_EXT_EXPIRED, -            RRC_UPLINK_DATA_TRANSMISSION_FAILURE, -            RRC_UPLINK_DELIVERY_FAILED_DUE_TO_HANDOVER, -            RRC_UPLINK_CONNECTION_RELEASE, -            RRC_UPLINK_RADIO_LINK_FAILURE, -            RRC_UPLINK_ERROR_REQUEST_FROM_NAS, -            RRC_CONNECTION_ACCESS_STRATUM_FAILURE, -            RRC_CONNECTION_ANOTHER_PROCEDURE_IN_PROGRESS, -            RRC_CONNECTION_ACCESS_BARRED, -            RRC_CONNECTION_CELL_RESELECTION, -            RRC_CONNECTION_CONFIG_FAILURE, -            RRC_CONNECTION_TIMER_EXPIRED, -            RRC_CONNECTION_LINK_FAILURE, -            RRC_CONNECTION_CELL_NOT_CAMPED, -            RRC_CONNECTION_SYSTEM_INTERVAL_FAILURE, -            RRC_CONNECTION_REJECT_BY_NETWORK, -            RRC_CONNECTION_NORMAL_RELEASE, -            RRC_CONNECTION_RADIO_LINK_FAILURE, -            RRC_CONNECTION_REESTABLISHMENT_FAILURE, -            RRC_CONNECTION_OUT_OF_SERVICE_DURING_CELL_REGISTER, -            RRC_CONNECTION_ABORT_REQUEST, -            RRC_CONNECTION_SYSTEM_INFORMATION_BLOCK_READ_ERROR, -            NETWORK_INITIATED_DETACH_WITH_AUTO_REATTACH, -            NETWORK_INITIATED_DETACH_NO_AUTO_REATTACH, -            ESM_PROCEDURE_TIME_OUT, -            INVALID_CONNECTION_ID, -            MAXIMIUM_NSAPIS_EXCEEDED, -            INVALID_PRIMARY_NSAPI, -            CANNOT_ENCODE_OTA_MESSAGE, -            RADIO_ACCESS_BEARER_SETUP_FAILURE, -            PDP_ESTABLISH_TIMEOUT_EXPIRED, -            PDP_MODIFY_TIMEOUT_EXPIRED, -            PDP_INACTIVE_TIMEOUT_EXPIRED, -            PDP_LOWERLAYER_ERROR, -            PDP_MODIFY_COLLISION, -            MAXINUM_SIZE_OF_L2_MESSAGE_EXCEEDED, -            NAS_REQUEST_REJECTED_BY_NETWORK, -            RRC_CONNECTION_INVALID_REQUEST, -            RRC_CONNECTION_TRACKING_AREA_ID_CHANGED, -            RRC_CONNECTION_RF_UNAVAILABLE, -            RRC_CONNECTION_ABORTED_DUE_TO_IRAT_CHANGE, -            RRC_CONNECTION_RELEASED_SECURITY_NOT_ACTIVE, -            RRC_CONNECTION_ABORTED_AFTER_HANDOVER, -            RRC_CONNECTION_ABORTED_AFTER_IRAT_CELL_CHANGE, -            RRC_CONNECTION_ABORTED_DURING_IRAT_CELL_CHANGE, -            IMSI_UNKNOWN_IN_HOME_SUBSCRIBER_SERVER, -            IMEI_NOT_ACCEPTED, -            EPS_SERVICES_AND_NON_EPS_SERVICES_NOT_ALLOWED, -            EPS_SERVICES_NOT_ALLOWED_IN_PLMN, -            MSC_TEMPORARILY_NOT_REACHABLE, -            CS_DOMAIN_NOT_AVAILABLE, -            ESM_FAILURE, -            MAC_FAILURE, -            SYNCHRONIZATION_FAILURE, -            UE_SECURITY_CAPABILITIES_MISMATCH, -            SECURITY_MODE_REJECTED, -            UNACCEPTABLE_NON_EPS_AUTHENTICATION, -            CS_FALLBACK_CALL_ESTABLISHMENT_NOT_ALLOWED, -            NO_EPS_BEARER_CONTEXT_ACTIVATED, -            INVALID_EMM_STATE, -            NAS_LAYER_FAILURE, -            MULTIPLE_PDP_CALL_NOT_ALLOWED, -            EMBMS_NOT_ENABLED, -            IRAT_HANDOVER_FAILED, -            EMBMS_REGULAR_DEACTIVATION, -            TEST_LOOPBACK_REGULAR_DEACTIVATION, -            LOWER_LAYER_REGISTRATION_FAILURE, -            DATA_PLAN_EXPIRED, -            UMTS_HANDOVER_TO_IWLAN, -            EVDO_CONNECTION_DENY_BY_GENERAL_OR_NETWORK_BUSY, -            EVDO_CONNECTION_DENY_BY_BILLING_OR_AUTHENTICATION_FAILURE, -            EVDO_HDR_CHANGED, -            EVDO_HDR_EXITED, -            EVDO_HDR_NO_SESSION, -            EVDO_USING_GPS_FIX_INSTEAD_OF_HDR_CALL, -            EVDO_HDR_CONNECTION_SETUP_TIMEOUT, -            FAILED_TO_ACQUIRE_COLOCATED_HDR, -            OTASP_COMMIT_IN_PROGRESS, -            NO_HYBRID_HDR_SERVICE, -            HDR_NO_LOCK_GRANTED, -            DBM_OR_SMS_IN_PROGRESS, -            HDR_FADE, -            HDR_ACCESS_FAILURE, -            UNSUPPORTED_1X_PREV, -            LOCAL_END, -            NO_SERVICE, -            FADE, -            NORMAL_RELEASE, -            ACCESS_ATTEMPT_ALREADY_IN_PROGRESS, -            REDIRECTION_OR_HANDOFF_IN_PROGRESS, -            EMERGENCY_MODE, -            PHONE_IN_USE, -            INVALID_MODE, -            INVALID_SIM_STATE, -            NO_COLLOCATED_HDR, -            UE_IS_ENTERING_POWERSAVE_MODE, -            DUAL_SWITCH, -            PPP_TIMEOUT, -            PPP_AUTH_FAILURE, -            PPP_OPTION_MISMATCH, -            PPP_PAP_FAILURE, -            PPP_CHAP_FAILURE, -            PPP_CLOSE_IN_PROGRESS, -            LIMITED_TO_IPV4, -            LIMITED_TO_IPV6, -            VSNCP_TIMEOUT, -            VSNCP_GEN_ERROR, -            VSNCP_APN_UNATHORIZED, -            VSNCP_PDN_LIMIT_EXCEEDED, -            VSNCP_NO_PDN_GATEWAY_ADDRESS, -            VSNCP_PDN_GATEWAY_UNREACHABLE, -            VSNCP_PDN_GATEWAY_REJECT, -            VSNCP_INSUFFICIENT_PARAMETERS, -            VSNCP_RESOURCE_UNAVAILABLE, -            VSNCP_ADMINISTRATIVELY_PROHIBITED, -            VSNCP_PDN_ID_IN_USE, -            VSNCP_SUBSCRIBER_LIMITATION, -            VSNCP_PDN_EXISTS_FOR_THIS_APN, -            VSNCP_RECONNECT_NOT_ALLOWED, -            IPV6_PREFIX_UNAVAILABLE, -            HANDOFF_PREFERENCE_CHANGED, -            OEM_DCFAILCAUSE_1, -            OEM_DCFAILCAUSE_2, -            OEM_DCFAILCAUSE_3, -            OEM_DCFAILCAUSE_4, -            OEM_DCFAILCAUSE_5, -            OEM_DCFAILCAUSE_6, -            OEM_DCFAILCAUSE_7, -            OEM_DCFAILCAUSE_8, -            OEM_DCFAILCAUSE_9, -            OEM_DCFAILCAUSE_10, -            OEM_DCFAILCAUSE_11, -            OEM_DCFAILCAUSE_12, -            OEM_DCFAILCAUSE_13, -            OEM_DCFAILCAUSE_14, -            OEM_DCFAILCAUSE_15, -            REGISTRATION_FAIL, -            GPRS_REGISTRATION_FAIL, -            SIGNAL_LOST, -            PREF_RADIO_TECH_CHANGED, -            RADIO_POWER_OFF, -            TETHERED_CALL_ACTIVE, -            ERROR_UNSPECIFIED, -            UNKNOWN, -            RADIO_NOT_AVAILABLE, -            UNACCEPTABLE_NETWORK_PARAMETER, -            CONNECTION_TO_DATACONNECTIONAC_BROKEN, -            LOST_CONNECTION, -            RESET_BY_FRAMEWORK -    }) -    @Retention(RetentionPolicy.SOURCE) -    public @interface FailCause{} -      private static final Map<Integer, String> sFailCauseMap;      static {          sFailCauseMap = new HashMap<>(); @@ -1737,7 +1389,8 @@ public final class DataFailCause {       *       * @hide       */ -    public static boolean isRadioRestartFailure(@NonNull Context context, @FailCause int cause, +    public static boolean isRadioRestartFailure(@NonNull Context context, +                                                @DataFailureCause int cause,                                                  int subId) {          CarrierConfigManager configManager = (CarrierConfigManager)                  context.getSystemService(Context.CARRIER_CONFIG_SERVICE); @@ -1765,7 +1418,8 @@ public final class DataFailCause {      }      /** @hide */ -    public static boolean isPermanentFailure(@NonNull Context context, @FailCause int failCause, +    public static boolean isPermanentFailure(@NonNull Context context, +                                             @DataFailureCause int failCause,                                               int subId) {          synchronized (sPermanentFailureCache) { @@ -1825,7 +1479,7 @@ public final class DataFailCause {      }      /** @hide */ -    public static boolean isEventLoggable(@FailCause int dataFailCause) { +    public static boolean isEventLoggable(@DataFailureCause int dataFailCause) {          return (dataFailCause == OPERATOR_BARRED) || (dataFailCause == INSUFFICIENT_RESOURCES)                  || (dataFailCause == UNKNOWN_PDP_ADDRESS_TYPE)                  || (dataFailCause == USER_AUTHENTICATION) @@ -1845,13 +1499,13 @@ public final class DataFailCause {      }      /** @hide */ -    public static String toString(@FailCause int dataFailCause) { +    public static String toString(@DataFailureCause int dataFailCause) {          int cause = getFailCause(dataFailCause);          return (cause == UNKNOWN) ? "UNKNOWN(" + dataFailCause + ")" : sFailCauseMap.get(cause);      }      /** @hide */ -    public static int getFailCause(@FailCause int failCause) { +    public static int getFailCause(@DataFailureCause int failCause) {          if (sFailCauseMap.containsKey(failCause)) {              return failCause;          } else { diff --git a/telephony/java/android/telephony/NetworkRegistrationInfo.java b/telephony/java/android/telephony/NetworkRegistrationInfo.java index a76b8da09064..3e028715fd6d 100644 --- a/telephony/java/android/telephony/NetworkRegistrationInfo.java +++ b/telephony/java/android/telephony/NetworkRegistrationInfo.java @@ -24,8 +24,8 @@ import android.annotation.TestApi;  import android.os.Parcel;  import android.os.Parcelable;  import android.telephony.AccessNetworkConstants.TransportType; -import android.telephony.TelephonyManager.NetworkType; +import android.telephony.Annotation.NetworkType;  import java.lang.annotation.Retention;  import java.lang.annotation.RetentionPolicy;  import java.util.ArrayList; diff --git a/telephony/java/android/telephony/PhoneStateListener.java b/telephony/java/android/telephony/PhoneStateListener.java index 0ce552ae330a..e5bfb4dfb7b4 100644 --- a/telephony/java/android/telephony/PhoneStateListener.java +++ b/telephony/java/android/telephony/PhoneStateListener.java @@ -28,6 +28,10 @@ import android.os.Bundle;  import android.os.Handler;  import android.os.HandlerExecutor;  import android.os.Looper; +import android.telephony.Annotation.CallState; +import android.telephony.Annotation.RadioPowerState; +import android.telephony.Annotation.SimActivationState; +import android.telephony.Annotation.SrvccState;  import android.telephony.emergency.EmergencyNumber;  import android.telephony.ims.ImsReasonInfo; @@ -567,7 +571,7 @@ public class PhoneStateListener {       * privileges (see {@link TelephonyManager#hasCarrierPrivileges}), an empty string will be       * passed as an argument.       */ -    public void onCallStateChanged(@TelephonyManager.CallState int state, String phoneNumber) { +    public void onCallStateChanged(@CallState int state, String phoneNumber) {          // default implementation empty      } @@ -773,7 +777,7 @@ public class PhoneStateListener {       * @hide       */      @SystemApi -    public void onSrvccStateChanged(@TelephonyManager.SrvccState int srvccState) { +    public void onSrvccStateChanged(@SrvccState int srvccState) {      } @@ -791,7 +795,7 @@ public class PhoneStateListener {       * @hide       */      @SystemApi -    public void onVoiceActivationStateChanged(@TelephonyManager.SimActivationState int state) { +    public void onVoiceActivationStateChanged(@SimActivationState int state) {      }      /** @@ -807,7 +811,7 @@ public class PhoneStateListener {       * @param state is the current SIM data activation state       * @hide       */ -    public void onDataActivationStateChanged(@TelephonyManager.SimActivationState int state) { +    public void onDataActivationStateChanged(@SimActivationState int state) {      }      /** @@ -966,7 +970,7 @@ public class PhoneStateListener {       * @hide       */      @SystemApi -    public void onRadioPowerStateChanged(@TelephonyManager.RadioPowerState int state) { +    public void onRadioPowerStateChanged(@RadioPowerState int state) {          // default implementation empty      } @@ -1233,7 +1237,7 @@ public class PhoneStateListener {                      () -> mExecutor.execute(() -> psl.onPhoneCapabilityChanged(capability)));          } -        public void onRadioPowerStateChanged(@TelephonyManager.RadioPowerState int state) { +        public void onRadioPowerStateChanged(@RadioPowerState int state) {              PhoneStateListener psl = mPhoneStateListenerWeakRef.get();              if (psl == null) return; diff --git a/telephony/java/android/telephony/PhysicalChannelConfig.java b/telephony/java/android/telephony/PhysicalChannelConfig.java index e1763ab44fba..4273f5a4a16e 100644 --- a/telephony/java/android/telephony/PhysicalChannelConfig.java +++ b/telephony/java/android/telephony/PhysicalChannelConfig.java @@ -19,8 +19,8 @@ package android.telephony;  import android.annotation.IntDef;  import android.os.Parcel;  import android.os.Parcelable; -import android.telephony.TelephonyManager.NetworkType; +import android.telephony.Annotation.NetworkType;  import java.lang.annotation.Retention;  import java.lang.annotation.RetentionPolicy;  import java.util.Arrays; diff --git a/telephony/java/android/telephony/PreciseCallState.java b/telephony/java/android/telephony/PreciseCallState.java index 701a375a3039..f929649453b9 100644 --- a/telephony/java/android/telephony/PreciseCallState.java +++ b/telephony/java/android/telephony/PreciseCallState.java @@ -41,7 +41,7 @@ import java.util.Objects;   *   <li>Precise background call state.   * </ul>   * - * @see android.telephony.TelephonyManager.CallState which contains generic call states. + * @see android.telephony.Annotation.CallState which contains generic call states.   *   * @hide   */ diff --git a/telephony/java/android/telephony/PreciseDataConnectionState.java b/telephony/java/android/telephony/PreciseDataConnectionState.java index 90d443a6d8ee..257d634f1577 100644 --- a/telephony/java/android/telephony/PreciseDataConnectionState.java +++ b/telephony/java/android/telephony/PreciseDataConnectionState.java @@ -23,6 +23,10 @@ import android.annotation.UnsupportedAppUsage;  import android.net.LinkProperties;  import android.os.Parcel;  import android.os.Parcelable; +import android.telephony.Annotation.ApnType; +import android.telephony.Annotation.DataFailureCause; +import android.telephony.Annotation.DataState; +import android.telephony.Annotation.NetworkType;  import android.telephony.data.ApnSetting;  import java.util.Objects; @@ -47,10 +51,10 @@ import java.util.Objects;  @SystemApi  public final class PreciseDataConnectionState implements Parcelable { -    private @TelephonyManager.DataState int mState = TelephonyManager.DATA_UNKNOWN; -    private @TelephonyManager.NetworkType int mNetworkType = TelephonyManager.NETWORK_TYPE_UNKNOWN; -    private @DataFailCause.FailCause int mFailCause = DataFailCause.NONE; -    private @ApnSetting.ApnType int mAPNTypes = ApnSetting.TYPE_NONE; +    private @DataState int mState = TelephonyManager.DATA_UNKNOWN; +    private @NetworkType int mNetworkType = TelephonyManager.NETWORK_TYPE_UNKNOWN; +    private @DataFailureCause int mFailCause = DataFailCause.NONE; +    private @ApnType int mAPNTypes = ApnSetting.TYPE_NONE;      private String mAPN = "";      private LinkProperties mLinkProperties = null; @@ -60,11 +64,11 @@ public final class PreciseDataConnectionState implements Parcelable {       * @hide       */      @UnsupportedAppUsage -    public PreciseDataConnectionState(@TelephonyManager.DataState int state, -                                      @TelephonyManager.NetworkType int networkType, -                                      @ApnSetting.ApnType int apnTypes, String apn, +    public PreciseDataConnectionState(@DataState int state, +                                      @NetworkType int networkType, +                                      @ApnType int apnTypes, String apn,                                        LinkProperties linkProperties, -                                      @DataFailCause.FailCause int failCause) { +                                      @DataFailureCause int failCause) {          mState = state;          mNetworkType = networkType;          mAPNTypes = apnTypes; @@ -99,7 +103,7 @@ public final class PreciseDataConnectionState implements Parcelable {       * Returns the state of data connection that supported the apn types returned by       * {@link #getDataConnectionApnTypeBitMask()}       */ -    public @TelephonyManager.DataState int getDataConnectionState() { +    public @DataState int getDataConnectionState() {          return mState;      } @@ -107,7 +111,7 @@ public final class PreciseDataConnectionState implements Parcelable {       * Returns the network type associated with this data connection.       * @hide       */ -    public @TelephonyManager.NetworkType int getDataConnectionNetworkType() { +    public @NetworkType int getDataConnectionNetworkType() {          return mNetworkType;      } @@ -115,7 +119,7 @@ public final class PreciseDataConnectionState implements Parcelable {       * Returns the data connection APN types supported by this connection and triggers       * {@link PreciseDataConnectionState} change.       */ -    public @ApnSetting.ApnType int getDataConnectionApnTypeBitMask() { +    public @ApnType int getDataConnectionApnTypeBitMask() {          return mAPNTypes;      } @@ -139,7 +143,7 @@ public final class PreciseDataConnectionState implements Parcelable {      /**       * Returns data connection fail cause, in case there was a failure.       */ -    public @DataFailCause.FailCause int getDataConnectionFailCause() { +    public @Annotation.DataFailureCause int getDataConnectionFailCause() {          return mFailCause;      } diff --git a/telephony/java/android/telephony/ServiceState.java b/telephony/java/android/telephony/ServiceState.java index a985a6bd0787..c57512973c3d 100644 --- a/telephony/java/android/telephony/ServiceState.java +++ b/telephony/java/android/telephony/ServiceState.java @@ -29,6 +29,7 @@ import android.os.Parcel;  import android.os.Parcelable;  import android.telephony.AccessNetworkConstants.AccessNetworkType;  import android.telephony.AccessNetworkConstants.TransportType; +import android.telephony.Annotation.NetworkType;  import android.telephony.NetworkRegistrationInfo.Domain;  import android.telephony.NetworkRegistrationInfo.NRState;  import android.text.TextUtils; @@ -1617,7 +1618,7 @@ public class ServiceState implements Parcelable {       * @hide       */      @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P) -    public @TelephonyManager.NetworkType int getDataNetworkType() { +    public @NetworkType int getDataNetworkType() {          final NetworkRegistrationInfo iwlanRegInfo = getNetworkRegistrationInfo(                  NetworkRegistrationInfo.DOMAIN_PS, AccessNetworkConstants.TRANSPORT_TYPE_WLAN);          final NetworkRegistrationInfo wwanRegInfo = getNetworkRegistrationInfo( @@ -1644,7 +1645,7 @@ public class ServiceState implements Parcelable {      /** @hide */      @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P) -    public @TelephonyManager.NetworkType int getVoiceNetworkType() { +    public @NetworkType int getVoiceNetworkType() {          final NetworkRegistrationInfo regState = getNetworkRegistrationInfo(                  NetworkRegistrationInfo.DOMAIN_CS, AccessNetworkConstants.TRANSPORT_TYPE_WWAN);          if (regState != null) { diff --git a/telephony/java/android/telephony/SubscriptionManager.java b/telephony/java/android/telephony/SubscriptionManager.java index 2d39c85af777..f27796e08ab2 100644 --- a/telephony/java/android/telephony/SubscriptionManager.java +++ b/telephony/java/android/telephony/SubscriptionManager.java @@ -54,6 +54,7 @@ import android.os.ParcelUuid;  import android.os.Process;  import android.os.RemoteException;  import android.os.ServiceManager; +import android.telephony.Annotation.NetworkType;  import android.telephony.euicc.EuiccManager;  import android.telephony.ims.ImsMmTelManager;  import android.util.DisplayMetrics; diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index 72e5901bcae8..2c26f1625d67 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -63,6 +63,12 @@ import android.telecom.InCallService;  import android.telecom.PhoneAccount;  import android.telecom.PhoneAccountHandle;  import android.telecom.TelecomManager; +import android.telephony.Annotation.ApnType; +import android.telephony.Annotation.CallState; +import android.telephony.Annotation.DataState; +import android.telephony.Annotation.NetworkType; +import android.telephony.Annotation.RadioPowerState; +import android.telephony.Annotation.SimActivationState;  import android.telephony.VisualVoicemailService.VisualVoicemailTask;  import android.telephony.data.ApnSetting;  import android.telephony.emergency.EmergencyNumber; @@ -254,17 +260,6 @@ public class TelephonyManager {       */      public static final int UNINITIALIZED_CARD_ID = -2; -    /** @hide */ -    @Retention(RetentionPolicy.SOURCE) -    @IntDef(prefix = {"SRVCC_STATE_"}, -            value = { -                    SRVCC_STATE_HANDOVER_NONE, -                    SRVCC_STATE_HANDOVER_STARTED, -                    SRVCC_STATE_HANDOVER_COMPLETED, -                    SRVCC_STATE_HANDOVER_FAILED, -                    SRVCC_STATE_HANDOVER_CANCELED}) -    public @interface SrvccState {} -      private final Context mContext;      private final int mSubId;      @UnsupportedAppUsage @@ -2588,33 +2583,6 @@ public class TelephonyManager {      /** Max network type number. Update as new types are added. Don't add negative types. {@hide} */      public static final int MAX_NETWORK_TYPE = NETWORK_TYPE_NR; -    /** @hide */ -    @IntDef({ -            NETWORK_TYPE_UNKNOWN, -            NETWORK_TYPE_GPRS, -            NETWORK_TYPE_EDGE, -            NETWORK_TYPE_UMTS, -            NETWORK_TYPE_CDMA, -            NETWORK_TYPE_EVDO_0, -            NETWORK_TYPE_EVDO_A, -            NETWORK_TYPE_1xRTT, -            NETWORK_TYPE_HSDPA, -            NETWORK_TYPE_HSUPA, -            NETWORK_TYPE_HSPA, -            NETWORK_TYPE_IDEN, -            NETWORK_TYPE_EVDO_B, -            NETWORK_TYPE_LTE, -            NETWORK_TYPE_EHRPD, -            NETWORK_TYPE_HSPAP, -            NETWORK_TYPE_GSM, -            NETWORK_TYPE_TD_SCDMA, -            NETWORK_TYPE_IWLAN, -            NETWORK_TYPE_LTE_CA, -            NETWORK_TYPE_NR, -    }) -    @Retention(RetentionPolicy.SOURCE) -    public @interface NetworkType{} -      /**       * Return the current data network type.       * @@ -4612,17 +4580,6 @@ public class TelephonyManager {      @SystemApi      public static final int SIM_ACTIVATION_STATE_RESTRICTED = 4; -    /** @hide */ -    @IntDef({ -            SIM_ACTIVATION_STATE_UNKNOWN, -            SIM_ACTIVATION_STATE_ACTIVATING, -            SIM_ACTIVATION_STATE_ACTIVATED, -            SIM_ACTIVATION_STATE_DEACTIVATED, -            SIM_ACTIVATION_STATE_RESTRICTED -    }) -    @Retention(RetentionPolicy.SOURCE) -    public @interface SimActivationState{} -       /**        * Sets the voice activation state        * @@ -5007,15 +4964,6 @@ public class TelephonyManager {       */      public static final int CALL_STATE_OFFHOOK = 2; -    /** @hide */ -    @IntDef(prefix = { "CALL_STATE_" }, value = { -            CALL_STATE_IDLE, -            CALL_STATE_RINGING, -            CALL_STATE_OFFHOOK -    }) -    @Retention(RetentionPolicy.SOURCE) -    public @interface CallState{} -      /**       * Returns the state of all calls on the device.       * <p> @@ -8358,15 +8306,6 @@ public class TelephonyManager {          return false;      } -    /** @hide */ -    @Retention(RetentionPolicy.SOURCE) -    @IntDef(prefix = {"RADIO_POWER_"}, -            value = {RADIO_POWER_OFF, -                    RADIO_POWER_ON, -                    RADIO_POWER_UNAVAILABLE, -            }) -    public @interface RadioPowerState {} -      /**       * Radio explicitly powered off (e.g, airplane mode).       * @hide @@ -11513,7 +11452,7 @@ public class TelephonyManager {       */      @SystemApi      @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) -    public boolean isDataEnabledForApn(@ApnSetting.ApnType int apnType) { +    public boolean isDataEnabledForApn(@ApnType int apnType) {          String pkgForDebug = mContext != null ? mContext.getOpPackageName() : "<unknown>";          try {              ITelephony service = getITelephony(); @@ -11534,7 +11473,7 @@ public class TelephonyManager {       *       * @hide       */ -    public boolean isApnMetered(@ApnSetting.ApnType int apnType) { +    public boolean isApnMetered(@ApnType int apnType) {          try {              ITelephony service = getITelephony();              if (service != null) { diff --git a/telephony/java/android/telephony/data/ApnSetting.java b/telephony/java/android/telephony/data/ApnSetting.java index e65e032c0cd4..a5d62669de05 100644 --- a/telephony/java/android/telephony/data/ApnSetting.java +++ b/telephony/java/android/telephony/data/ApnSetting.java @@ -26,6 +26,8 @@ import android.os.Parcel;  import android.os.Parcelable;  import android.provider.Telephony;  import android.provider.Telephony.Carriers; +import android.telephony.Annotation.ApnType; +import android.telephony.Annotation.NetworkType;  import android.telephony.Rlog;  import android.telephony.ServiceState;  import android.telephony.TelephonyManager; @@ -109,23 +111,6 @@ public class ApnSetting implements Parcelable {      /** APN type for MCX (Mission Critical Service) where X can be PTT/Video/Data */      public static final int TYPE_MCX = ApnTypes.MCX; -    /** @hide */ -    @IntDef(flag = true, prefix = { "TYPE_" }, value = { -        TYPE_DEFAULT, -        TYPE_MMS, -        TYPE_SUPL, -        TYPE_DUN, -        TYPE_HIPRI, -        TYPE_FOTA, -        TYPE_IMS, -        TYPE_CBS, -        TYPE_IA, -        TYPE_EMERGENCY, -        TYPE_MCX -    }) -    @Retention(RetentionPolicy.SOURCE) -    public @interface ApnType {} -      // Possible values for authentication types.      /** No authentication type. */      public static final int AUTH_TYPE_NONE = 0; @@ -1430,7 +1415,7 @@ public class ApnSetting implements Parcelable {       *       * @hide       */ -    public boolean canSupportNetworkType(@TelephonyManager.NetworkType int networkType) { +    public boolean canSupportNetworkType(@NetworkType int networkType) {          // Do a special checking for GSM. In reality, GSM is a voice only network type and can never          // be used for data. We allow it here because in some DSDS corner cases, on the non-DDS          // sub, modem reports data rat unknown. In that case if voice is GSM and this APN supports diff --git a/telephony/java/android/telephony/data/DataCallResponse.java b/telephony/java/android/telephony/data/DataCallResponse.java index 9170e88ce832..49625bbecf4f 100644 --- a/telephony/java/android/telephony/data/DataCallResponse.java +++ b/telephony/java/android/telephony/data/DataCallResponse.java @@ -24,8 +24,8 @@ import android.annotation.SystemApi;  import android.net.LinkAddress;  import android.os.Parcel;  import android.os.Parcelable; +import android.telephony.Annotation.DataFailureCause;  import android.telephony.DataFailCause; -import android.telephony.DataFailCause.FailCause;  import android.telephony.data.ApnSetting.ProtocolType;  import com.android.internal.annotations.VisibleForTesting; @@ -67,7 +67,7 @@ public final class DataCallResponse implements Parcelable {      /** Indicates the data connection is active with physical link up. */      public static final int LINK_STATUS_ACTIVE = 2; -    private final @FailCause int mCause; +    private final @DataFailureCause int mCause;      private final int mSuggestedRetryTime;      private final int mId;      private final @LinkStatus int mLinkStatus; @@ -103,7 +103,7 @@ public final class DataCallResponse implements Parcelable {       *       * @removed Use the {@link Builder()} instead.       */ -    public DataCallResponse(@FailCause int cause, int suggestedRetryTime, int id, +    public DataCallResponse(@DataFailureCause int cause, int suggestedRetryTime, int id,                              @LinkStatus int linkStatus,                              @ProtocolType int protocolType, @Nullable String interfaceName,                              @Nullable List<LinkAddress> addresses, @@ -150,7 +150,7 @@ public final class DataCallResponse implements Parcelable {      /**       * @return Data call fail cause. {@link DataFailCause#NONE} indicates no error.       */ -    @FailCause +    @DataFailureCause      public int getCause() { return mCause; }      /** @@ -314,7 +314,7 @@ public final class DataCallResponse implements Parcelable {       * </code></pre>       */      public static final class Builder { -        private @FailCause int mCause; +        private @DataFailureCause int mCause;          private int mSuggestedRetryTime; @@ -348,7 +348,7 @@ public final class DataCallResponse implements Parcelable {           * @param cause Data call fail cause. {@link DataFailCause#NONE} indicates no error.           * @return The same instance of the builder.           */ -        public @NonNull Builder setCause(@FailCause int cause) { +        public @NonNull Builder setCause(@DataFailureCause int cause) {              mCause = cause;              return this;          } diff --git a/telephony/java/android/telephony/data/DataProfile.java b/telephony/java/android/telephony/data/DataProfile.java index 0d79ec98fcbb..30c209b28a4d 100644 --- a/telephony/java/android/telephony/data/DataProfile.java +++ b/telephony/java/android/telephony/data/DataProfile.java @@ -25,8 +25,8 @@ import android.annotation.SystemApi;  import android.os.Build;  import android.os.Parcel;  import android.os.Parcelable; +import android.telephony.Annotation.ApnType;  import android.telephony.TelephonyManager.NetworkTypeBitMask; -import android.telephony.data.ApnSetting.ApnType;  import android.telephony.data.ApnSetting.AuthType;  import android.text.TextUtils; diff --git a/telephony/java/android/telephony/data/QualifiedNetworksService.java b/telephony/java/android/telephony/data/QualifiedNetworksService.java index 0e1751d50949..e793979a61c9 100644 --- a/telephony/java/android/telephony/data/QualifiedNetworksService.java +++ b/telephony/java/android/telephony/data/QualifiedNetworksService.java @@ -27,8 +27,8 @@ import android.os.Looper;  import android.os.Message;  import android.os.RemoteException;  import android.telephony.AccessNetworkConstants.AccessNetworkType; +import android.telephony.Annotation.ApnType;  import android.telephony.Rlog; -import android.telephony.data.ApnSetting.ApnType;  import android.util.SparseArray;  import com.android.internal.annotations.VisibleForTesting; @@ -133,7 +133,7 @@ public abstract class QualifiedNetworksService extends Service {           * service.           *           * @param apnTypes APN types of the qualified networks. This must be a bitmask combination -         * of {@link ApnSetting.ApnType}. +         * of {@link ApnType}.           * @param qualifiedNetworkTypes List of network types which are qualified for data           * connection setup for {@link @apnType} in the preferred order. Each element in the list           * is a {@link AccessNetworkType}. An empty list indicates no networks are qualified diff --git a/wifi/java/android/net/wifi/WifiManager.java b/wifi/java/android/net/wifi/WifiManager.java index 77e02df105c8..0d2e8166994c 100644 --- a/wifi/java/android/net/wifi/WifiManager.java +++ b/wifi/java/android/net/wifi/WifiManager.java @@ -38,6 +38,7 @@ import android.net.DhcpInfo;  import android.net.Network;  import android.net.NetworkCapabilities;  import android.net.NetworkRequest; +import android.net.NetworkStack;  import android.net.wifi.hotspot2.IProvisioningCallback;  import android.net.wifi.hotspot2.OsuProvider;  import android.net.wifi.hotspot2.PasspointConfiguration; @@ -532,19 +533,25 @@ public class WifiManager {      @SystemApi      public static final String EXTRA_PREVIOUS_WIFI_AP_STATE = "previous_wifi_state";      /** -     * The interface used for the softap. +     * The lookup key for a String extra that stores the interface name used for the Soft AP. +     * This extra is included in the broadcast {@link #WIFI_AP_STATE_CHANGED_ACTION}. +     * Retrieve its value with {@link android.content.Intent#getStringExtra(String)}.       *       * @hide       */ -    public static final String EXTRA_WIFI_AP_INTERFACE_NAME = "wifi_ap_interface_name"; +    @SystemApi +    public static final String EXTRA_WIFI_AP_INTERFACE_NAME = +            "android.net.wifi.extra.WIFI_AP_INTERFACE_NAME";      /** -     * The intended ip mode for this softap. -     * @see #IFACE_IP_MODE_TETHERED -     * @see #IFACE_IP_MODE_LOCAL_ONLY +     * The lookup key for an int extra that stores the intended IP mode for this Soft AP. +     * One of {@link #IFACE_IP_MODE_TETHERED} or {@link #IFACE_IP_MODE_LOCAL_ONLY}. +     * This extra is included in the broadcast {@link #WIFI_AP_STATE_CHANGED_ACTION}. +     * Retrieve its value with {@link android.content.Intent#getIntExtra(String, int)}.       *       * @hide       */ -    public static final String EXTRA_WIFI_AP_MODE = "wifi_ap_mode"; +    @SystemApi +    public static final String EXTRA_WIFI_AP_MODE = "android.net.wifi.extra.WIFI_AP_MODE";      /** @hide */      @IntDef(flag = false, prefix = { "WIFI_AP_STATE_" }, value = { @@ -634,40 +641,53 @@ public class WifiManager {       */      public static final int SAP_START_FAILURE_NO_CHANNEL = 1; +    /** @hide */ +    @Retention(RetentionPolicy.SOURCE) +    @IntDef(prefix = {"IFACE_IP_MODE_"}, value = { +            IFACE_IP_MODE_UNSPECIFIED, +            IFACE_IP_MODE_CONFIGURATION_ERROR, +            IFACE_IP_MODE_TETHERED, +            IFACE_IP_MODE_LOCAL_ONLY}) +    public @interface IfaceIpMode {} +      /**       * Interface IP mode unspecified.       * -     * @see updateInterfaceIpState(String, int) +     * @see #updateInterfaceIpState(String, int)       *       * @hide       */ +    @SystemApi      public static final int IFACE_IP_MODE_UNSPECIFIED = -1;      /**       * Interface IP mode for configuration error.       * -     * @see updateInterfaceIpState(String, int) +     * @see #updateInterfaceIpState(String, int)       *       * @hide       */ +    @SystemApi      public static final int IFACE_IP_MODE_CONFIGURATION_ERROR = 0;      /**       * Interface IP mode for tethering.       * -     * @see updateInterfaceIpState(String, int) +     * @see #updateInterfaceIpState(String, int)       *       * @hide       */ +    @SystemApi      public static final int IFACE_IP_MODE_TETHERED = 1;      /**       * Interface IP mode for Local Only Hotspot.       * -     * @see updateInterfaceIpState(String, int) +     * @see #updateInterfaceIpState(String, int)       *       * @hide       */ +    @SystemApi      public static final int IFACE_IP_MODE_LOCAL_ONLY = 2;      /** @@ -2538,16 +2558,21 @@ public class WifiManager {      /**       * Call allowing ConnectivityService to update WifiService with interface mode changes.       * -     * The possible modes include: {@link IFACE_IP_MODE_TETHERED}, -     *                             {@link IFACE_IP_MODE_LOCAL_ONLY}, -     *                             {@link IFACE_IP_MODE_CONFIGURATION_ERROR} -     * -     * @param ifaceName String name of the updated interface -     * @param mode int representing the new mode +     * @param ifaceName String name of the updated interface, or null to represent all interfaces +     * @param mode int representing the new mode, one of: +     *             {@link #IFACE_IP_MODE_TETHERED}, +     *             {@link #IFACE_IP_MODE_LOCAL_ONLY}, +     *             {@link #IFACE_IP_MODE_CONFIGURATION_ERROR}, +     *             {@link #IFACE_IP_MODE_UNSPECIFIED}       *       * @hide       */ -    public void updateInterfaceIpState(String ifaceName, int mode) { +    @SystemApi +    @RequiresPermission(anyOf = { +            android.Manifest.permission.NETWORK_STACK, +            NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK +    }) +    public void updateInterfaceIpState(@Nullable String ifaceName, @IfaceIpMode int mode) {          try {              mService.updateInterfaceIpState(ifaceName, mode);          } catch (RemoteException e) { @@ -2556,15 +2581,21 @@ public class WifiManager {      }      /** -     * Start SoftAp mode with the specified configuration. -     * Note that starting in access point mode disables station -     * mode operation -     * @param wifiConfig SSID, security and channel details as -     *        part of WifiConfiguration -     * @return {@code true} if the operation succeeds, {@code false} otherwise +     * Start Soft AP (hotspot) mode with the specified configuration. +     * Note that starting Soft AP mode may disable station mode operation if the device does not +     * support concurrency. +     * @param wifiConfig SSID, security and channel details as part of WifiConfiguration, or null to +     *                   use the persisted Soft AP configuration that was previously set using +     *                   {@link #setWifiApConfiguration(WifiConfiguration)}. +     * @return {@code true} if the operation succeeded, {@code false} otherwise       *       * @hide       */ +    @SystemApi +    @RequiresPermission(anyOf = { +            android.Manifest.permission.NETWORK_STACK, +            NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK +    })      public boolean startSoftAp(@Nullable WifiConfiguration wifiConfig) {          try {              return mService.startSoftAp(wifiConfig); @@ -2580,6 +2611,11 @@ public class WifiManager {       *       * @hide       */ +    @SystemApi +    @RequiresPermission(anyOf = { +            android.Manifest.permission.NETWORK_STACK, +            NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK +    })      public boolean stopSoftAp() {          try {              return mService.stopSoftAp(); diff --git a/wifi/java/android/net/wifi/WifiUsabilityStatsEntry.java b/wifi/java/android/net/wifi/WifiUsabilityStatsEntry.java index e59516485112..8f3635fd2f04 100644 --- a/wifi/java/android/net/wifi/WifiUsabilityStatsEntry.java +++ b/wifi/java/android/net/wifi/WifiUsabilityStatsEntry.java @@ -20,8 +20,8 @@ import android.annotation.IntDef;  import android.annotation.SystemApi;  import android.os.Parcel;  import android.os.Parcelable; -import android.telephony.TelephonyManager.NetworkType; +import android.telephony.Annotation.NetworkType;  import java.lang.annotation.Retention;  import java.lang.annotation.RetentionPolicy;  |