From 8713b167a9a7491baa0ad95f7b83c1dba52708fc Mon Sep 17 00:00:00 2001 From: Chen Xu Date: Mon, 2 Dec 2019 14:57:33 -0800 Subject: [PATCH] expose APIs for mainline telephony-sdk Those telephony SDK internal classes are referenced by non-updatable framework/base classes. Bug: 140908357 Change-Id: I943e2a2ca4ac1cb637cc237e580bd5cfca88a516 --- api/current.txt | 6 +++ .../android/telephony/PhoneStateListener.java | 35 ------------- .../telephony/IPhoneStateListener.aidl | 2 - .../telephony/ITelephonyRegistry.aidl | 3 -- .../com/android/server/TelephonyRegistry.java | 52 ------------------- .../android/telephony/PhoneCapability.java | 16 ++++-- 6 files changed, 18 insertions(+), 96 deletions(-) diff --git a/api/current.txt b/api/current.txt index b66f830981f6b..98f8a9588fe87 100644 --- a/api/current.txt +++ b/api/current.txt @@ -44943,6 +44943,12 @@ package android.telephony { field public static final int SCAN_TYPE_PERIODIC = 1; // 0x1 } + public final class PhoneCapability implements android.os.Parcelable { + method public int describeContents(); + method public void writeToParcel(@NonNull android.os.Parcel, int); + field @NonNull public static final android.os.Parcelable.Creator CREATOR; + } + public class PhoneNumberFormattingTextWatcher implements android.text.TextWatcher { ctor public PhoneNumberFormattingTextWatcher(); ctor public PhoneNumberFormattingTextWatcher(String); diff --git a/core/java/android/telephony/PhoneStateListener.java b/core/java/android/telephony/PhoneStateListener.java index a65c8fdf50c97..716a5225ea910 100644 --- a/core/java/android/telephony/PhoneStateListener.java +++ b/core/java/android/telephony/PhoneStateListener.java @@ -285,14 +285,6 @@ public class PhoneStateListener { */ public static final int LISTEN_USER_MOBILE_DATA_STATE = 0x00080000; - /** - * Listen for changes to the physical channel configuration. - * - * @see #onPhysicalChannelConfigurationChanged - * @hide - */ - public static final int LISTEN_PHYSICAL_CHANNEL_CONFIGURATION = 0x00100000; - /** * Listen for changes to the phone capability. * @@ -830,24 +822,6 @@ public class PhoneStateListener { // default implementation empty } - /** - * Callback invoked when the current physical channel configuration has changed on the - * registered subscription. - * Note, the registration subId comes from {@link TelephonyManager} object which registers - * PhoneStateListener by {@link TelephonyManager#listen(PhoneStateListener, int)}. - * If this TelephonyManager object was created with - * {@link TelephonyManager#createForSubscriptionId(int)}, then the callback applies to the - * subId. Otherwise, this callback applies to - * {@link SubscriptionManager#getDefaultSubscriptionId()}. - * - * @param configs List of the current {@link PhysicalChannelConfig}s - * @hide - */ - public void onPhysicalChannelConfigurationChanged( - @NonNull List configs) { - // default implementation empty - } - /** * Callback invoked when the current emergency number list has changed on the registered * subscription. @@ -1194,15 +1168,6 @@ public class PhoneStateListener { () -> mExecutor.execute(() -> psl.onCarrierNetworkChange(active))); } - public void onPhysicalChannelConfigurationChanged(List configs) { - PhoneStateListener psl = mPhoneStateListenerWeakRef.get(); - if (psl == null) return; - - Binder.withCleanCallingIdentity( - () -> mExecutor.execute( - () -> psl.onPhysicalChannelConfigurationChanged(configs))); - } - public void onEmergencyNumberListChanged(Map emergencyNumberList) { PhoneStateListener psl = mPhoneStateListenerWeakRef.get(); if (psl == null) return; diff --git a/core/java/com/android/internal/telephony/IPhoneStateListener.aidl b/core/java/com/android/internal/telephony/IPhoneStateListener.aidl index 084a3cc64a359..01f57438a02ce 100644 --- a/core/java/com/android/internal/telephony/IPhoneStateListener.aidl +++ b/core/java/com/android/internal/telephony/IPhoneStateListener.aidl @@ -21,7 +21,6 @@ import android.telephony.CallAttributes; import android.telephony.CellInfo; import android.telephony.DataConnectionRealTimeInfo; import android.telephony.PhoneCapability; -import android.telephony.PhysicalChannelConfig; import android.telephony.PreciseCallState; import android.telephony.PreciseDataConnectionState; import android.telephony.ServiceState; @@ -44,7 +43,6 @@ oneway interface IPhoneStateListener { void onDataConnectionStateChanged(int state, int networkType); void onDataActivity(int direction); void onSignalStrengthsChanged(in SignalStrength signalStrength); - void onPhysicalChannelConfigurationChanged(in List configs); void onOtaspChanged(in int otaspMode); void onCellInfoChanged(in List cellInfo); void onPreciseCallStateChanged(in PreciseCallState callState); diff --git a/core/java/com/android/internal/telephony/ITelephonyRegistry.aidl b/core/java/com/android/internal/telephony/ITelephonyRegistry.aidl index 9ae0ba555bdf4..2f34aa087b304 100644 --- a/core/java/com/android/internal/telephony/ITelephonyRegistry.aidl +++ b/core/java/com/android/internal/telephony/ITelephonyRegistry.aidl @@ -24,7 +24,6 @@ import android.telephony.CallQuality; import android.telephony.CellInfo; import android.telephony.ims.ImsReasonInfo; import android.telephony.PhoneCapability; -import android.telephony.PhysicalChannelConfig; import android.telephony.ServiceState; import android.telephony.SignalStrength; import android.telephony.emergency.EmergencyNumber; @@ -78,8 +77,6 @@ interface ITelephonyRegistry { void notifyOtaspChanged(in int subId, in int otaspMode); @UnsupportedAppUsage void notifyCellInfo(in List cellInfo); - void notifyPhysicalChannelConfigurationForSubscriber(in int phoneId, in int subId, - in List configs); void notifyPreciseCallState(int phoneId, int subId, int ringingCallState, int foregroundCallState, int backgroundCallState); void notifyDisconnectCause(int phoneId, int subId, int disconnectCause, diff --git a/services/core/java/com/android/server/TelephonyRegistry.java b/services/core/java/com/android/server/TelephonyRegistry.java index dc61261876ff4..2d9af28e2786d 100644 --- a/services/core/java/com/android/server/TelephonyRegistry.java +++ b/services/core/java/com/android/server/TelephonyRegistry.java @@ -50,7 +50,6 @@ import android.telephony.DisconnectCause; import android.telephony.LocationAccessPolicy; import android.telephony.PhoneCapability; import android.telephony.PhoneStateListener; -import android.telephony.PhysicalChannelConfig; import android.telephony.PreciseCallState; import android.telephony.PreciseDataConnectionState; import android.telephony.PreciseDisconnectCause; @@ -213,8 +212,6 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { private ArrayList> mCellInfo = null; - private ArrayList> mPhysicalChannelConfigs; - private Map> mEmergencyNumberList; private EmergencyNumber[] mOutgoingSmsEmergencyNumber; @@ -424,7 +421,6 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { if (mNumPhones < oldNumPhones) { cutListToSize(mCellInfo, mNumPhones); cutListToSize(mImsReasonInfo, mNumPhones); - cutListToSize(mPhysicalChannelConfigs, mNumPhones); return; } @@ -445,7 +441,6 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { mCellInfo.add(i, null); mImsReasonInfo.add(i, null); mSrvccState[i] = TelephonyManager.SRVCC_STATE_HANDOVER_NONE; - mPhysicalChannelConfigs.add(i, new ArrayList<>()); mOtaspMode[i] = TelephonyManager.OTASP_UNKNOWN; mCallDisconnectCause[i] = DisconnectCause.NOT_VALID; mCallPreciseDisconnectCause[i] = PreciseDisconnectCause.NOT_VALID; @@ -522,7 +517,6 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { mPreciseDataConnectionState = new PreciseDataConnectionState[numPhones]; mCellInfo = new ArrayList<>(); mImsReasonInfo = new ArrayList<>(); - mPhysicalChannelConfigs = new ArrayList<>(); mEmergencyNumberList = new HashMap<>(); mOutgoingCallEmergencyNumber = new EmergencyNumber[numPhones]; mOutgoingSmsEmergencyNumber = new EmergencyNumber[numPhones]; @@ -542,7 +536,6 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { mCellInfo.add(i, null); mImsReasonInfo.add(i, null); mSrvccState[i] = TelephonyManager.SRVCC_STATE_HANDOVER_NONE; - mPhysicalChannelConfigs.add(i, new ArrayList<>()); mOtaspMode[i] = TelephonyManager.OTASP_UNKNOWN; mCallDisconnectCause[i] = DisconnectCause.NOT_VALID; mCallPreciseDisconnectCause[i] = PreciseDisconnectCause.NOT_VALID; @@ -961,14 +954,6 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { remove(r.binder); } } - if ((events & PhoneStateListener.LISTEN_PHYSICAL_CHANNEL_CONFIGURATION) != 0) { - try { - r.callback.onPhysicalChannelConfigurationChanged( - mPhysicalChannelConfigs.get(phoneId)); - } catch (RemoteException ex) { - remove(r.binder); - } - } if ((events & PhoneStateListener.LISTEN_EMERGENCY_NUMBER_LIST) != 0) { try { r.callback.onEmergencyNumberListChanged(mEmergencyNumberList); @@ -1393,43 +1378,6 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { } } - /** - * Notify physical channel configuration according to subscripton ID and phone ID - */ - public void notifyPhysicalChannelConfigurationForSubscriber(int phoneId, int subId, - List configs) { - if (!checkNotifyPermission("notifyPhysicalChannelConfiguration()")) { - return; - } - - if (VDBG) { - log("notifyPhysicalChannelConfiguration: subId=" + subId + " phoneId=" + phoneId - + " configs=" + configs); - } - - synchronized (mRecords) { - if (validatePhoneId(phoneId)) { - mPhysicalChannelConfigs.set(phoneId, configs); - for (Record r : mRecords) { - if (r.matchPhoneStateListenerEvent( - PhoneStateListener.LISTEN_PHYSICAL_CHANNEL_CONFIGURATION) - && idMatch(r.subId, subId, phoneId)) { - try { - if (DBG_LOC) { - log("notifyPhysicalChannelConfiguration: mPhysicalChannelConfigs=" - + configs + " r=" + r); - } - r.callback.onPhysicalChannelConfigurationChanged(configs); - } catch (RemoteException ex) { - mRemoveList.add(r.binder); - } - } - } - } - handleRemoveListLocked(); - } - } - @Override public void notifyMessageWaitingChangedForPhoneId(int phoneId, int subId, boolean mwi) { if (!checkNotifyPermission("notifyMessageWaitingChanged()")) { diff --git a/telephony/java/android/telephony/PhoneCapability.java b/telephony/java/android/telephony/PhoneCapability.java index 17b7963f0194d..8a75831a75b85 100644 --- a/telephony/java/android/telephony/PhoneCapability.java +++ b/telephony/java/android/telephony/PhoneCapability.java @@ -16,6 +16,8 @@ package android.telephony; +import android.annotation.NonNull; +import android.annotation.SystemApi; import android.os.Parcel; import android.os.Parcelable; @@ -27,12 +29,13 @@ import java.util.Objects; /** * Define capability of a modem group. That is, the capabilities * are shared between those modems defined by list of modem IDs. - * @hide */ -public class PhoneCapability implements Parcelable { +public final class PhoneCapability implements Parcelable { // Hardcoded default DSDS capability. + /** @hide */ public static final PhoneCapability DEFAULT_DSDS_CAPABILITY; // Hardcoded default Single SIM single standby capability. + /** @hide */ public static final PhoneCapability DEFAULT_SSSS_CAPABILITY; static { @@ -48,13 +51,18 @@ public class PhoneCapability implements Parcelable { logicalModemList.add(modemInfo1); DEFAULT_SSSS_CAPABILITY = new PhoneCapability(1, 1, 0, logicalModemList, false); } - + /** @hide */ public final int maxActiveVoiceCalls; + /** @hide */ public final int maxActiveData; + /** @hide */ public final int max5G; + /** @hide */ public final boolean validationBeforeSwitchSupported; + /** @hide */ public final List logicalModemList; + /** @hide */ public PhoneCapability(int maxActiveVoiceCalls, int maxActiveData, int max5G, List logicalModemList, boolean validationBeforeSwitchSupported) { this.maxActiveVoiceCalls = maxActiveVoiceCalls; @@ -116,7 +124,7 @@ public class PhoneCapability implements Parcelable { /** * {@link Parcelable#writeToParcel} */ - public void writeToParcel(Parcel dest, @Parcelable.WriteFlags int flags) { + public void writeToParcel(@NonNull Parcel dest, @Parcelable.WriteFlags int flags) { dest.writeInt(maxActiveVoiceCalls); dest.writeInt(maxActiveData); dest.writeInt(max5G);