Merge "Move android.compat.annotation package out of libcore"
diff --git a/Android.bp b/Android.bp
index 61afe2a..891ee91 100644
--- a/Android.bp
+++ b/Android.bp
@@ -970,21 +970,6 @@
"--hide HiddenSuperclass --hide DeprecationMismatch --hide UnavailableSymbol " +
"--hide SdkConstant --hide HiddenTypeParameter --hide Todo --hide Typo "
-// http://b/129765390 Rewrite links to "platform" or "technotes" folders
-// which are siblings (and thus outside of) {@docRoot}.
-//
-// We have to escape \ as \\ and $ as $$ here because they get resolved by
-// different layers of the build tooling. The arguments are wrapped in '' so
-// that the shell doesn't add yet another level of escaping.
-metalava_framework_docs_args += " --replace-documentation " +
- // packages whose descendants to apply replacement to (all packages from
- // libcore/ojluni/src/main/java that contribute to documentation).
- "com.sun:java:javax:jdk.net:sun " +
- // regex of the string to replace
- "'(<a\\s+href\\s?=[\\*\\s]*\")(?:(?:\\{@docRoot\\}/\\.\\./)|(?:(?:\\.\\./)+))((?:platform|technotes).+)\">' " +
- // replacement (with $1, $2 backreferences to the regex groups)
- "'$$1https://docs.oracle.com/javase/8/docs/$$2\">' "
-
packages_to_document = [
"android",
"dalvik",
diff --git a/api/current.txt b/api/current.txt
index ce4cb25..98f35ee 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -36911,6 +36911,7 @@
field public static final String DURATION = "duration";
field public static final String EXTRA_CALL_TYPE_FILTER = "android.provider.extra.CALL_TYPE_FILTER";
field public static final String FEATURES = "features";
+ field public static final int FEATURES_ASSISTED_DIALING_USED = 16; // 0x10
field public static final int FEATURES_HD_CALL = 4; // 0x4
field public static final int FEATURES_PULLED_EXTERNALLY = 2; // 0x2
field public static final int FEATURES_RTT = 32; // 0x20
@@ -43136,6 +43137,7 @@
field public static final int DIRECTION_INCOMING = 0; // 0x0
field public static final int DIRECTION_OUTGOING = 1; // 0x1
field public static final int DIRECTION_UNKNOWN = -1; // 0xffffffff
+ field public static final int PROPERTY_ASSISTED_DIALING_USED = 512; // 0x200
field public static final int PROPERTY_CONFERENCE = 1; // 0x1
field public static final int PROPERTY_EMERGENCY_CALLBACK_MODE = 4; // 0x4
field public static final int PROPERTY_ENTERPRISE_CALL = 32; // 0x20
@@ -43249,6 +43251,7 @@
method public final void removeConnection(android.telecom.Connection);
method public final void removeExtras(java.util.List<java.lang.String>);
method public final void removeExtras(java.lang.String...);
+ method public void sendConferenceEvent(@NonNull String, @Nullable android.os.Bundle);
method public final void setActive();
method public final void setConferenceableConnections(java.util.List<android.telecom.Connection>);
method public final void setConnectionCapabilities(int);
@@ -43388,6 +43391,7 @@
field public static final String EXTRA_IS_RTT_AUDIO_PRESENT = "android.telecom.extra.IS_RTT_AUDIO_PRESENT";
field public static final String EXTRA_LAST_FORWARDED_NUMBER = "android.telecom.extra.LAST_FORWARDED_NUMBER";
field public static final String EXTRA_SIP_INVITE = "android.telecom.extra.SIP_INVITE";
+ field public static final int PROPERTY_ASSISTED_DIALING_USED = 512; // 0x200
field public static final int PROPERTY_HAS_CDMA_VOICE_PRIVACY = 32; // 0x20
field public static final int PROPERTY_HIGH_DEF_AUDIO = 4; // 0x4
field public static final int PROPERTY_IS_EXTERNAL_CALL = 16; // 0x10
@@ -43802,6 +43806,7 @@
method public android.telecom.PhoneAccount getPhoneAccount(android.telecom.PhoneAccountHandle);
method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public java.util.List<android.telecom.PhoneAccountHandle> getSelfManagedPhoneAccounts();
method public android.telecom.PhoneAccountHandle getSimCallManager();
+ method @Nullable public android.telecom.PhoneAccountHandle getSimCallManagerForSubscription(int);
method @Nullable public String getSystemDialerPackage();
method @Nullable @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public android.telecom.PhoneAccountHandle getUserSelectedOutgoingPhoneAccount();
method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String getVoiceMailNumber(android.telecom.PhoneAccountHandle);
@@ -43850,6 +43855,7 @@
field public static final String EXTRA_START_CALL_WITH_RTT = "android.telecom.extra.START_CALL_WITH_RTT";
field public static final String EXTRA_START_CALL_WITH_SPEAKERPHONE = "android.telecom.extra.START_CALL_WITH_SPEAKERPHONE";
field public static final String EXTRA_START_CALL_WITH_VIDEO_STATE = "android.telecom.extra.START_CALL_WITH_VIDEO_STATE";
+ field public static final String EXTRA_USE_ASSISTED_DIALING = "android.telecom.extra.USE_ASSISTED_DIALING";
field public static final String GATEWAY_ORIGINAL_ADDRESS = "android.telecom.extra.GATEWAY_ORIGINAL_ADDRESS";
field public static final String GATEWAY_PROVIDER_PACKAGE = "android.telecom.extra.GATEWAY_PROVIDER_PACKAGE";
field public static final String METADATA_INCLUDE_EXTERNAL_CALLS = "android.telecom.INCLUDE_EXTERNAL_CALLS";
@@ -45039,7 +45045,7 @@
method public int getDataState();
method @Deprecated @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public String getDeviceId();
method @Deprecated @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public String getDeviceId(int);
- method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String getDeviceSoftwareVersion();
+ method @Nullable @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String getDeviceSoftwareVersion();
method @NonNull @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public java.util.Map<java.lang.Integer,java.util.List<android.telephony.emergency.EmergencyNumber>> getEmergencyNumberList();
method @NonNull @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public java.util.Map<java.lang.Integer,java.util.List<android.telephony.emergency.EmergencyNumber>> getEmergencyNumberList(int);
method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String[] getForbiddenPlmns();
@@ -45075,8 +45081,8 @@
method @Nullable public CharSequence getSimSpecificCarrierIdName();
method public int getSimState();
method public int getSimState(int);
- method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public int getSubIdForPhoneAccountHandle(@NonNull android.telecom.PhoneAccountHandle);
method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public String getSubscriberId();
+ method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public int getSubscriptionId(@NonNull android.telecom.PhoneAccountHandle);
method public int getSupportedModemCount();
method @Nullable public String getTypeAllocationCode();
method @Nullable public String getTypeAllocationCode(int);
diff --git a/api/system-current.txt b/api/system-current.txt
index 3393112..48d453e 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -6958,14 +6958,18 @@
public abstract class Conference extends android.telecom.Conferenceable {
method @Deprecated public final android.telecom.AudioState getAudioState();
method @Deprecated public final long getConnectTimeMillis();
+ method public final long getConnectionStartElapsedRealTime();
method public android.telecom.Connection getPrimaryConnection();
+ method @NonNull public final String getTelecomCallId();
method @Deprecated public void onAudioStateChanged(android.telecom.AudioState);
+ method public final void setAddress(@NonNull android.net.Uri, int);
+ method public final void setCallerDisplayName(@NonNull String, int);
+ method public void setConferenceState(boolean);
method @Deprecated public final void setConnectTimeMillis(long);
}
public abstract class Connection extends android.telecom.Conferenceable {
method @Deprecated public final android.telecom.AudioState getAudioState();
- method public final int getCallRadioTech();
method public final long getConnectElapsedTimeMillis();
method public final long getConnectTimeMillis();
method @Nullable public android.telecom.PhoneAccountHandle getPhoneAccountHandle();
@@ -6973,7 +6977,6 @@
method @Deprecated public void onAudioStateChanged(android.telecom.AudioState);
method public final void resetConnectionTime();
method public void setCallDirection(int);
- method public final void setCallRadioTech(int);
method public final void setConnectTimeMillis(long);
method public final void setConnectionStartElapsedRealTime(long);
method public void setPhoneAccountHandle(@NonNull android.telecom.PhoneAccountHandle);
@@ -6987,6 +6990,10 @@
field public static final int PROPERTY_REMOTELY_HOSTED = 2048; // 0x800
}
+ public abstract class ConnectionService extends android.app.Service {
+ method public final void addExistingConnection(@NonNull android.telecom.PhoneAccountHandle, @NonNull android.telecom.Connection, @NonNull android.telecom.Conference);
+ }
+
public abstract class InCallService extends android.app.Service {
method @Deprecated public android.telecom.Phone getPhone();
method @Deprecated public void onPhoneCreated(android.telecom.Phone);
@@ -7118,6 +7125,10 @@
field public static final int CAPABILITY_MULTI_USER = 32; // 0x20
}
+ public static class PhoneAccount.Builder {
+ method @NonNull public android.telecom.PhoneAccount.Builder setGroupId(@NonNull String);
+ }
+
public class PhoneAccountSuggestionService extends android.app.Service {
ctor public PhoneAccountSuggestionService();
method public void onAccountSuggestionRequest(@NonNull String);
@@ -7188,6 +7199,7 @@
method public int getCallState();
method public android.telecom.PhoneAccountHandle getConnectionManager();
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getCurrentTtyMode();
+ method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getDefaultDialerPackage(int);
method @Deprecated public android.content.ComponentName getDefaultPhoneApp();
method public java.util.List<android.telecom.PhoneAccountHandle> getPhoneAccountsForPackage();
method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public java.util.List<android.telecom.PhoneAccountHandle> getPhoneAccountsSupportingScheme(String);
@@ -8204,6 +8216,7 @@
method @Deprecated public boolean getDataEnabled();
method @Deprecated public boolean getDataEnabled(int);
method @Nullable public static android.content.ComponentName getDefaultRespondViaMessageApplication(@NonNull android.content.Context, boolean);
+ method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getDeviceSoftwareVersion(int);
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean getEmergencyCallbackMode();
method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getIsimDomain();
method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getIsimIst();
@@ -8238,6 +8251,7 @@
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isPotentialEmergencyNumber(@NonNull String);
method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isRadioOn();
method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isRinging();
+ method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isTetherApnRequired();
method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isVideoCallingEnabled();
method @Deprecated @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public boolean isVisualVoicemailEnabled(android.telecom.PhoneAccountHandle);
method public boolean needsOtaServiceProvisioning();
diff --git a/api/test-current.txt b/api/test-current.txt
index 293ca55..263dbae 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -2754,7 +2754,36 @@
}
public abstract class Conference extends android.telecom.Conferenceable {
+ method public final long getConnectionStartElapsedRealTime();
method public android.telecom.Connection getPrimaryConnection();
+ method @NonNull public final String getTelecomCallId();
+ method public final void setAddress(@NonNull android.net.Uri, int);
+ method public final void setCallerDisplayName(@NonNull String, int);
+ method public void setConferenceState(boolean);
+ }
+
+ public abstract class Connection extends android.telecom.Conferenceable {
+ method public final long getConnectElapsedTimeMillis();
+ method public final long getConnectTimeMillis();
+ method @Nullable public android.telecom.PhoneAccountHandle getPhoneAccountHandle();
+ method @Nullable public final String getTelecomCallId();
+ method public final void resetConnectionTime();
+ method public void setCallDirection(int);
+ method public final void setConnectTimeMillis(long);
+ method public final void setConnectionStartElapsedRealTime(long);
+ method public void setPhoneAccountHandle(@NonNull android.telecom.PhoneAccountHandle);
+ method public void setTelecomCallId(@NonNull String);
+ field public static final int CAPABILITY_CONFERENCE_HAS_NO_CHILDREN = 2097152; // 0x200000
+ field public static final int CAPABILITY_SPEED_UP_MT_AUDIO = 262144; // 0x40000
+ field public static final String EXTRA_DISABLE_ADD_CALL = "android.telecom.extra.DISABLE_ADD_CALL";
+ field public static final int PROPERTY_EMERGENCY_CALLBACK_MODE = 1; // 0x1
+ field public static final int PROPERTY_GENERIC_CONFERENCE = 2; // 0x2
+ field public static final int PROPERTY_IS_DOWNGRADED_CONFERENCE = 64; // 0x40
+ field public static final int PROPERTY_REMOTELY_HOSTED = 2048; // 0x800
+ }
+
+ public static class PhoneAccount.Builder {
+ method @NonNull public android.telecom.PhoneAccount.Builder setGroupId(@NonNull String);
}
public class PhoneAccountSuggestionService extends android.app.Service {
@@ -2767,6 +2796,7 @@
public class TelecomManager {
method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public int getCurrentTtyMode();
+ method @Nullable @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public String getDefaultDialerPackage(int);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean isInEmergencyCall();
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setUserSelectedOutgoingPhoneAccount(@Nullable android.telecom.PhoneAccountHandle);
field public static final int TTY_MODE_FULL = 1; // 0x1
diff --git a/cmds/am/src/com/android/commands/am/Am.java b/cmds/am/src/com/android/commands/am/Am.java
index 41d546f..22e1d01 100644
--- a/cmds/am/src/com/android/commands/am/Am.java
+++ b/cmds/am/src/com/android/commands/am/Am.java
@@ -174,6 +174,8 @@
instrument.noWindowAnimation = true;
} else if (opt.equals("--no-hidden-api-checks")) {
instrument.disableHiddenApiChecks = true;
+ } else if (opt.equals("--no-test-api-checks")) {
+ instrument.disableTestApiChecks = true;
} else if (opt.equals("--no-isolated-storage")) {
instrument.disableIsolatedStorage = true;
} else if (opt.equals("--user")) {
diff --git a/cmds/am/src/com/android/commands/am/Instrument.java b/cmds/am/src/com/android/commands/am/Instrument.java
index 4d7b5a7..6afd7c4 100644
--- a/cmds/am/src/com/android/commands/am/Instrument.java
+++ b/cmds/am/src/com/android/commands/am/Instrument.java
@@ -17,6 +17,7 @@
package com.android.commands.am;
import static android.app.ActivityManager.INSTR_FLAG_DISABLE_HIDDEN_API_CHECKS;
+import static android.app.ActivityManager.INSTR_FLAG_DISABLE_TEST_API_CHECKS;
import static android.app.ActivityManager.INSTR_FLAG_MOUNT_EXTERNAL_STORAGE_FULL;
import android.app.IActivityManager;
@@ -85,6 +86,7 @@
String logPath = null;
public boolean noWindowAnimation = false;
public boolean disableHiddenApiChecks = false;
+ public boolean disableTestApiChecks = false;
public boolean disableIsolatedStorage = false;
public String abi = null;
public int userId = UserHandle.USER_CURRENT;
@@ -506,6 +508,9 @@
if (disableHiddenApiChecks) {
flags |= INSTR_FLAG_DISABLE_HIDDEN_API_CHECKS;
}
+ if (disableTestApiChecks) {
+ flags |= INSTR_FLAG_DISABLE_TEST_API_CHECKS;
+ }
if (disableIsolatedStorage) {
flags |= INSTR_FLAG_MOUNT_EXTERNAL_STORAGE_FULL;
}
diff --git a/cmds/statsd/src/atoms.proto b/cmds/statsd/src/atoms.proto
index 847c298..8a8df38 100644
--- a/cmds/statsd/src/atoms.proto
+++ b/cmds/statsd/src/atoms.proto
@@ -324,6 +324,8 @@
AppCompatibilityChangeReported app_compatibility_change_reported =
228 [(allow_from_any_uid) = true];
+ PerfettoUploaded perfetto_uploaded =
+ 229 [(log_from_module) = "perfetto"];
}
// Pulled events will start at field 10000.
@@ -6857,3 +6859,37 @@
optional Source source = 4;
}
+
+/**
+ * Logged from
+ * external/perfetto/src/perfetto_cmd/perfetto_cmd.cc
+ */
+message PerfettoUploaded {
+ enum Event {
+ PERFETTO_UNDEFINED = 0;
+ PERFETTO_TRACE_BEGIN = 1;
+ PERFETTO_BACKGROUND_TRACE_BEGIN = 2;
+ PERFETTO_ON_CONNECT = 3;
+ PERFETTO_ON_TRACING_DISABLED = 4;
+ PERFETTO_UPLOAD_DROPBOX_BEGIN = 5;
+ PERFETTO_UPLOAD_DROPBOX_SUCCESS = 6;
+ PERFETTO_UPLOAD_DROPBOX_FAILURE = 7;
+ PERFETTO_UPLOAD_INCIDENT_BEGIN = 8;
+ PERFETTO_UPLOAD_INCIDENT_SUCCESS = 9;
+ PERFETTO_UPLOAD_INCIDENT_FAILURE = 10;
+ PERFETTO_FINALIZE_TRACE_AND_EXIT = 11;
+ PERFETTO_TRIGGER_BEGIN = 12;
+ PERFETTO_TRIGGER_SUCCESS = 13;
+ PERFETTO_TRIGGER_FAILURE = 14;
+ PERFETTO_HIT_GUARDRAILS = 15;
+ PERFETTO_ON_TIMEOUT = 16;
+ PERFETTO_NOT_UPLOADING_EMPTY_TRACE = 17;
+ }
+
+ // Which stage of the pipeline we are reporting from.
+ optional Event event = 1;
+
+ // UUID matching the one set inside the SystemInfo trace packet.
+ optional int64 trace_uuid_lsb = 2;
+ optional int64 trace_uuid_msb = 3;
+}
diff --git a/config/hiddenapi-greylist.txt b/config/hiddenapi-greylist.txt
index 2611e96..2d3394b 100644
--- a/config/hiddenapi-greylist.txt
+++ b/config/hiddenapi-greylist.txt
@@ -1,6 +1,4 @@
Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub;->asInterface(Landroid/os/IBinder;)Landroid/accessibilityservice/IAccessibilityServiceConnection;
-Landroid/accounts/AccountManager$AmsTask;-><init>(Landroid/accounts/AccountManager;Landroid/app/Activity;Landroid/os/Handler;Landroid/accounts/AccountManagerCallback;)V
-Landroid/accounts/AccountManager$Future2Task;-><init>(Landroid/accounts/AccountManager;Landroid/os/Handler;Landroid/accounts/AccountManagerCallback;)V
Landroid/accounts/IAccountAuthenticator$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
Landroid/accounts/IAccountAuthenticator$Stub$Proxy;->mRemote:Landroid/os/IBinder;
Landroid/accounts/IAccountAuthenticator$Stub;-><init>()V
@@ -16,10 +14,6 @@
Landroid/accounts/IAccountManagerResponse$Stub$Proxy;->mRemote:Landroid/os/IBinder;
Landroid/accounts/IAccountManagerResponse$Stub;-><init>()V
Landroid/accounts/IAccountManagerResponse$Stub;->asInterface(Landroid/os/IBinder;)Landroid/accounts/IAccountManagerResponse;
-Landroid/app/ActivityManagerNative;-><init>()V
-Landroid/app/ActivityThread$AppBindData;-><init>()V
-Landroid/app/ActivityThread$CreateServiceData;-><init>()V
-Landroid/app/ActivityThread$H;-><init>(Landroid/app/ActivityThread;)V
Landroid/app/admin/IDevicePolicyManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/admin/IDevicePolicyManager;
Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_packageHasActiveAdmins:I
Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_removeActiveAdmin:I
@@ -35,8 +29,6 @@
Landroid/app/IActivityManager$Stub$Proxy;->setActivityController(Landroid/app/IActivityController;Z)V
Landroid/app/IActivityManager$Stub$Proxy;->updatePersistentConfiguration(Landroid/content/res/Configuration;)V
Landroid/app/IActivityManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IActivityManager;
-Landroid/app/IActivityManager;->finishReceiver(Landroid/os/IBinder;ILjava/lang/String;Landroid/os/Bundle;ZI)V
-Landroid/app/IActivityManager;->serviceDoneExecuting(Landroid/os/IBinder;III)V
Landroid/app/IAlarmManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
Landroid/app/IAlarmManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IAlarmManager;
Landroid/app/IAlarmManager$Stub;->TRANSACTION_remove:I
@@ -73,56 +65,25 @@
Landroid/app/job/IJobService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
Landroid/app/job/IJobService$Stub;-><init>()V
Landroid/app/job/IJobService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/job/IJobService;
-Landroid/app/PackageDeleteObserver;-><init>()V
-Landroid/app/PackageInstallObserver;-><init>()V
-Landroid/app/ResourcesManager$ActivityResources;-><init>()V
-Landroid/app/ResourcesManager;-><init>()V
-Landroid/app/TaskStackListener;-><init>()V
Landroid/app/trust/ITrustManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-Landroid/app/UiAutomationConnection;-><init>()V
Landroid/app/usage/IUsageStatsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/usage/IUsageStatsManager;
-Landroid/app/UserSwitchObserver;-><init>()V
Landroid/bluetooth/IBluetooth$Stub$Proxy;->getAddress()Ljava/lang/String;
Landroid/bluetooth/IBluetooth$Stub$Proxy;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
Landroid/bluetooth/IBluetooth$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetooth;
Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_enable:I
-Landroid/bluetooth/IBluetooth;->fetchRemoteUuids(Landroid/bluetooth/BluetoothDevice;)Z
-Landroid/bluetooth/IBluetooth;->getAddress()Ljava/lang/String;
-Landroid/bluetooth/IBluetooth;->getRemoteAlias(Landroid/bluetooth/BluetoothDevice;)Ljava/lang/String;
-Landroid/bluetooth/IBluetooth;->isEnabled()Z
-Landroid/bluetooth/IBluetooth;->sendConnectionStateChange(Landroid/bluetooth/BluetoothDevice;III)V
Landroid/bluetooth/IBluetoothA2dp$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothA2dp;
-Landroid/bluetooth/IBluetoothA2dp;->connect(Landroid/bluetooth/BluetoothDevice;)Z
-Landroid/bluetooth/IBluetoothA2dp;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
-Landroid/bluetooth/IBluetoothA2dp;->getConnectedDevices()Ljava/util/List;
-Landroid/bluetooth/IBluetoothA2dp;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
-Landroid/bluetooth/IBluetoothA2dp;->getDevicesMatchingConnectionStates([I)Ljava/util/List;
-Landroid/bluetooth/IBluetoothA2dp;->getPriority(Landroid/bluetooth/BluetoothDevice;)I
Landroid/bluetooth/IBluetoothCallback$Stub;-><init>()V
-Landroid/bluetooth/IBluetoothGatt;->registerClient(Landroid/os/ParcelUuid;Landroid/bluetooth/IBluetoothGattCallback;)V
-Landroid/bluetooth/IBluetoothGatt;->unregisterClient(I)V
Landroid/bluetooth/IBluetoothGattCallback$Stub;-><init>()V
Landroid/bluetooth/IBluetoothGattCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothGattCallback;
Landroid/bluetooth/IBluetoothHeadset$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothHeadset;
-Landroid/bluetooth/IBluetoothHeadset;->connect(Landroid/bluetooth/BluetoothDevice;)Z
-Landroid/bluetooth/IBluetoothHeadset;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
-Landroid/bluetooth/IBluetoothHeadset;->getConnectedDevices()Ljava/util/List;
-Landroid/bluetooth/IBluetoothHeadset;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
-Landroid/bluetooth/IBluetoothHeadset;->getPriority(Landroid/bluetooth/BluetoothDevice;)I
-Landroid/bluetooth/IBluetoothHeadset;->setPriority(Landroid/bluetooth/BluetoothDevice;I)Z
Landroid/bluetooth/IBluetoothHidDeviceCallback$Stub;-><init>()V
Landroid/bluetooth/IBluetoothManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
Landroid/bluetooth/IBluetoothManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothManager;
Landroid/bluetooth/IBluetoothManager$Stub;->TRANSACTION_enable:I
-Landroid/bluetooth/IBluetoothManager;->getBluetoothGatt()Landroid/bluetooth/IBluetoothGatt;
-Landroid/bluetooth/IBluetoothManager;->registerStateChangeCallback(Landroid/bluetooth/IBluetoothStateChangeCallback;)V
-Landroid/bluetooth/IBluetoothManager;->unregisterStateChangeCallback(Landroid/bluetooth/IBluetoothStateChangeCallback;)V
Landroid/bluetooth/IBluetoothManagerCallback$Stub;-><init>()V
Landroid/bluetooth/IBluetoothPbap$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothPbap;
Landroid/bluetooth/IBluetoothStateChangeCallback$Stub;-><init>()V
Landroid/companion/ICompanionDeviceDiscoveryService$Stub;-><init>()V
-Landroid/companion/ICompanionDeviceDiscoveryServiceCallback;->onDeviceSelected(Ljava/lang/String;ILjava/lang/String;)V
-Landroid/companion/ICompanionDeviceDiscoveryServiceCallback;->onDeviceSelectionCancel()V
Landroid/content/IClipboard$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
Landroid/content/IClipboard$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/IClipboard;
Landroid/content/IContentService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
@@ -189,14 +150,8 @@
Landroid/content/pm/IPackageStatsObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageStatsObserver;
Landroid/content/pm/IShortcutService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
Landroid/content/pm/IShortcutService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IShortcutService;
-Landroid/content/res/ConfigurationBoundResourceCache;-><init>()V
-Landroid/content/res/DrawableCache;-><init>()V
-Landroid/content/UndoManager;-><init>()V
Landroid/database/IContentObserver$Stub;-><init>()V
Landroid/database/IContentObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/database/IContentObserver;
-Landroid/database/IContentObserver;->onChange(ZLandroid/net/Uri;I)V
-Landroid/database/sqlite/SQLiteConnectionPool;->$assertionsDisabled:Z
-Landroid/database/sqlite/SQLiteDatabase;->$assertionsDisabled:Z
Landroid/hardware/display/IDisplayManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/display/IDisplayManager;
Landroid/hardware/fingerprint/IFingerprintService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
Landroid/hardware/fingerprint/IFingerprintService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/fingerprint/IFingerprintService;
@@ -221,7 +176,6 @@
Landroid/location/ILocationManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/location/ILocationManager;
Landroid/location/ILocationManager$Stub;->TRANSACTION_getAllProviders:I
Landroid/location/INetInitiatedListener$Stub;-><init>()V
-Landroid/location/LocationManager$ListenerTransport;-><init>(Landroid/location/LocationManager;Landroid/location/LocationListener;Landroid/os/Looper;)V
Landroid/Manifest$permission;->CAPTURE_SECURE_VIDEO_OUTPUT:Ljava/lang/String;
Landroid/Manifest$permission;->CAPTURE_VIDEO_OUTPUT:Ljava/lang/String;
Landroid/Manifest$permission;->READ_FRAME_BUFFER:Ljava/lang/String;
@@ -232,13 +186,9 @@
Landroid/media/IMediaRouterService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IMediaRouterService;
Landroid/media/IMediaScannerListener$Stub;-><init>()V
Landroid/media/IMediaScannerService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IMediaScannerService;
-Landroid/media/IRingtonePlayer;->play(Landroid/os/IBinder;Landroid/net/Uri;Landroid/media/AudioAttributes;FZ)V
Landroid/media/IVolumeController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IVolumeController;
-Landroid/media/MediaFile;-><init>()V
-Landroid/media/MediaScanner$MyMediaScannerClient;-><init>(Landroid/media/MediaScanner;)V
Landroid/media/session/ISessionManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/session/ISessionManager;
Landroid/media/tv/ITvRemoteProvider$Stub;-><init>()V
-Landroid/net/ConnectivityManager$PacketKeepaliveCallback;-><init>()V
Landroid/net/IConnectivityManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
Landroid/net/IConnectivityManager$Stub$Proxy;->getActiveLinkProperties()Landroid/net/LinkProperties;
Landroid/net/IConnectivityManager$Stub$Proxy;->getActiveNetworkInfo()Landroid/net/NetworkInfo;
@@ -256,12 +206,8 @@
Landroid/net/INetworkStatsService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
Landroid/net/INetworkStatsService$Stub$Proxy;->getMobileIfaces()[Ljava/lang/String;
Landroid/net/INetworkStatsService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkStatsService;
-Landroid/net/InterfaceConfiguration;-><init>()V
-Landroid/net/LinkProperties$ProvisioningChange;->values()[Landroid/net/LinkProperties$ProvisioningChange;
-Landroid/net/MobileLinkQualityInfo;-><init>()V
Landroid/net/nsd/INsdManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/nsd/INsdManager;
Landroid/net/sip/ISipSession$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/sip/ISipSession;
-Landroid/net/SntpClient;-><init>()V
Landroid/net/wifi/IWifiManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
Landroid/net/wifi/IWifiManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/IWifiManager;
Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_getScanResults:I
@@ -271,16 +217,11 @@
Landroid/net/wifi/IWifiScanner$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/IWifiScanner;
Landroid/net/wifi/p2p/IWifiP2pManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/p2p/IWifiP2pManager;
Landroid/nfc/INfcAdapter$Stub;->TRANSACTION_enable:I
-Landroid/os/BatteryStats$Uid$Proc$ExcessivePower;-><init>()V
-Landroid/os/BatteryStats$Uid;-><init>()V
Landroid/os/IBatteryPropertiesRegistrar$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
Landroid/os/IDeviceIdentifiersPolicyService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IDeviceIdentifiersPolicyService;
Landroid/os/IDeviceIdleController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IDeviceIdleController;
-Landroid/os/IDeviceIdleController;->getAppIdTempWhitelist()[I
-Landroid/os/IDeviceIdleController;->getFullPowerWhitelistExceptIdle()[Ljava/lang/String;
Landroid/os/INetworkManagementService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
Landroid/os/INetworkManagementService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/INetworkManagementService;
-Landroid/os/INetworkManagementService;->listTetheredInterfaces()[Ljava/lang/String;
Landroid/os/IPermissionController$Stub$Proxy;->checkPermission(Ljava/lang/String;II)Z
Landroid/os/IPermissionController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IPermissionController;
Landroid/os/IPowerManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
@@ -291,17 +232,12 @@
Landroid/os/IRecoverySystem$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IRecoverySystem;
Landroid/os/IRemoteCallback$Stub;-><init>()V
Landroid/os/IUpdateEngine$Stub;-><init>()V
-Landroid/os/IUpdateEngineCallback;->onStatusUpdate(IF)V
Landroid/os/IUserManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
Landroid/os/IUserManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IUserManager;
Landroid/os/IVibratorService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IVibratorService;
-Landroid/os/Parcel$ReadWriteHelper;-><init>()V
-Landroid/os/RegistrantList;-><init>()V
-Landroid/os/ServiceManager;-><init>()V
Landroid/os/storage/IObbActionListener$Stub;-><init>()V
Landroid/os/storage/IStorageManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
Landroid/os/storage/IStorageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/storage/IStorageManager;
-Landroid/os/storage/StorageEventListener;-><init>()V
Landroid/R$styleable;->ActionBar:[I
Landroid/R$styleable;->ActionBar_background:I
Landroid/R$styleable;->ActionBar_backgroundSplit:I
@@ -568,18 +504,7 @@
Landroid/R$styleable;->Window_windowFrame:I
Landroid/security/IKeyChainService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/security/IKeyChainService;
Landroid/security/keystore/IKeystoreService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/security/keystore/IKeystoreService;
-Landroid/security/keystore/IKeystoreService;->clear_uid(J)I
-Landroid/security/keystore/IKeystoreService;->del(Ljava/lang/String;I)I
-Landroid/security/keystore/IKeystoreService;->exist(Ljava/lang/String;I)I
-Landroid/security/keystore/IKeystoreService;->get(Ljava/lang/String;I)[B
-Landroid/security/keystore/IKeystoreService;->getState(I)I
-Landroid/security/keystore/IKeystoreService;->insert(Ljava/lang/String;[BII)I
-Landroid/security/keystore/IKeystoreService;->is_hardware_backed(Ljava/lang/String;)I
-Landroid/security/keystore/IKeystoreService;->list(Ljava/lang/String;I)[Ljava/lang/String;
-Landroid/security/keystore/IKeystoreService;->reset()I
-Landroid/security/keystore/IKeystoreService;->ungrant(Ljava/lang/String;I)I
Landroid/service/dreams/IDreamManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/dreams/IDreamManager;
-Landroid/service/dreams/IDreamManager;->getDreamComponents()[Landroid/content/ComponentName;
Landroid/service/euicc/IEuiccService$Stub;-><init>()V
Landroid/service/media/IMediaBrowserServiceCallbacks$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/media/IMediaBrowserServiceCallbacks;
Landroid/service/notification/INotificationListener$Stub;-><init>()V
@@ -587,18 +512,11 @@
Landroid/service/vr/IVrManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/vr/IVrManager;
Landroid/service/wallpaper/IWallpaperConnection$Stub;-><init>()V
Landroid/service/wallpaper/IWallpaperService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/wallpaper/IWallpaperService;
-Landroid/telephony/ims/compat/feature/MMTelFeature;-><init>()V
-Landroid/telephony/ims/compat/ImsService;-><init>()V
-Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;-><init>()V
-Landroid/telephony/ims/compat/stub/ImsUtListenerImplBase;-><init>()V
Landroid/telephony/mbms/IMbmsStreamingSessionCallback$Stub;-><init>()V
Landroid/telephony/mbms/IStreamingServiceCallback$Stub;-><init>()V
Landroid/telephony/mbms/vendor/IMbmsStreamingService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/telephony/mbms/vendor/IMbmsStreamingService;
-Landroid/telephony/TelephonyManager$MultiSimVariants;->values()[Landroid/telephony/TelephonyManager$MultiSimVariants;
-Landroid/util/Singleton;-><init>()V
Landroid/view/accessibility/IAccessibilityManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
Landroid/view/accessibility/IAccessibilityManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/accessibility/IAccessibilityManager;
-Landroid/view/AccessibilityIterators$AbstractTextSegmentIterator;-><init>()V
Landroid/view/autofill/IAutoFillManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
Landroid/view/autofill/IAutoFillManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/autofill/IAutoFillManager;
Landroid/view/IAppTransitionAnimationSpecsFuture$Stub;-><init>()V
@@ -617,30 +535,10 @@
Landroid/view/IWindowManager$Stub;-><init>()V
Landroid/view/IWindowManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IWindowManager;
Landroid/view/IWindowSession$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IWindowSession;
-Landroid/view/View$AttachInfo$InvalidateInfo;-><init>()V
-Landroid/view/View$CheckForLongPress;-><init>(Landroid/view/View;)V
-Landroid/view/View$ListenerInfo;-><init>()V
-Landroid/view/ViewTreeObserver$InternalInsetsInfo;-><init>()V
-Landroid/webkit/CacheManager$CacheResult;-><init>()V
Landroid/webkit/IWebViewUpdateService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
Landroid/webkit/IWebViewUpdateService$Stub$Proxy;->waitForAndGetProvider()Landroid/webkit/WebViewProviderResponse;
Landroid/webkit/IWebViewUpdateService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/webkit/IWebViewUpdateService;
-Landroid/widget/DigitalClock$FormatChangeObserver;-><init>(Landroid/widget/DigitalClock;)V
-Landroid/widget/QuickContactBadge$QueryHandler;-><init>(Landroid/widget/QuickContactBadge;Landroid/content/ContentResolver;)V
-Landroid/widget/RelativeLayout$DependencyGraph$Node;-><init>()V
-Landroid/widget/ScrollBarDrawable;-><init>()V
-Lcom/android/ims/ImsCall;->deflect(Ljava/lang/String;)V
-Lcom/android/ims/ImsCall;->isMultiparty()Z
-Lcom/android/ims/ImsCall;->reject(I)V
-Lcom/android/ims/ImsCall;->terminate(I)V
Lcom/android/ims/ImsConfigListener$Stub;-><init>()V
-Lcom/android/ims/ImsEcbm;->exitEmergencyCallbackMode()V
-Lcom/android/ims/ImsManager;->getConfigInterface()Lcom/android/ims/ImsConfig;
-Lcom/android/ims/ImsManager;->getInstance(Landroid/content/Context;I)Lcom/android/ims/ImsManager;
-Lcom/android/ims/ImsManager;->isEnhanced4gLteModeSettingEnabledByUser(Landroid/content/Context;)Z
-Lcom/android/ims/ImsManager;->isNonTtyOrTtyOnVolteEnabled(Landroid/content/Context;)Z
-Lcom/android/ims/ImsManager;->isVolteEnabledByPlatform(Landroid/content/Context;)Z
-Lcom/android/ims/ImsUtInterface;->queryCallForward(ILjava/lang/String;Landroid/os/Message;)V
Lcom/android/ims/internal/IImsCallSession$Stub;-><init>()V
Lcom/android/ims/internal/IImsCallSession$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/ims/internal/IImsCallSession;
Lcom/android/ims/internal/IImsConfig$Stub;-><init>()V
@@ -649,13 +547,10 @@
Lcom/android/ims/internal/IImsService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/ims/internal/IImsService;
Lcom/android/ims/internal/IImsUt$Stub;-><init>()V
Lcom/android/ims/internal/IImsVideoCallProvider$Stub;-><init>()V
-Lcom/android/ims/internal/ImsVideoCallProviderWrapper;-><init>(Lcom/android/ims/internal/IImsVideoCallProvider;)V
Lcom/android/ims/internal/uce/options/IOptionsService$Stub;-><init>()V
Lcom/android/ims/internal/uce/presence/IPresenceService$Stub;-><init>()V
Lcom/android/ims/internal/uce/uceservice/IUceListener$Stub;-><init>()V
Lcom/android/ims/internal/uce/uceservice/IUceService$Stub;-><init>()V
-Lcom/android/internal/app/AlertActivity;-><init>()V
-Lcom/android/internal/app/ChooserActivity;-><init>()V
Lcom/android/internal/app/IAppOpsCallback$Stub;-><init>()V
Lcom/android/internal/app/IAppOpsService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
Lcom/android/internal/app/IAppOpsService$Stub$Proxy;->checkOperation(IILjava/lang/String;)I
@@ -684,35 +579,16 @@
Lcom/android/internal/app/IMediaContainerService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IMediaContainerService;
Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->showSessionFromSession(Landroid/os/IBinder;Landroid/os/Bundle;I)Z
Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IVoiceInteractionManagerService;
-Lcom/android/internal/app/ResolverActivity;-><init>()V
Lcom/android/internal/appwidget/IAppWidgetService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/appwidget/IAppWidgetService;
Lcom/android/internal/appwidget/IAppWidgetService$Stub;->TRANSACTION_bindAppWidgetId:I
Lcom/android/internal/backup/IBackupTransport$Stub;-><init>()V
-Lcom/android/internal/content/PackageMonitor;-><init>()V
-Lcom/android/internal/location/GpsNetInitiatedHandler$GpsNiNotification;-><init>()V
-Lcom/android/internal/location/GpsNetInitiatedHandler$GpsNiNotification;->requestorId:Ljava/lang/String;
-Lcom/android/internal/location/GpsNetInitiatedHandler$GpsNiNotification;->requestorIdEncoding:I
-Lcom/android/internal/location/GpsNetInitiatedHandler$GpsNiNotification;->text:Ljava/lang/String;
-Lcom/android/internal/location/GpsNetInitiatedHandler$GpsNiNotification;->textEncoding:I
-Lcom/android/internal/location/GpsNetInitiatedHandler;->decodeString(Ljava/lang/String;ZI)Ljava/lang/String;
-Lcom/android/internal/location/GpsNetInitiatedHandler;->handleNiNotification(Lcom/android/internal/location/GpsNetInitiatedHandler$GpsNiNotification;)V
-Lcom/android/internal/location/GpsNetInitiatedHandler;->mIsHexInput:Z
Lcom/android/internal/location/ILocationProvider$Stub;-><init>()V
Lcom/android/internal/location/ILocationProvider$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/location/ILocationProvider;
-Lcom/android/internal/location/ILocationProvider;->sendExtraCommand(Ljava/lang/String;Landroid/os/Bundle;)V
-Lcom/android/internal/location/ILocationProvider;->setLocationProviderManager(Lcom/android/internal/location/ILocationProviderManager;)V
-Lcom/android/internal/location/ILocationProvider;->setRequest(Lcom/android/internal/location/ProviderRequest;Landroid/os/WorkSource;)V
Lcom/android/internal/location/ILocationProviderManager$Stub;-><init>()V
Lcom/android/internal/location/ILocationProviderManager$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/location/ILocationProviderManager;
-Lcom/android/internal/logging/MetricsLogger;-><init>()V
-Lcom/android/internal/net/LegacyVpnInfo;-><init>()V
-Lcom/android/internal/net/VpnConfig;-><init>()V
-Lcom/android/internal/os/BaseCommand;-><init>()V
-Lcom/android/internal/os/BatterySipper$DrainType;->values()[Lcom/android/internal/os/BatterySipper$DrainType;
Lcom/android/internal/os/IDropBoxManagerService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/os/IDropBoxManagerService;
Lcom/android/internal/policy/IKeyguardService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/policy/IKeyguardService;
Lcom/android/internal/policy/IKeyguardStateCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/policy/IKeyguardStateCallback;
-Lcom/android/internal/preference/YesNoPreference;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
Lcom/android/internal/R$anim;->fade_in:I
Lcom/android/internal/R$array;->config_autoBrightnessLcdBacklightValues:I
Lcom/android/internal/R$array;->config_autoBrightnessLevels:I
@@ -1157,208 +1033,9 @@
Lcom/android/internal/statusbar/IStatusBarService$Stub;-><init>()V
Lcom/android/internal/statusbar/IStatusBarService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/statusbar/IStatusBarService;
Lcom/android/internal/telecom/ITelecomService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telecom/ITelecomService;
-Lcom/android/internal/telephony/Call$State;->ALERTING:Lcom/android/internal/telephony/Call$State;
-Lcom/android/internal/telephony/Call$State;->DIALING:Lcom/android/internal/telephony/Call$State;
-Lcom/android/internal/telephony/Call$State;->DISCONNECTED:Lcom/android/internal/telephony/Call$State;
-Lcom/android/internal/telephony/Call$State;->DISCONNECTING:Lcom/android/internal/telephony/Call$State;
-Lcom/android/internal/telephony/Call$State;->HOLDING:Lcom/android/internal/telephony/Call$State;
-Lcom/android/internal/telephony/Call$State;->IDLE:Lcom/android/internal/telephony/Call$State;
-Lcom/android/internal/telephony/Call$State;->INCOMING:Lcom/android/internal/telephony/Call$State;
-Lcom/android/internal/telephony/Call$State;->values()[Lcom/android/internal/telephony/Call$State;
-Lcom/android/internal/telephony/Call$State;->WAITING:Lcom/android/internal/telephony/Call$State;
-Lcom/android/internal/telephony/Call;-><init>()V
-Lcom/android/internal/telephony/CallForwardInfo;-><init>()V
-Lcom/android/internal/telephony/CallTracker;-><init>()V
-Lcom/android/internal/telephony/cat/AppInterface$CommandType;->values()[Lcom/android/internal/telephony/cat/AppInterface$CommandType;
-Lcom/android/internal/telephony/cat/ResponseData;-><init>()V
-Lcom/android/internal/telephony/cat/ResultCode;->values()[Lcom/android/internal/telephony/cat/ResultCode;
-Lcom/android/internal/telephony/cat/RilMessageDecoder;->mCurrentRilMessage:Lcom/android/internal/telephony/cat/RilMessage;
-Lcom/android/internal/telephony/cat/RilMessageDecoder;->sendCmdForExecution(Lcom/android/internal/telephony/cat/RilMessage;)V
-Lcom/android/internal/telephony/cat/RilMessageDecoder;->sendStartDecodingMessageParams(Lcom/android/internal/telephony/cat/RilMessage;)V
-Lcom/android/internal/telephony/cat/ValueObject;-><init>()V
-Lcom/android/internal/telephony/cat/ValueParser;->retrieveDeviceIdentities(Lcom/android/internal/telephony/cat/ComprehensionTlv;)Lcom/android/internal/telephony/cat/DeviceIdentities;
-Lcom/android/internal/telephony/cdma/sms/BearerData$CodingException;-><init>(Ljava/lang/String;)V
-Lcom/android/internal/telephony/cdma/sms/BearerData$TimeStamp;-><init>()V
-Lcom/android/internal/telephony/cdma/sms/BearerData;-><init>()V
-Lcom/android/internal/telephony/cdma/sms/BearerData;->countAsciiSeptets(Ljava/lang/CharSequence;Z)I
-Lcom/android/internal/telephony/cdma/sms/BearerData;->decodeUserDataPayload(Lcom/android/internal/telephony/cdma/sms/UserData;Z)V
-Lcom/android/internal/telephony/cdma/sms/BearerData;->displayMode:I
-Lcom/android/internal/telephony/cdma/sms/BearerData;->encode(Lcom/android/internal/telephony/cdma/sms/BearerData;)[B
-Lcom/android/internal/telephony/cdma/sms/BearerData;->encode7bitAscii(Ljava/lang/String;Z)[B
-Lcom/android/internal/telephony/cdma/sms/BearerData;->getBitsForNumFields(II)I
-Lcom/android/internal/telephony/cdma/sms/BearerData;->hasUserDataHeader:Z
-Lcom/android/internal/telephony/cdma/sms/BearerData;->messageId:I
-Lcom/android/internal/telephony/cdma/sms/BearerData;->msgCenterTimeStamp:Lcom/android/internal/telephony/cdma/sms/BearerData$TimeStamp;
-Lcom/android/internal/telephony/cdma/sms/BearerData;->priority:I
-Lcom/android/internal/telephony/cdma/sms/BearerData;->priorityIndicatorSet:Z
-Lcom/android/internal/telephony/cdma/sms/BearerData;->userData:Lcom/android/internal/telephony/cdma/sms/UserData;
-Lcom/android/internal/telephony/cdma/sms/CdmaSmsAddress;-><init>()V
-Lcom/android/internal/telephony/cdma/sms/CdmaSmsAddress;->digitMode:I
-Lcom/android/internal/telephony/cdma/sms/CdmaSmsAddress;->numberMode:I
-Lcom/android/internal/telephony/cdma/sms/CdmaSmsAddress;->numberOfDigits:I
-Lcom/android/internal/telephony/cdma/sms/CdmaSmsAddress;->numberPlan:I
-Lcom/android/internal/telephony/cdma/sms/CdmaSmsAddress;->parse(Ljava/lang/String;)Lcom/android/internal/telephony/cdma/sms/CdmaSmsAddress;
-Lcom/android/internal/telephony/cdma/sms/SmsEnvelope;-><init>()V
-Lcom/android/internal/telephony/cdma/sms/SmsEnvelope;->bearerData:[B
-Lcom/android/internal/telephony/cdma/sms/SmsEnvelope;->serviceCategory:I
-Lcom/android/internal/telephony/cdma/sms/SmsEnvelope;->teleService:I
-Lcom/android/internal/telephony/cdma/sms/UserData;-><init>()V
-Lcom/android/internal/telephony/cdma/sms/UserData;->charToAscii:Landroid/util/SparseIntArray;
-Lcom/android/internal/telephony/cdma/sms/UserData;->msgEncoding:I
-Lcom/android/internal/telephony/cdma/sms/UserData;->msgEncodingSet:Z
-Lcom/android/internal/telephony/cdma/sms/UserData;->numFields:I
-Lcom/android/internal/telephony/cdma/sms/UserData;->payload:[B
-Lcom/android/internal/telephony/cdma/sms/UserData;->payloadStr:Ljava/lang/String;
-Lcom/android/internal/telephony/cdma/sms/UserData;->userDataHeader:Lcom/android/internal/telephony/SmsHeader;
-Lcom/android/internal/telephony/cdma/SmsMessage$SubmitPdu;-><init>()V
-Lcom/android/internal/telephony/cdma/SmsMessage;-><init>()V
-Lcom/android/internal/telephony/cdma/SmsMessage;->calculateLength(Ljava/lang/CharSequence;ZZ)Lcom/android/internal/telephony/GsmAlphabet$TextEncodingDetails;
-Lcom/android/internal/telephony/cdma/SmsMessage;->createFromEfRecord(I[B)Lcom/android/internal/telephony/cdma/SmsMessage;
-Lcom/android/internal/telephony/cdma/SmsMessage;->createFromPdu([B)Lcom/android/internal/telephony/cdma/SmsMessage;
-Lcom/android/internal/telephony/cdma/SmsMessage;->getIncomingSmsFingerprint()[B
-Lcom/android/internal/telephony/cdma/SmsMessage;->getMessageType()I
-Lcom/android/internal/telephony/cdma/SmsMessage;->getNextMessageId()I
-Lcom/android/internal/telephony/cdma/SmsMessage;->getNumOfVoicemails()I
-Lcom/android/internal/telephony/cdma/SmsMessage;->getSubmitPdu(Ljava/lang/String;Lcom/android/internal/telephony/cdma/sms/UserData;Z)Lcom/android/internal/telephony/cdma/SmsMessage$SubmitPdu;
-Lcom/android/internal/telephony/cdma/SmsMessage;->getSubmitPdu(Ljava/lang/String;Lcom/android/internal/telephony/cdma/sms/UserData;ZI)Lcom/android/internal/telephony/cdma/SmsMessage$SubmitPdu;
-Lcom/android/internal/telephony/cdma/SmsMessage;->getSubmitPdu(Ljava/lang/String;Ljava/lang/String;I[BZ)Lcom/android/internal/telephony/cdma/SmsMessage$SubmitPdu;
-Lcom/android/internal/telephony/cdma/SmsMessage;->getSubmitPdu(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLcom/android/internal/telephony/SmsHeader;)Lcom/android/internal/telephony/cdma/SmsMessage$SubmitPdu;
-Lcom/android/internal/telephony/cdma/SmsMessage;->getSubmitPdu(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLcom/android/internal/telephony/SmsHeader;I)Lcom/android/internal/telephony/cdma/SmsMessage$SubmitPdu;
-Lcom/android/internal/telephony/cdma/SmsMessage;->getTeleService()I
-Lcom/android/internal/telephony/cdma/SmsMessage;->isStatusReportMessage()Z
-Lcom/android/internal/telephony/cdma/SmsMessage;->mBearerData:Lcom/android/internal/telephony/cdma/sms/BearerData;
-Lcom/android/internal/telephony/cdma/SmsMessage;->mEnvelope:Lcom/android/internal/telephony/cdma/sms/SmsEnvelope;
-Lcom/android/internal/telephony/cdma/SmsMessage;->parseSms()V
-Lcom/android/internal/telephony/cdma/SmsMessage;->privateGetSubmitPdu(Ljava/lang/String;ZLcom/android/internal/telephony/cdma/sms/UserData;)Lcom/android/internal/telephony/cdma/SmsMessage$SubmitPdu;
-Lcom/android/internal/telephony/DctConstants$Activity;->DATAIN:Lcom/android/internal/telephony/DctConstants$Activity;
-Lcom/android/internal/telephony/DctConstants$Activity;->DATAINANDOUT:Lcom/android/internal/telephony/DctConstants$Activity;
-Lcom/android/internal/telephony/DctConstants$Activity;->DATAOUT:Lcom/android/internal/telephony/DctConstants$Activity;
-Lcom/android/internal/telephony/DctConstants$Activity;->DORMANT:Lcom/android/internal/telephony/DctConstants$Activity;
-Lcom/android/internal/telephony/DctConstants$Activity;->values()[Lcom/android/internal/telephony/DctConstants$Activity;
-Lcom/android/internal/telephony/DctConstants$State;->CONNECTED:Lcom/android/internal/telephony/DctConstants$State;
-Lcom/android/internal/telephony/DctConstants$State;->CONNECTING:Lcom/android/internal/telephony/DctConstants$State;
-Lcom/android/internal/telephony/DctConstants$State;->DISCONNECTING:Lcom/android/internal/telephony/DctConstants$State;
-Lcom/android/internal/telephony/DctConstants$State;->FAILED:Lcom/android/internal/telephony/DctConstants$State;
-Lcom/android/internal/telephony/DctConstants$State;->IDLE:Lcom/android/internal/telephony/DctConstants$State;
-Lcom/android/internal/telephony/DctConstants$State;->RETRYING:Lcom/android/internal/telephony/DctConstants$State;
-Lcom/android/internal/telephony/DctConstants$State;->values()[Lcom/android/internal/telephony/DctConstants$State;
-Lcom/android/internal/telephony/DriverCall$State;->values()[Lcom/android/internal/telephony/DriverCall$State;
-Lcom/android/internal/telephony/gsm/GsmCellBroadcastHandler$SmsCbConcatInfo;-><init>(Lcom/android/internal/telephony/gsm/SmsCbHeader;Landroid/telephony/SmsCbLocation;)V
-Lcom/android/internal/telephony/gsm/GsmCellBroadcastHandler$SmsCbConcatInfo;->matchesLocation(Ljava/lang/String;II)Z
-Lcom/android/internal/telephony/gsm/GsmCellBroadcastHandler;->mSmsCbPageMap:Ljava/util/HashMap;
-Lcom/android/internal/telephony/gsm/GsmInboundSmsHandler;->acknowledgeLastIncomingSms(ZILandroid/os/Message;)V
-Lcom/android/internal/telephony/gsm/GsmMmiCode;-><init>(Lcom/android/internal/telephony/GsmCdmaPhone;Lcom/android/internal/telephony/uicc/UiccCardApplication;)V
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->getCLIRMode()I
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->getScString()Ljava/lang/CharSequence;
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->isActivate()Z
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->isDeactivate()Z
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->isErasure()Z
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->isInterrogate()Z
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->isRegister()Z
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->isServiceCodeCallBarring(Ljava/lang/String;)Z
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->isServiceCodeCallForwarding(Ljava/lang/String;)Z
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->isTemporaryModeCLIR()Z
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->makeEmptyNull(Ljava/lang/String;)Ljava/lang/String;
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->mContext:Landroid/content/Context;
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->mDialingNumber:Ljava/lang/String;
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->mIccRecords:Lcom/android/internal/telephony/uicc/IccRecords;
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->mPhone:Lcom/android/internal/telephony/GsmCdmaPhone;
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->mSc:Ljava/lang/String;
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->mSia:Ljava/lang/String;
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->mSib:Ljava/lang/String;
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->mSic:Ljava/lang/String;
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->newFromDialString(Ljava/lang/String;Lcom/android/internal/telephony/GsmCdmaPhone;Lcom/android/internal/telephony/uicc/UiccCardApplication;)Lcom/android/internal/telephony/gsm/GsmMmiCode;
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->processCode()V
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->siToServiceClass(Ljava/lang/String;)I
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->sPatternSuppService:Ljava/util/regex/Pattern;
-Lcom/android/internal/telephony/gsm/GsmSmsAddress;-><init>([BII)V
-Lcom/android/internal/telephony/gsm/GsmSmsAddress;->isCphsVoiceMessageClear()Z
-Lcom/android/internal/telephony/gsm/GsmSmsAddress;->isCphsVoiceMessageSet()Z
-Lcom/android/internal/telephony/gsm/GsmSMSDispatcher;->getFormat()Ljava/lang/String;
-Lcom/android/internal/telephony/gsm/GsmSMSDispatcher;->mGsmInboundSmsHandler:Lcom/android/internal/telephony/gsm/GsmInboundSmsHandler;
-Lcom/android/internal/telephony/gsm/GsmSMSDispatcher;->sendSms(Lcom/android/internal/telephony/SMSDispatcher$SmsTracker;)V
-Lcom/android/internal/telephony/gsm/SimTlv;-><init>([BII)V
-Lcom/android/internal/telephony/gsm/SimTlv;->getData()[B
-Lcom/android/internal/telephony/gsm/SimTlv;->getTag()I
-Lcom/android/internal/telephony/gsm/SimTlv;->isValidObject()Z
-Lcom/android/internal/telephony/gsm/SimTlv;->mHasValidTlvObject:Z
-Lcom/android/internal/telephony/gsm/SimTlv;->nextObject()Z
-Lcom/android/internal/telephony/gsm/SmsCbHeader;-><init>([B)V
-Lcom/android/internal/telephony/gsm/SmsCbHeader;->getGeographicalScope()I
-Lcom/android/internal/telephony/gsm/SmsCbHeader;->getNumberOfPages()I
-Lcom/android/internal/telephony/gsm/SmsCbHeader;->getPageIndex()I
-Lcom/android/internal/telephony/gsm/SmsCbHeader;->getSerialNumber()I
-Lcom/android/internal/telephony/gsm/SmsCbHeader;->getServiceCategory()I
-Lcom/android/internal/telephony/gsm/SmsCbHeader;->mMessageIdentifier:I
-Lcom/android/internal/telephony/gsm/SmsMessage$PduParser;-><init>([B)V
-Lcom/android/internal/telephony/gsm/SmsMessage$PduParser;->getByte()I
-Lcom/android/internal/telephony/gsm/SmsMessage$PduParser;->getUserData()[B
-Lcom/android/internal/telephony/gsm/SmsMessage$PduParser;->getUserDataUCS2(I)Ljava/lang/String;
-Lcom/android/internal/telephony/gsm/SmsMessage$PduParser;->mCur:I
-Lcom/android/internal/telephony/gsm/SmsMessage$PduParser;->mPdu:[B
-Lcom/android/internal/telephony/gsm/SmsMessage$PduParser;->mUserDataSeptetPadding:I
-Lcom/android/internal/telephony/gsm/SmsMessage$SubmitPdu;-><init>()V
-Lcom/android/internal/telephony/gsm/SmsMessage;-><init>()V
-Lcom/android/internal/telephony/gsm/SmsMessage;->calculateLength(Ljava/lang/CharSequence;Z)Lcom/android/internal/telephony/GsmAlphabet$TextEncodingDetails;
-Lcom/android/internal/telephony/gsm/SmsMessage;->createFromEfRecord(I[B)Lcom/android/internal/telephony/gsm/SmsMessage;
-Lcom/android/internal/telephony/gsm/SmsMessage;->createFromPdu([B)Lcom/android/internal/telephony/gsm/SmsMessage;
-Lcom/android/internal/telephony/gsm/SmsMessage;->encodeUCS2(Ljava/lang/String;[B)[B
-Lcom/android/internal/telephony/gsm/SmsMessage;->getStatus()I
-Lcom/android/internal/telephony/gsm/SmsMessage;->getSubmitPdu(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Lcom/android/internal/telephony/gsm/SmsMessage$SubmitPdu;
-Lcom/android/internal/telephony/gsm/SmsMessage;->getSubmitPdu(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZI)Lcom/android/internal/telephony/gsm/SmsMessage$SubmitPdu;
-Lcom/android/internal/telephony/gsm/SmsMessage;->getSubmitPdu(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z[B)Lcom/android/internal/telephony/gsm/SmsMessage$SubmitPdu;
-Lcom/android/internal/telephony/gsm/SmsMessage;->getSubmitPdu(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z[BIII)Lcom/android/internal/telephony/gsm/SmsMessage$SubmitPdu;
-Lcom/android/internal/telephony/gsm/SmsMessage;->getSubmitPdu(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z[BIIII)Lcom/android/internal/telephony/gsm/SmsMessage$SubmitPdu;
-Lcom/android/internal/telephony/gsm/SmsMessage;->getSubmitPduHead(Ljava/lang/String;Ljava/lang/String;BZLcom/android/internal/telephony/gsm/SmsMessage$SubmitPdu;)Ljava/io/ByteArrayOutputStream;
-Lcom/android/internal/telephony/gsm/SmsMessage;->isMWIClearMessage()Z
-Lcom/android/internal/telephony/gsm/SmsMessage;->isMwiDontStore()Z
-Lcom/android/internal/telephony/gsm/SmsMessage;->isMWISetMessage()Z
-Lcom/android/internal/telephony/gsm/SmsMessage;->isStatusReportMessage()Z
-Lcom/android/internal/telephony/gsm/UsimPhoneBookManager;->loadEfFilesFromUsim()Ljava/util/ArrayList;
-Lcom/android/internal/telephony/gsm/UsimPhoneBookManager;->log(Ljava/lang/String;)V
-Lcom/android/internal/telephony/gsm/UsimPhoneBookManager;->mFh:Lcom/android/internal/telephony/uicc/IccFileHandler;
-Lcom/android/internal/telephony/gsm/UsimPhoneBookManager;->mLock:Ljava/lang/Object;
-Lcom/android/internal/telephony/gsm/UsimPhoneBookManager;->mPhoneBookRecords:Ljava/util/ArrayList;
-Lcom/android/internal/telephony/gsm/UsimPhoneBookManager;->reset()V
-Lcom/android/internal/telephony/GsmAlphabet$TextEncodingDetails;-><init>()V
-Lcom/android/internal/telephony/GsmCdmaConnection$MyHandler;-><init>(Lcom/android/internal/telephony/GsmCdmaConnection;Landroid/os/Looper;)V
-Lcom/android/internal/telephony/IccCardConstants$State;->ABSENT:Lcom/android/internal/telephony/IccCardConstants$State;
-Lcom/android/internal/telephony/IccCardConstants$State;->CARD_IO_ERROR:Lcom/android/internal/telephony/IccCardConstants$State;
-Lcom/android/internal/telephony/IccCardConstants$State;->NETWORK_LOCKED:Lcom/android/internal/telephony/IccCardConstants$State;
-Lcom/android/internal/telephony/IccCardConstants$State;->NOT_READY:Lcom/android/internal/telephony/IccCardConstants$State;
-Lcom/android/internal/telephony/IccCardConstants$State;->PERM_DISABLED:Lcom/android/internal/telephony/IccCardConstants$State;
-Lcom/android/internal/telephony/IccCardConstants$State;->PIN_REQUIRED:Lcom/android/internal/telephony/IccCardConstants$State;
-Lcom/android/internal/telephony/IccCardConstants$State;->PUK_REQUIRED:Lcom/android/internal/telephony/IccCardConstants$State;
-Lcom/android/internal/telephony/IccCardConstants$State;->READY:Lcom/android/internal/telephony/IccCardConstants$State;
-Lcom/android/internal/telephony/IccCardConstants$State;->UNKNOWN:Lcom/android/internal/telephony/IccCardConstants$State;
-Lcom/android/internal/telephony/IccCardConstants$State;->values()[Lcom/android/internal/telephony/IccCardConstants$State;
-Lcom/android/internal/telephony/IccProvider;-><init>()V
Lcom/android/internal/telephony/IIccPhoneBook$Stub$Proxy;->mRemote:Landroid/os/IBinder;
Lcom/android/internal/telephony/IIccPhoneBook$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/IIccPhoneBook;
-Lcom/android/internal/telephony/IIccPhoneBook;->getAdnRecordsInEf(I)Ljava/util/List;
-Lcom/android/internal/telephony/IIccPhoneBook;->getAdnRecordsInEfForSubscriber(II)Ljava/util/List;
-Lcom/android/internal/telephony/IIccPhoneBook;->getAdnRecordsSize(I)[I
-Lcom/android/internal/telephony/IIccPhoneBook;->getAdnRecordsSizeForSubscriber(II)[I
-Lcom/android/internal/telephony/IIccPhoneBook;->updateAdnRecordsInEfBySearch(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
Lcom/android/internal/telephony/IMms$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/IMms;
-Lcom/android/internal/telephony/imsphone/ImsExternalCallTracker$ExternalCallStateListener;-><init>(Lcom/android/internal/telephony/imsphone/ImsExternalCallTracker;)V
-Lcom/android/internal/telephony/imsphone/ImsExternalCallTracker$ExternalConnectionListener;-><init>(Lcom/android/internal/telephony/imsphone/ImsExternalCallTracker;)V
-Lcom/android/internal/telephony/imsphone/ImsPhone;->notifyCallForwardingIndicator()V
-Lcom/android/internal/telephony/imsphone/ImsPhone;->notifyPreciseCallStateChanged()V
-Lcom/android/internal/telephony/imsphone/ImsPhoneCall;->getImsCall()Lcom/android/ims/ImsCall;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->findConnection(Lcom/android/ims/ImsCall;)Lcom/android/internal/telephony/imsphone/ImsPhoneConnection;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->getEcbmInterface()Lcom/android/ims/ImsEcbm;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->mCallExpectedToResume:Lcom/android/ims/ImsCall;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->mImsCallListener:Lcom/android/ims/ImsCall$Listener;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->mImsManager:Lcom/android/ims/ImsManager;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->mUssdSession:Lcom/android/ims/ImsCall;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->processCallStateChange(Lcom/android/ims/ImsCall;Lcom/android/internal/telephony/Call$State;I)V
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->processCallStateChange(Lcom/android/ims/ImsCall;Lcom/android/internal/telephony/Call$State;IZ)V
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->setVideoCallProvider(Lcom/android/internal/telephony/imsphone/ImsPhoneConnection;Lcom/android/ims/ImsCall;)V
-Lcom/android/internal/telephony/imsphone/ImsPhoneConnection$MyHandler;-><init>(Lcom/android/internal/telephony/imsphone/ImsPhoneConnection;Landroid/os/Looper;)V
-Lcom/android/internal/telephony/imsphone/ImsPhoneConnection;->mImsCall:Lcom/android/ims/ImsCall;
-Lcom/android/internal/telephony/imsphone/ImsPhoneConnection;->update(Lcom/android/ims/ImsCall;Lcom/android/internal/telephony/Call$State;)Z
-Lcom/android/internal/telephony/InboundSmsHandler$SmsBroadcastReceiver;-><init>(Lcom/android/internal/telephony/InboundSmsHandler;Lcom/android/internal/telephony/InboundSmsTracker;)V
Lcom/android/internal/telephony/IPhoneStateListener$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/IPhoneStateListener;
Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getDeviceId(Ljava/lang/String;)Ljava/lang/String;
@@ -1380,92 +1057,9 @@
Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/ITelephonyRegistry;
Lcom/android/internal/telephony/IWapPushManager$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/IWapPushManager;
-Lcom/android/internal/telephony/PhoneConstants$DataState;->CONNECTED:Lcom/android/internal/telephony/PhoneConstants$DataState;
-Lcom/android/internal/telephony/PhoneConstants$DataState;->CONNECTING:Lcom/android/internal/telephony/PhoneConstants$DataState;
-Lcom/android/internal/telephony/PhoneConstants$DataState;->DISCONNECTED:Lcom/android/internal/telephony/PhoneConstants$DataState;
-Lcom/android/internal/telephony/PhoneConstants$DataState;->SUSPENDED:Lcom/android/internal/telephony/PhoneConstants$DataState;
-Lcom/android/internal/telephony/PhoneConstants$DataState;->values()[Lcom/android/internal/telephony/PhoneConstants$DataState;
-Lcom/android/internal/telephony/PhoneConstants$State;->IDLE:Lcom/android/internal/telephony/PhoneConstants$State;
-Lcom/android/internal/telephony/PhoneConstants$State;->OFFHOOK:Lcom/android/internal/telephony/PhoneConstants$State;
-Lcom/android/internal/telephony/PhoneConstants$State;->RINGING:Lcom/android/internal/telephony/PhoneConstants$State;
-Lcom/android/internal/telephony/PhoneConstants$State;->values()[Lcom/android/internal/telephony/PhoneConstants$State;
-Lcom/android/internal/telephony/PhoneConstants;->PRESENTATION_ALLOWED:I
-Lcom/android/internal/telephony/PhoneConstants;->PRESENTATION_PAYPHONE:I
-Lcom/android/internal/telephony/PhoneConstants;->PRESENTATION_RESTRICTED:I
-Lcom/android/internal/telephony/PhoneConstants;->PRESENTATION_UNKNOWN:I
-Lcom/android/internal/telephony/RILConstants;->PREFERRED_NETWORK_MODE:I
-Lcom/android/internal/telephony/sip/SipPhone$SipCall;->hold()V
-Lcom/android/internal/telephony/sip/SipPhone$SipCall;->switchWith(Lcom/android/internal/telephony/sip/SipPhone$SipCall;)V
-Lcom/android/internal/telephony/sip/SipPhone$SipCall;->unhold()V
-Lcom/android/internal/telephony/sip/SipPhone;->log(Ljava/lang/String;)V
-Lcom/android/internal/telephony/sip/SipPhone;->loge(Ljava/lang/String;)V
-Lcom/android/internal/telephony/sip/SipPhone;->mBackgroundCall:Lcom/android/internal/telephony/sip/SipPhone$SipCall;
-Lcom/android/internal/telephony/sip/SipPhone;->mForegroundCall:Lcom/android/internal/telephony/sip/SipPhone$SipCall;
-Lcom/android/internal/telephony/Sms7BitEncodingTranslator;->DBG:Z
-Lcom/android/internal/telephony/Sms7BitEncodingTranslator;->mTranslationTableCDMA:Landroid/util/SparseIntArray;
-Lcom/android/internal/telephony/Sms7BitEncodingTranslator;->mTranslationTableCommon:Landroid/util/SparseIntArray;
-Lcom/android/internal/telephony/Sms7BitEncodingTranslator;->mTranslationTableGSM:Landroid/util/SparseIntArray;
-Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;->mApplicationName:Ljava/lang/String;
-Lcom/android/internal/telephony/SmsApplication;->configurePreferredActivity(Landroid/content/pm/PackageManager;Landroid/content/ComponentName;I)V
-Lcom/android/internal/telephony/SmsApplication;->getApplicationCollection(Landroid/content/Context;)Ljava/util/Collection;
-Lcom/android/internal/telephony/SmsApplication;->getDefaultMmsApplication(Landroid/content/Context;Z)Landroid/content/ComponentName;
-Lcom/android/internal/telephony/SmsApplication;->getDefaultRespondViaMessageApplication(Landroid/content/Context;Z)Landroid/content/ComponentName;
-Lcom/android/internal/telephony/SmsApplication;->getDefaultSmsApplication(Landroid/content/Context;Z)Landroid/content/ComponentName;
-Lcom/android/internal/telephony/SmsApplication;->getSmsApplicationData(Ljava/lang/String;Landroid/content/Context;)Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;
-Lcom/android/internal/telephony/SmsApplication;->isDefaultSmsApplication(Landroid/content/Context;Ljava/lang/String;)Z
-Lcom/android/internal/telephony/SmsApplication;->setDefaultApplication(Ljava/lang/String;Landroid/content/Context;)V
-Lcom/android/internal/telephony/SmsApplication;->shouldWriteMessageForPackage(Ljava/lang/String;Landroid/content/Context;)Z
-Lcom/android/internal/telephony/SMSDispatcher$DataSmsSender;-><init>(Lcom/android/internal/telephony/SMSDispatcher;Lcom/android/internal/telephony/SMSDispatcher$SmsTracker;)V
-Lcom/android/internal/telephony/SMSDispatcher$MultipartSmsSender;-><init>(Lcom/android/internal/telephony/SMSDispatcher;Ljava/util/ArrayList;[Lcom/android/internal/telephony/SMSDispatcher$SmsTracker;)V
-Lcom/android/internal/telephony/SMSDispatcher$MultipartSmsSenderCallback;-><init>(Lcom/android/internal/telephony/SMSDispatcher;Lcom/android/internal/telephony/SMSDispatcher$MultipartSmsSender;)V
-Lcom/android/internal/telephony/SMSDispatcher$SmsSenderCallback;-><init>(Lcom/android/internal/telephony/SMSDispatcher;Lcom/android/internal/telephony/SMSDispatcher$SmsSender;)V
-Lcom/android/internal/telephony/SMSDispatcher$TextSmsSender;-><init>(Lcom/android/internal/telephony/SMSDispatcher;Lcom/android/internal/telephony/SMSDispatcher$SmsTracker;)V
-Lcom/android/internal/telephony/SmsHeader$ConcatRef;-><init>()V
-Lcom/android/internal/telephony/SmsHeader$PortAddrs;-><init>()V
-Lcom/android/internal/telephony/SmsMessageBase;-><init>()V
-Lcom/android/internal/telephony/TelephonyProperties;->PROPERTY_ICC_OPERATOR_NUMERIC:Ljava/lang/String;
-Lcom/android/internal/telephony/test/InterpreterEx;-><init>(Ljava/lang/String;)V
-Lcom/android/internal/telephony/test/SimulatedCommands;->acceptCall(Landroid/os/Message;)V
-Lcom/android/internal/telephony/test/SimulatedCommands;->mDcSuccess:Z
-Lcom/android/internal/telephony/test/SimulatedCommands;->resultFail(Landroid/os/Message;Ljava/lang/Object;Ljava/lang/Throwable;)V
-Lcom/android/internal/telephony/test/SimulatedCommands;->resultSuccess(Landroid/os/Message;Ljava/lang/Object;)V
-Lcom/android/internal/telephony/test/SimulatedCommands;->simulatedCallState:Lcom/android/internal/telephony/test/SimulatedGsmCallState;
-Lcom/android/internal/telephony/test/SimulatedCommands;->unimplemented(Landroid/os/Message;)V
-Lcom/android/internal/telephony/test/SimulatedCommandsVerifier;->getInstance()Lcom/android/internal/telephony/test/SimulatedCommandsVerifier;
-Lcom/android/internal/telephony/test/SimulatedCommandsVerifier;->setCallForward(IIILjava/lang/String;ILandroid/os/Message;)V
-Lcom/android/internal/telephony/test/SimulatedGsmCallState;->conference()Z
-Lcom/android/internal/telephony/test/SimulatedGsmCallState;->onChld(CC)Z
-Lcom/android/internal/telephony/test/SimulatedGsmCallState;->releaseActiveAcceptHeldOrWaiting()Z
-Lcom/android/internal/telephony/test/SimulatedGsmCallState;->releaseHeldOrUDUB()Z
-Lcom/android/internal/telephony/test/SimulatedGsmCallState;->separateCall(I)Z
-Lcom/android/internal/telephony/test/SimulatedGsmCallState;->switchActiveAndHeldOrWaiting()Z
-Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppState;->values()[Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppState;
-Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppType;->values()[Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppType;
-Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$PersoSubState;->values()[Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$PersoSubState;
-Lcom/android/internal/telephony/uicc/IccCardApplicationStatus;-><init>()V
-Lcom/android/internal/telephony/uicc/IccRefreshResponse;-><init>()V
-Lcom/android/internal/telephony/uicc/IccUtils;->adnStringFieldToString([BII)Ljava/lang/String;
-Lcom/android/internal/telephony/uicc/IccUtils;->bcdToString([BII)Ljava/lang/String;
-Lcom/android/internal/telephony/uicc/IccUtils;->bytesToHexString([B)Ljava/lang/String;
-Lcom/android/internal/telephony/uicc/IccUtils;->cdmaBcdByteToInt(B)I
-Lcom/android/internal/telephony/uicc/IccUtils;->cdmaBcdToString([BII)Ljava/lang/String;
-Lcom/android/internal/telephony/uicc/IccUtils;->gsmBcdByteToInt(B)I
-Lcom/android/internal/telephony/uicc/IccUtils;->hexCharToInt(C)I
-Lcom/android/internal/telephony/uicc/IccUtils;->hexStringToBytes(Ljava/lang/String;)[B
-Lcom/android/internal/telephony/uicc/IccUtils;->networkNameToString([BII)Ljava/lang/String;
-Lcom/android/internal/telephony/uicc/IccUtils;->parseToBnW([BI)Landroid/graphics/Bitmap;
-Lcom/android/internal/telephony/uicc/IccUtils;->parseToRGB([BIZ)Landroid/graphics/Bitmap;
-Lcom/android/internal/telephony/uicc/SIMRecords$GetSpnFsmState;->values()[Lcom/android/internal/telephony/uicc/SIMRecords$GetSpnFsmState;
Lcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-Lcom/android/internal/util/MemInfoReader;-><init>()V
Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
Lcom/android/internal/view/IInputMethodManager$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/view/IInputMethodManager;
Lcom/android/internal/view/IInputMethodSession$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/view/IInputMethodSession;
Lcom/android/internal/widget/ILockSettings$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/widget/ILockSettings;
Lcom/android/internal/widget/IRemoteViewsFactory$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/widget/IRemoteViewsFactory;
-Lcom/android/internal/widget/PointerLocationView$PointerState;-><init>()V
-Lcom/android/server/net/BaseNetworkObserver;-><init>()V
-Lcom/android/server/ResettableTimeout$T;-><init>(Lcom/android/server/ResettableTimeout;)V
-Lcom/google/android/gles_jni/EGLImpl;-><init>()V
-Lcom/google/android/gles_jni/GLImpl;-><init>()V
-Lcom/google/android/util/AbstractMessageParser$Token$Type;->values()[Lcom/google/android/util/AbstractMessageParser$Token$Type;
diff --git a/core/java/android/accounts/AccountManager.java b/core/java/android/accounts/AccountManager.java
index 26c2c0c..c80be8e 100644
--- a/core/java/android/accounts/AccountManager.java
+++ b/core/java/android/accounts/AccountManager.java
@@ -2226,6 +2226,8 @@
}
private abstract class AmsTask extends FutureTask<Bundle> implements AccountManagerFuture<Bundle> {
+
+
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
final IAccountManagerResponse mResponse;
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java
index 91b98c7..752f3e3 100644
--- a/core/java/android/app/ActivityManager.java
+++ b/core/java/android/app/ActivityManager.java
@@ -153,6 +153,12 @@
*/
public static final int INSTR_FLAG_MOUNT_EXTERNAL_STORAGE_FULL = 1 << 1;
+ /**
+ * Disable test API access for the newly started instrumentation.
+ * @hide
+ */
+ public static final int INSTR_FLAG_DISABLE_TEST_API_CHECKS = 1 << 2;
+
static final class UidObserver extends IUidObserver.Stub {
final OnUidImportanceListener mListener;
final Context mContext;
diff --git a/core/java/android/app/ActivityManagerNative.java b/core/java/android/app/ActivityManagerNative.java
index 37509e1..607ef18 100644
--- a/core/java/android/app/ActivityManagerNative.java
+++ b/core/java/android/app/ActivityManagerNative.java
@@ -25,6 +25,11 @@
*/
@Deprecated
public abstract class ActivityManagerNative {
+
+ @UnsupportedAppUsage
+ public ActivityManagerNative() {
+ }
+
/**
* Cast a Binder object into an activity manager interface, generating
* a proxy if needed.
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index f0dcc51..4e8bee2 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -714,6 +714,9 @@
static final class CreateServiceData {
@UnsupportedAppUsage
+ CreateServiceData() {
+ }
+ @UnsupportedAppUsage
IBinder token;
@UnsupportedAppUsage
ServiceInfo info;
@@ -755,6 +758,9 @@
static final class AppBindData {
@UnsupportedAppUsage
+ AppBindData() {
+ }
+ @UnsupportedAppUsage
LoadedApk info;
@UnsupportedAppUsage
String processName;
diff --git a/core/java/android/app/IActivityManager.aidl b/core/java/android/app/IActivityManager.aidl
index 48ca716..feaddda 100644
--- a/core/java/android/app/IActivityManager.aidl
+++ b/core/java/android/app/IActivityManager.aidl
@@ -122,6 +122,7 @@
in String resultData, in Bundle map, in String[] requiredPermissions,
int appOp, in Bundle options, boolean serialized, boolean sticky, int userId);
void unbroadcastIntent(in IApplicationThread caller, in Intent intent, int userId);
+ @UnsupportedAppUsage
oneway void finishReceiver(in IBinder who, int resultCode, in String resultData, in Bundle map,
boolean abortBroadcast, int flags);
void attachApplication(in IApplicationThread app, long startSeq);
@@ -211,6 +212,7 @@
@UnsupportedAppUsage
ParceledListSlice getRecentTasks(int maxNum, int flags, int userId);
+ @UnsupportedAppUsage
oneway void serviceDoneExecuting(in IBinder token, int type, int startId, int res);
@UnsupportedAppUsage
IIntentSender getIntentSender(int type, in String packageName, in IBinder token,
diff --git a/core/java/android/app/PackageDeleteObserver.java b/core/java/android/app/PackageDeleteObserver.java
index 20ae84c..b7b0b19 100644
--- a/core/java/android/app/PackageDeleteObserver.java
+++ b/core/java/android/app/PackageDeleteObserver.java
@@ -22,6 +22,11 @@
/** {@hide} */
public class PackageDeleteObserver {
+
+ @UnsupportedAppUsage
+ public PackageDeleteObserver() {
+ }
+
private final IPackageDeleteObserver2.Stub mBinder = new IPackageDeleteObserver2.Stub() {
@Override
public void onUserActionRequired(Intent intent) {
diff --git a/core/java/android/app/PackageInstallObserver.java b/core/java/android/app/PackageInstallObserver.java
index 507ebe5..50031e0 100644
--- a/core/java/android/app/PackageInstallObserver.java
+++ b/core/java/android/app/PackageInstallObserver.java
@@ -23,6 +23,11 @@
/** {@hide} */
public class PackageInstallObserver {
+
+ @UnsupportedAppUsage
+ public PackageInstallObserver() {
+ }
+
private final IPackageInstallObserver2.Stub mBinder = new IPackageInstallObserver2.Stub() {
@Override
public void onUserActionRequired(Intent intent) {
diff --git a/core/java/android/app/ResourcesManager.java b/core/java/android/app/ResourcesManager.java
index 40cb29f..e9ae60f 100644
--- a/core/java/android/app/ResourcesManager.java
+++ b/core/java/android/app/ResourcesManager.java
@@ -145,6 +145,9 @@
* Resources and base configuration override associated with an Activity.
*/
private static class ActivityResources {
+ @UnsupportedAppUsage
+ private ActivityResources() {
+ }
public final Configuration overrideConfig = new Configuration();
public final ArrayList<WeakReference<Resources>> activityResources = new ArrayList<>();
}
@@ -164,6 +167,10 @@
mAdjustedDisplays = new ArrayMap<>();
@UnsupportedAppUsage
+ public ResourcesManager() {
+ }
+
+ @UnsupportedAppUsage
public static ResourcesManager getInstance() {
synchronized (ResourcesManager.class) {
if (sResourcesManager == null) {
diff --git a/core/java/android/app/TaskStackListener.java b/core/java/android/app/TaskStackListener.java
index b63feb5..02ab25a 100644
--- a/core/java/android/app/TaskStackListener.java
+++ b/core/java/android/app/TaskStackListener.java
@@ -30,6 +30,11 @@
* @hide
*/
public abstract class TaskStackListener extends ITaskStackListener.Stub {
+
+ @UnsupportedAppUsage
+ public TaskStackListener() {
+ }
+
@Override
@UnsupportedAppUsage
public void onTaskStackChanged() throws RemoteException {
diff --git a/core/java/android/app/UiAutomationConnection.java b/core/java/android/app/UiAutomationConnection.java
index dc07df8..f251b3e 100644
--- a/core/java/android/app/UiAutomationConnection.java
+++ b/core/java/android/app/UiAutomationConnection.java
@@ -40,6 +40,8 @@
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.IAccessibilityManager;
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
import libcore.io.IoUtils;
import java.io.FileInputStream;
@@ -87,6 +89,10 @@
private int mOwningUid;
+ @UnsupportedAppUsage
+ public UiAutomationConnection() {
+ }
+
@Override
public void connect(IAccessibilityServiceClient client, int flags) {
if (client == null) {
diff --git a/core/java/android/app/UserSwitchObserver.java b/core/java/android/app/UserSwitchObserver.java
index 25b243d..2f8ee744b 100644
--- a/core/java/android/app/UserSwitchObserver.java
+++ b/core/java/android/app/UserSwitchObserver.java
@@ -24,6 +24,11 @@
* @hide
*/
public class UserSwitchObserver extends IUserSwitchObserver.Stub {
+
+ @UnsupportedAppUsage
+ public UserSwitchObserver() {
+ }
+
@Override
public void onUserSwitching(int newUserId, IRemoteCallback reply) throws RemoteException {
if (reply != null) {
diff --git a/core/java/android/companion/ICompanionDeviceDiscoveryServiceCallback.aidl b/core/java/android/companion/ICompanionDeviceDiscoveryServiceCallback.aidl
index 5f73e55..c9dc019 100644
--- a/core/java/android/companion/ICompanionDeviceDiscoveryServiceCallback.aidl
+++ b/core/java/android/companion/ICompanionDeviceDiscoveryServiceCallback.aidl
@@ -18,6 +18,8 @@
/** @hide */
interface ICompanionDeviceDiscoveryServiceCallback {
+ @UnsupportedAppUsage
oneway void onDeviceSelected(String packageName, int userId, String deviceAddress);
+ @UnsupportedAppUsage
oneway void onDeviceSelectionCancel();
}
diff --git a/core/java/android/content/UndoManager.java b/core/java/android/content/UndoManager.java
index f6a0d77..f9c58d6 100644
--- a/core/java/android/content/UndoManager.java
+++ b/core/java/android/content/UndoManager.java
@@ -18,8 +18,6 @@
import android.annotation.UnsupportedAppUsage;
import android.os.Parcel;
-import android.os.Parcelable;
-import android.os.ParcelableParcel;
import android.text.TextUtils;
import android.util.ArrayMap;
@@ -88,6 +86,10 @@
public static final int MERGE_MODE_ANY = 2;
@UnsupportedAppUsage
+ public UndoManager() {
+ }
+
+ @UnsupportedAppUsage
public UndoOwner getOwner(String tag, Object data) {
if (tag == null) {
throw new NullPointerException("tag can't be null");
diff --git a/core/java/android/content/res/ConfigurationBoundResourceCache.java b/core/java/android/content/res/ConfigurationBoundResourceCache.java
index 3af395a..848790f 100644
--- a/core/java/android/content/res/ConfigurationBoundResourceCache.java
+++ b/core/java/android/content/res/ConfigurationBoundResourceCache.java
@@ -26,6 +26,11 @@
* @hide For internal use only.
*/
public class ConfigurationBoundResourceCache<T> extends ThemedResourceCache<ConstantState<T>> {
+
+ @UnsupportedAppUsage
+ public ConfigurationBoundResourceCache() {
+ }
+
/**
* If the resource is cached, creates and returns a new instance of it.
*
diff --git a/core/java/android/content/res/DrawableCache.java b/core/java/android/content/res/DrawableCache.java
index d4f0ca5..90604b8 100644
--- a/core/java/android/content/res/DrawableCache.java
+++ b/core/java/android/content/res/DrawableCache.java
@@ -23,6 +23,11 @@
* Class which can be used to cache Drawable resources against a theme.
*/
class DrawableCache extends ThemedResourceCache<Drawable.ConstantState> {
+
+ @UnsupportedAppUsage
+ DrawableCache() {
+ }
+
/**
* If the resource is cached, creates and returns a new instance of it.
*
diff --git a/core/java/android/database/IContentObserver.aidl b/core/java/android/database/IContentObserver.aidl
index 22dc9fe..6235566 100644
--- a/core/java/android/database/IContentObserver.aidl
+++ b/core/java/android/database/IContentObserver.aidl
@@ -29,5 +29,6 @@
* observed. selfUpdate is true if the update was caused by a call to
* commit on the cursor that is being observed.
*/
+ @UnsupportedAppUsage
oneway void onChange(boolean selfUpdate, in Uri uri, int userId);
}
diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java
index cfa3934..75af41c 100644
--- a/core/java/android/net/ConnectivityManager.java
+++ b/core/java/android/net/ConnectivityManager.java
@@ -1763,6 +1763,10 @@
/** @hide */
public static class PacketKeepaliveCallback {
+ @UnsupportedAppUsage
+ public PacketKeepaliveCallback() {
+ }
+
/** The requested keepalive was successfully started. */
@UnsupportedAppUsage
public void onStarted() {}
diff --git a/core/java/android/net/InterfaceConfiguration.java b/core/java/android/net/InterfaceConfiguration.java
index c97b37b..c9a999c 100644
--- a/core/java/android/net/InterfaceConfiguration.java
+++ b/core/java/android/net/InterfaceConfiguration.java
@@ -40,6 +40,10 @@
private static final String[] EMPTY_STRING_ARRAY = new String[0];
+ @UnsupportedAppUsage
+ public InterfaceConfiguration() {
+ }
+
@Override
public String toString() {
final StringBuilder builder = new StringBuilder();
diff --git a/core/java/android/net/LinkProperties.java b/core/java/android/net/LinkProperties.java
index 3ec0aea..0706e75 100644
--- a/core/java/android/net/LinkProperties.java
+++ b/core/java/android/net/LinkProperties.java
@@ -111,6 +111,8 @@
/**
* @hide
*/
+ @UnsupportedAppUsage(implicitMember =
+ "values()[Landroid/net/LinkProperties$ProvisioningChange;")
public enum ProvisioningChange {
@UnsupportedAppUsage
STILL_NOT_PROVISIONED,
diff --git a/core/java/android/net/MobileLinkQualityInfo.java b/core/java/android/net/MobileLinkQualityInfo.java
index 06c739d..a10a14d 100644
--- a/core/java/android/net/MobileLinkQualityInfo.java
+++ b/core/java/android/net/MobileLinkQualityInfo.java
@@ -40,6 +40,10 @@
private int mLteRssnr = UNKNOWN_INT;
private int mLteCqi = UNKNOWN_INT;
+ @UnsupportedAppUsage
+ public MobileLinkQualityInfo() {
+ }
+
/**
* Implement the Parcelable interface.
* @hide
diff --git a/core/java/android/net/SSLCertificateSocketFactory.java b/core/java/android/net/SSLCertificateSocketFactory.java
index 95d66bb..39cb323 100644
--- a/core/java/android/net/SSLCertificateSocketFactory.java
+++ b/core/java/android/net/SSLCertificateSocketFactory.java
@@ -304,7 +304,8 @@
}
/**
- * Sets the <a href="http://technotes.googlecode.com/git/nextprotoneg.html">Next
+ * Sets the
+ * <a class="external" href="https://tools.ietf.org/id/draft-agl-tls-nextprotoneg-03.html">Next
* Protocol Negotiation (NPN)</a> protocols that this peer is interested in.
*
* <p>For servers this is the sequence of protocols to advertise as
diff --git a/core/java/android/net/SntpClient.java b/core/java/android/net/SntpClient.java
index a55d9d0..f9c2def 100644
--- a/core/java/android/net/SntpClient.java
+++ b/core/java/android/net/SntpClient.java
@@ -78,6 +78,10 @@
}
}
+ @UnsupportedAppUsage
+ public SntpClient() {
+ }
+
/**
* Sends an SNTP request to the given host and processes the response.
*
diff --git a/core/java/android/os/BatteryStats.java b/core/java/android/os/BatteryStats.java
index 2d2d681..59e9972 100644
--- a/core/java/android/os/BatteryStats.java
+++ b/core/java/android/os/BatteryStats.java
@@ -640,6 +640,10 @@
*/
public static abstract class Uid {
+ @UnsupportedAppUsage
+ public Uid() {
+ }
+
/**
* Returns a mapping containing wakelock statistics.
*
@@ -1002,6 +1006,11 @@
}
public static class ExcessivePower {
+
+ @UnsupportedAppUsage
+ public ExcessivePower() {
+ }
+
public static final int TYPE_WAKE = 1;
public static final int TYPE_CPU = 2;
diff --git a/core/java/android/os/IDeviceIdleController.aidl b/core/java/android/os/IDeviceIdleController.aidl
index aa255bf..8a7a594 100644
--- a/core/java/android/os/IDeviceIdleController.aidl
+++ b/core/java/android/os/IDeviceIdleController.aidl
@@ -31,11 +31,13 @@
String[] getSystemPowerWhitelistExceptIdle();
String[] getSystemPowerWhitelist();
String[] getUserPowerWhitelist();
+ @UnsupportedAppUsage
String[] getFullPowerWhitelistExceptIdle();
String[] getFullPowerWhitelist();
int[] getAppIdWhitelistExceptIdle();
int[] getAppIdWhitelist();
int[] getAppIdUserWhitelist();
+ @UnsupportedAppUsage
int[] getAppIdTempWhitelist();
boolean isPowerSaveWhitelistExceptIdleApp(String name);
boolean isPowerSaveWhitelistApp(String name);
diff --git a/core/java/android/os/INetworkManagementService.aidl b/core/java/android/os/INetworkManagementService.aidl
index 9b8a40a..0cce192 100644
--- a/core/java/android/os/INetworkManagementService.aidl
+++ b/core/java/android/os/INetworkManagementService.aidl
@@ -184,6 +184,7 @@
/**
* Returns a list of currently tethered interfaces
*/
+ @UnsupportedAppUsage
String[] listTetheredInterfaces();
/**
diff --git a/core/java/android/os/Parcel.java b/core/java/android/os/Parcel.java
index e1b5542..041f31d 100644
--- a/core/java/android/os/Parcel.java
+++ b/core/java/android/os/Parcel.java
@@ -364,6 +364,11 @@
* @hide
*/
public static class ReadWriteHelper {
+
+ @UnsupportedAppUsage
+ public ReadWriteHelper() {
+ }
+
public static final ReadWriteHelper DEFAULT = new ReadWriteHelper();
/**
diff --git a/core/java/android/os/RegistrantList.java b/core/java/android/os/RegistrantList.java
index e9bc637..9c017df 100644
--- a/core/java/android/os/RegistrantList.java
+++ b/core/java/android/os/RegistrantList.java
@@ -17,7 +17,6 @@
package android.os;
import android.annotation.UnsupportedAppUsage;
-import android.os.Handler;
import java.util.ArrayList;
@@ -27,6 +26,10 @@
ArrayList registrants = new ArrayList(); // of Registrant
@UnsupportedAppUsage
+ public RegistrantList() {
+ }
+
+ @UnsupportedAppUsage
public synchronized void
add(Handler h, int what, Object obj)
{
diff --git a/core/java/android/os/ServiceManager.java b/core/java/android/os/ServiceManager.java
index 9a9b030..bf9225a 100644
--- a/core/java/android/os/ServiceManager.java
+++ b/core/java/android/os/ServiceManager.java
@@ -102,6 +102,10 @@
});
@UnsupportedAppUsage
+ public ServiceManager() {
+ }
+
+ @UnsupportedAppUsage
private static IServiceManager getIServiceManager() {
if (sServiceManager != null) {
return sServiceManager;
diff --git a/core/java/android/os/storage/StorageEventListener.java b/core/java/android/os/storage/StorageEventListener.java
index 4aa0b08..39d5b45 100644
--- a/core/java/android/os/storage/StorageEventListener.java
+++ b/core/java/android/os/storage/StorageEventListener.java
@@ -24,6 +24,11 @@
* @hide
*/
public class StorageEventListener {
+
+ @UnsupportedAppUsage
+ public StorageEventListener() {
+ }
+
/**
* Called when the detection state of a USB Mass Storage host has changed.
* @param connected true if the USB mass storage is connected.
diff --git a/core/java/android/provider/CallLog.java b/core/java/android/provider/CallLog.java
index 3d54ba1..82a3c40 100644
--- a/core/java/android/provider/CallLog.java
+++ b/core/java/android/provider/CallLog.java
@@ -227,7 +227,7 @@
/**
* Indicates the call underwent Assisted Dialing.
- * @hide
+ * @see TelecomManager#EXTRA_USE_ASSISTED_DIALING
*/
public static final int FEATURES_ASSISTED_DIALING_USED = 1 << 4;
diff --git a/core/java/android/service/dreams/IDreamManager.aidl b/core/java/android/service/dreams/IDreamManager.aidl
index d3f2a70..d254ffd 100644
--- a/core/java/android/service/dreams/IDreamManager.aidl
+++ b/core/java/android/service/dreams/IDreamManager.aidl
@@ -29,6 +29,7 @@
void awaken();
@UnsupportedAppUsage
void setDreamComponents(in ComponentName[] componentNames);
+ @UnsupportedAppUsage
ComponentName[] getDreamComponents();
ComponentName getDefaultDreamComponent();
void testDream(in ComponentName componentName);
diff --git a/core/java/android/util/Singleton.java b/core/java/android/util/Singleton.java
index 33135e6..15c6b5b 100644
--- a/core/java/android/util/Singleton.java
+++ b/core/java/android/util/Singleton.java
@@ -26,6 +26,11 @@
* @hide
*/
public abstract class Singleton<T> {
+
+ @UnsupportedAppUsage
+ public Singleton() {
+ }
+
@UnsupportedAppUsage
private T mInstance;
diff --git a/core/java/android/view/AccessibilityIterators.java b/core/java/android/view/AccessibilityIterators.java
index 54cfc00..5f9bf39 100644
--- a/core/java/android/view/AccessibilityIterators.java
+++ b/core/java/android/view/AccessibilityIterators.java
@@ -47,6 +47,10 @@
public static abstract class AbstractTextSegmentIterator implements TextSegmentIterator {
@UnsupportedAppUsage
+ public AbstractTextSegmentIterator() {
+ }
+
+ @UnsupportedAppUsage
protected String mText;
private final int[] mSegment = new int[2];
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 4e86e60..1f6c38f 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -4555,6 +4555,11 @@
}
static class ListenerInfo {
+
+ @UnsupportedAppUsage
+ ListenerInfo() {
+ }
+
/**
* Listener used to dispatch focus change events.
* This field should be made private, so it is hidden from the SDK.
@@ -27831,6 +27836,10 @@
*/
private int mClassification;
+ @UnsupportedAppUsage
+ private CheckForLongPress() {
+ }
+
@Override
public void run() {
if ((mOriginalPressedState == isPressed()) && (mParent != null)
@@ -28316,6 +28325,11 @@
* whenever possible.
*/
static class InvalidateInfo {
+
+ @UnsupportedAppUsage
+ InvalidateInfo() {
+ }
+
private static final int POOL_LIMIT = 10;
private static final SynchronizedPool<InvalidateInfo> sPool =
diff --git a/core/java/android/view/ViewTreeObserver.java b/core/java/android/view/ViewTreeObserver.java
index c50a3aa..d002d7e 100644
--- a/core/java/android/view/ViewTreeObserver.java
+++ b/core/java/android/view/ViewTreeObserver.java
@@ -218,6 +218,11 @@
* @hide
*/
public final static class InternalInsetsInfo {
+
+ @UnsupportedAppUsage
+ public InternalInsetsInfo() {
+ }
+
/**
* Offsets from the frame of the window at which the content of
* windows behind it should be placed.
diff --git a/core/java/android/webkit/CacheManager.java b/core/java/android/webkit/CacheManager.java
index 563e00e..7e06719 100644
--- a/core/java/android/webkit/CacheManager.java
+++ b/core/java/android/webkit/CacheManager.java
@@ -50,6 +50,11 @@
*/
@Deprecated
public static class CacheResult {
+
+ @UnsupportedAppUsage
+ public CacheResult() {
+ }
+
// these fields are saved to the database
@UnsupportedAppUsage
int httpStatusCode;
diff --git a/core/java/android/widget/RelativeLayout.java b/core/java/android/widget/RelativeLayout.java
index 6b324a5..b9da307 100644
--- a/core/java/android/widget/RelativeLayout.java
+++ b/core/java/android/widget/RelativeLayout.java
@@ -36,7 +36,6 @@
import android.view.ViewHierarchyEncoder;
import android.view.accessibility.AccessibilityEvent;
import android.view.inspector.InspectableProperty;
-import android.view.inspector.InspectionCompanion;
import android.view.inspector.PropertyMapper;
import android.view.inspector.PropertyReader;
import android.widget.RemoteViews.RemoteView;
@@ -2026,6 +2025,11 @@
* A node with no dependent is considered a root of the graph.
*/
static class Node {
+
+ @UnsupportedAppUsage
+ Node() {
+ }
+
/**
* The view representing this node in the layout.
*/
diff --git a/core/java/android/widget/ScrollBarDrawable.java b/core/java/android/widget/ScrollBarDrawable.java
index 1bed32ec..a5d3e45 100644
--- a/core/java/android/widget/ScrollBarDrawable.java
+++ b/core/java/android/widget/ScrollBarDrawable.java
@@ -60,6 +60,10 @@
private ColorFilter mColorFilter;
private boolean mHasSetColorFilter;
+ @UnsupportedAppUsage
+ public ScrollBarDrawable() {
+ }
+
/**
* Indicate whether the horizontal scrollbar track should always be drawn
* regardless of the extent. Defaults to false.
diff --git a/core/java/com/android/internal/app/AlertActivity.java b/core/java/com/android/internal/app/AlertActivity.java
index 0b08099..7307de5 100644
--- a/core/java/com/android/internal/app/AlertActivity.java
+++ b/core/java/com/android/internal/app/AlertActivity.java
@@ -34,6 +34,10 @@
*/
public abstract class AlertActivity extends Activity implements DialogInterface {
+ @UnsupportedAppUsage
+ public AlertActivity() {
+ }
+
/**
* The model for the alert.
*
diff --git a/core/java/com/android/internal/app/ChooserActivity.java b/core/java/com/android/internal/app/ChooserActivity.java
index 00206fc..80c821b 100644
--- a/core/java/com/android/internal/app/ChooserActivity.java
+++ b/core/java/com/android/internal/app/ChooserActivity.java
@@ -25,6 +25,7 @@
import android.animation.ValueAnimator;
import android.annotation.IntDef;
import android.annotation.Nullable;
+import android.annotation.UnsupportedAppUsage;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.prediction.AppPredictionContext;
@@ -139,6 +140,9 @@
public class ChooserActivity extends ResolverActivity {
private static final String TAG = "ChooserActivity";
+ @UnsupportedAppUsage
+ public ChooserActivity() {
+ }
/**
* Boolean extra to change the following behavior: Normally, ChooserActivity finishes itself
diff --git a/core/java/com/android/internal/app/ResolverActivity.java b/core/java/com/android/internal/app/ResolverActivity.java
index 58ce03b..f22e62c 100644
--- a/core/java/com/android/internal/app/ResolverActivity.java
+++ b/core/java/com/android/internal/app/ResolverActivity.java
@@ -101,6 +101,10 @@
@UiThread
public class ResolverActivity extends Activity {
+ @UnsupportedAppUsage
+ public ResolverActivity() {
+ }
+
// Temporary flag for new chooser delegate behavior.
boolean mEnableChooserDelegate = true;
diff --git a/core/java/com/android/internal/content/PackageMonitor.java b/core/java/com/android/internal/content/PackageMonitor.java
index c928f3f..5d7d3af 100644
--- a/core/java/com/android/internal/content/PackageMonitor.java
+++ b/core/java/com/android/internal/content/PackageMonitor.java
@@ -27,6 +27,7 @@
import android.os.Looper;
import android.os.UserHandle;
import android.util.Slog;
+
import com.android.internal.os.BackgroundThread;
import com.android.internal.util.Preconditions;
@@ -72,6 +73,10 @@
String[] mTempArray = new String[1];
@UnsupportedAppUsage
+ public PackageMonitor() {
+ }
+
+ @UnsupportedAppUsage
public void register(Context context, Looper thread, boolean externalStorage) {
register(context, thread, null, externalStorage);
}
diff --git a/core/java/com/android/internal/logging/MetricsLogger.java b/core/java/com/android/internal/logging/MetricsLogger.java
index a691a24..f916cf6 100644
--- a/core/java/com/android/internal/logging/MetricsLogger.java
+++ b/core/java/com/android/internal/logging/MetricsLogger.java
@@ -41,6 +41,10 @@
private static MetricsLogger sMetricsLogger;
+ @UnsupportedAppUsage
+ public MetricsLogger() {
+ }
+
private static MetricsLogger getLogger() {
if (sMetricsLogger == null) {
sMetricsLogger = new MetricsLogger();
diff --git a/core/java/com/android/internal/net/LegacyVpnInfo.java b/core/java/com/android/internal/net/LegacyVpnInfo.java
index 9ee9710..2ad9759 100644
--- a/core/java/com/android/internal/net/LegacyVpnInfo.java
+++ b/core/java/com/android/internal/net/LegacyVpnInfo.java
@@ -45,6 +45,10 @@
public int state = -1;
public PendingIntent intent;
+ @UnsupportedAppUsage
+ public LegacyVpnInfo() {
+ }
+
@Override
public int describeContents() {
return 0;
diff --git a/core/java/com/android/internal/net/VpnConfig.java b/core/java/com/android/internal/net/VpnConfig.java
index 65b974b..e6be549 100644
--- a/core/java/com/android/internal/net/VpnConfig.java
+++ b/core/java/com/android/internal/net/VpnConfig.java
@@ -108,6 +108,10 @@
public Network[] underlyingNetworks;
public ProxyInfo proxyInfo;
+ @UnsupportedAppUsage
+ public VpnConfig() {
+ }
+
public void updateAllowedFamilies(InetAddress address) {
if (address instanceof Inet4Address) {
allowIPv4 = true;
diff --git a/core/java/com/android/internal/os/BaseCommand.java b/core/java/com/android/internal/os/BaseCommand.java
index 278f406..5ba6629 100644
--- a/core/java/com/android/internal/os/BaseCommand.java
+++ b/core/java/com/android/internal/os/BaseCommand.java
@@ -40,6 +40,10 @@
private String[] mRawArgs;
+ @UnsupportedAppUsage
+ public BaseCommand() {
+ }
+
/**
* Call to run the command.
*/
diff --git a/core/java/com/android/internal/os/BatterySipper.java b/core/java/com/android/internal/os/BatterySipper.java
index 02c9542..b1fc369 100644
--- a/core/java/com/android/internal/os/BatterySipper.java
+++ b/core/java/com/android/internal/os/BatterySipper.java
@@ -134,6 +134,8 @@
// This list must be kept current with atoms.proto (frameworks/base/cmds/statsd/src/atoms.proto)
// so the ordinal values (and therefore the order) must never change.
// ****************
+ @UnsupportedAppUsage(implicitMember =
+ "values()[Lcom/android/internal/os/BatterySipper$DrainType;")
public enum DrainType {
AMBIENT_DISPLAY,
@UnsupportedAppUsage
diff --git a/core/java/com/android/internal/preference/YesNoPreference.java b/core/java/com/android/internal/preference/YesNoPreference.java
index 7abf416..94ef619 100644
--- a/core/java/com/android/internal/preference/YesNoPreference.java
+++ b/core/java/com/android/internal/preference/YesNoPreference.java
@@ -23,6 +23,8 @@
import android.preference.DialogPreference;
import android.util.AttributeSet;
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
/**
* The {@link YesNoPreference} is a preference to show a dialog with Yes and No
* buttons.
@@ -40,6 +42,7 @@
this(context, attrs, defStyleAttr, 0);
}
+ @UnsupportedAppUsage
public YesNoPreference(Context context, AttributeSet attrs) {
this(context, attrs, com.android.internal.R.attr.yesNoPreferenceStyle);
}
diff --git a/core/java/com/android/internal/util/MemInfoReader.java b/core/java/com/android/internal/util/MemInfoReader.java
index 630916e..c1d129b 100644
--- a/core/java/com/android/internal/util/MemInfoReader.java
+++ b/core/java/com/android/internal/util/MemInfoReader.java
@@ -24,6 +24,10 @@
final long[] mInfos = new long[Debug.MEMINFO_COUNT];
@UnsupportedAppUsage
+ public MemInfoReader() {
+ }
+
+ @UnsupportedAppUsage
public void readMemInfo() {
// Permit disk reads here, as /proc/meminfo isn't really "on
// disk" and should be fast. TODO: make BlockGuard ignore
diff --git a/core/java/com/android/internal/widget/PointerLocationView.java b/core/java/com/android/internal/widget/PointerLocationView.java
index d48034b..1f5b070 100644
--- a/core/java/com/android/internal/widget/PointerLocationView.java
+++ b/core/java/com/android/internal/widget/PointerLocationView.java
@@ -91,6 +91,10 @@
private VelocityTracker.Estimator mEstimator = new VelocityTracker.Estimator();
private VelocityTracker.Estimator mAltEstimator = new VelocityTracker.Estimator();
+ @UnsupportedAppUsage
+ public PointerState() {
+ }
+
public void clearTrace() {
mTraceCount = 0;
}
diff --git a/core/java/com/android/server/net/BaseNetworkObserver.java b/core/java/com/android/server/net/BaseNetworkObserver.java
index a0740ee..e1a10a5 100644
--- a/core/java/com/android/server/net/BaseNetworkObserver.java
+++ b/core/java/com/android/server/net/BaseNetworkObserver.java
@@ -28,6 +28,11 @@
* @hide
*/
public class BaseNetworkObserver extends INetworkManagementEventObserver.Stub {
+
+ @UnsupportedAppUsage
+ public BaseNetworkObserver() {
+ }
+
@Override
public void interfaceStatusChanged(String iface, boolean up) {
// default no-op
diff --git a/core/java/com/google/android/util/AbstractMessageParser.java b/core/java/com/google/android/util/AbstractMessageParser.java
index 9d12f82..00fcb16 100644
--- a/core/java/com/google/android/util/AbstractMessageParser.java
+++ b/core/java/com/google/android/util/AbstractMessageParser.java
@@ -17,13 +17,14 @@
package com.google.android.util;
import android.annotation.UnsupportedAppUsage;
+
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import java.util.Set;
-import java.util.List;
/**
*
@@ -653,8 +654,9 @@
/** Represents a unit of parsed output. */
public static abstract class Token {
+ @UnsupportedAppUsage(implicitMember =
+ "values()[Lcom/google/android/util/AbstractMessageParser$Token$Type;")
public enum Type {
-
@UnsupportedAppUsage
HTML ("html"),
@UnsupportedAppUsage
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index fc93fe1..6c0fe46 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -529,7 +529,7 @@
- TYPE_ETHERNET (9) is prepended to this list, and
- - the return value of TelephonyManager.getTetherApnRequired()
+ - the return value of TelephonyManager.isTetherApnRequired()
determines how the array is further modified:
* TRUE (DUN REQUIRED).
diff --git a/location/java/com/android/internal/location/GpsNetInitiatedHandler.java b/location/java/com/android/internal/location/GpsNetInitiatedHandler.java
index e890514..f9b2fe0 100644
--- a/location/java/com/android/internal/location/GpsNetInitiatedHandler.java
+++ b/location/java/com/android/internal/location/GpsNetInitiatedHandler.java
@@ -37,6 +37,8 @@
import com.android.internal.notification.SystemNotificationChannels;
import com.android.internal.telephony.GsmAlphabet;
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
import java.io.UnsupportedEncodingException;
import java.util.concurrent.TimeUnit;
@@ -115,6 +117,7 @@
private final INetInitiatedListener mNetInitiatedListener;
// Set to true if string from HAL is encoded as Hex, e.g., "3F0039"
+ @UnsupportedAppUsage
static private boolean mIsHexInput = true;
// End time of emergency call, and extension, if set
@@ -123,6 +126,9 @@
public static class GpsNiNotification
{
+ @android.annotation.UnsupportedAppUsage
+ public GpsNiNotification() {
+ }
public int notificationId;
public int niType;
public boolean needNotify;
@@ -130,9 +136,13 @@
public boolean privacyOverride;
public int timeout;
public int defaultResponse;
+ @UnsupportedAppUsage
public String requestorId;
+ @UnsupportedAppUsage
public String text;
+ @UnsupportedAppUsage
public int requestorIdEncoding;
+ @UnsupportedAppUsage
public int textEncoding;
};
@@ -258,6 +268,7 @@
}
// Handles NI events from HAL
+ @UnsupportedAppUsage
public void handleNiNotification(GpsNiNotification notif) {
if (DEBUG) Log.d(TAG, "in handleNiNotification () :"
+ " notificationId: " + notif.notificationId
@@ -539,6 +550,7 @@
* set to -1, and <code> isHex </code> can be false.
* @return the decoded string
*/
+ @UnsupportedAppUsage
static private String decodeString(String original, boolean isHex, int coding)
{
if (coding == GPS_ENC_NONE || coding == GPS_ENC_UNKNOWN) {
diff --git a/location/java/com/android/internal/location/ILocationProvider.aidl b/location/java/com/android/internal/location/ILocationProvider.aidl
index a571630..8ae972b 100644
--- a/location/java/com/android/internal/location/ILocationProvider.aidl
+++ b/location/java/com/android/internal/location/ILocationProvider.aidl
@@ -29,10 +29,13 @@
*/
interface ILocationProvider {
+ @UnsupportedAppUsage
oneway void setLocationProviderManager(in ILocationProviderManager manager);
+ @UnsupportedAppUsage
oneway void setRequest(in ProviderRequest request, in WorkSource ws);
+ @UnsupportedAppUsage
oneway void sendExtraCommand(String command, in Bundle extras);
// --- deprecated and will be removed the future ---
diff --git a/media/java/android/media/IRingtonePlayer.aidl b/media/java/android/media/IRingtonePlayer.aidl
index c038f36..02fa94c 100644
--- a/media/java/android/media/IRingtonePlayer.aidl
+++ b/media/java/android/media/IRingtonePlayer.aidl
@@ -27,6 +27,7 @@
*/
interface IRingtonePlayer {
/** Used for Ringtone.java playback */
+ @UnsupportedAppUsage
oneway void play(IBinder token, in Uri uri, in AudioAttributes aa, float volume, boolean looping);
oneway void playWithVolumeShaping(IBinder token, in Uri uri, in AudioAttributes aa,
float volume, boolean looping, in @nullable VolumeShaper.Configuration volumeShaperConfig);
diff --git a/media/java/android/media/MediaFile.java b/media/java/android/media/MediaFile.java
index 09221a37..c4eb031 100644
--- a/media/java/android/media/MediaFile.java
+++ b/media/java/android/media/MediaFile.java
@@ -79,6 +79,10 @@
@UnsupportedAppUsage
private static final HashMap<Integer, String> sFormatToMimeTypeMap = new HashMap<>();
+ @UnsupportedAppUsage
+ public MediaFile() {
+ }
+
/** @deprecated file types no longer exist */
@Deprecated
@UnsupportedAppUsage
diff --git a/media/lib/tvremote/OWNERS b/media/lib/tvremote/OWNERS
new file mode 100644
index 0000000..81d52e1
--- /dev/null
+++ b/media/lib/tvremote/OWNERS
@@ -0,0 +1,2 @@
+nutka@google.com
+skill@google.com
diff --git a/native/android/libandroid_net.map.txt b/native/android/libandroid_net.map.txt
index be3531d..8d4e900 100644
--- a/native/android/libandroid_net.map.txt
+++ b/native/android/libandroid_net.map.txt
@@ -1,15 +1,19 @@
-# They are also all available to vendor code.
+# The following symbols marked with # llndk are available to vendor code.
+# Unlike other VNDK libraries where keeping backwards compatibility is required
+# only within a platform release, these symbols need much longer suppport
+# because the same LLNDK library serves for both system and vendor partition
+# which might be a few years old.
LIBANDROID_NET {
global:
# These functions have been part of the NDK since API 24.
- android_getaddrinfofornetwork; # vndk
- android_setsocknetwork; # vndk
- android_setprocnetwork; # vndk
+ android_getaddrinfofornetwork; # llndk
+ android_setsocknetwork; # llndk
+ android_setprocnetwork; # llndk
# These functions have been part of the NDK since API 29.
- android_res_cancel; # vndk
- android_res_nquery; # vndk
- android_res_nresult; # vndk
- android_res_nsend; # vndk
+ android_res_cancel; # llndk
+ android_res_nquery; # llndk
+ android_res_nresult; # llndk
+ android_res_nsend; # llndk
local:
*;
};
diff --git a/opengl/java/com/google/android/gles_jni/EGLImpl.java b/opengl/java/com/google/android/gles_jni/EGLImpl.java
index 41fb072..f94f69f 100644
--- a/opengl/java/com/google/android/gles_jni/EGLImpl.java
+++ b/opengl/java/com/google/android/gles_jni/EGLImpl.java
@@ -16,12 +16,18 @@
package com.google.android.gles_jni;
-import javax.microedition.khronos.egl.*;
-
import android.graphics.SurfaceTexture;
import android.view.Surface;
-import android.view.SurfaceView;
import android.view.SurfaceHolder;
+import android.view.SurfaceView;
+
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
+import javax.microedition.khronos.egl.EGL10;
+import javax.microedition.khronos.egl.EGLConfig;
+import javax.microedition.khronos.egl.EGLContext;
+import javax.microedition.khronos.egl.EGLDisplay;
+import javax.microedition.khronos.egl.EGLSurface;
public class EGLImpl implements EGL10 {
private EGLContextImpl mContext = new EGLContextImpl(-1);
@@ -50,6 +56,10 @@
/** @hide **/
public static native int getInitCount(EGLDisplay display);
+ @UnsupportedAppUsage
+ public EGLImpl() {
+ }
+
public EGLContext eglCreateContext(EGLDisplay display, EGLConfig config, EGLContext share_context, int[] attrib_list) {
long eglContextId = _eglCreateContext(display, config, share_context, attrib_list);
if (eglContextId == 0) {
diff --git a/opengl/java/com/google/android/gles_jni/GLImpl.java b/opengl/java/com/google/android/gles_jni/GLImpl.java
index d4c0c80..2a8d07f 100644
--- a/opengl/java/com/google/android/gles_jni/GLImpl.java
+++ b/opengl/java/com/google/android/gles_jni/GLImpl.java
@@ -26,7 +26,10 @@
import android.os.UserHandle;
import android.util.Log;
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
import java.nio.Buffer;
+
import javax.microedition.khronos.opengles.GL10;
import javax.microedition.khronos.opengles.GL10Ext;
import javax.microedition.khronos.opengles.GL11;
@@ -56,6 +59,7 @@
private boolean have_OES_framebuffer_object;
private boolean have_OES_texture_cube_map;
+ @UnsupportedAppUsage
public GLImpl() {
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java
index e75365e..c519f56 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java
@@ -22,6 +22,8 @@
import android.os.Handler;
import android.os.Looper;
import android.provider.Settings.Global;
+import android.telephony.CellSignalStrength;
+import android.telephony.CellSignalStrengthCdma;
import android.telephony.NetworkRegistrationInfo;
import android.telephony.PhoneStateListener;
import android.telephony.ServiceState;
@@ -48,6 +50,7 @@
import java.io.PrintWriter;
import java.util.BitSet;
import java.util.Objects;
+import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -457,6 +460,18 @@
}
/**
+ * Extracts the CellSignalStrengthCdma from SignalStrength then returns the level
+ */
+ private final int getCdmaLevel() {
+ List<CellSignalStrengthCdma> signalStrengthCdma =
+ mSignalStrength.getCellSignalStrengths(CellSignalStrengthCdma.class);
+ if (!signalStrengthCdma.isEmpty()) {
+ return signalStrengthCdma.get(0).getLevel();
+ }
+ return CellSignalStrength.SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
+ }
+
+ /**
* Updates the current state based on mServiceState, mSignalStrength, mDataNetType,
* mDataState, and mSimState. It should be called any time one of these is updated.
* This will call listeners if necessary.
@@ -470,7 +485,7 @@
&& mSignalStrength != null;
if (mCurrentState.connected) {
if (!mSignalStrength.isGsm() && mConfig.alwaysShowCdmaRssi) {
- mCurrentState.level = mSignalStrength.getCdmaLevel();
+ mCurrentState.level = getCdmaLevel();
} else {
mCurrentState.level = mSignalStrength.getLevel();
}
diff --git a/packages/Tethering/src/com/android/server/connectivity/tethering/TetheringConfiguration.java b/packages/Tethering/src/com/android/server/connectivity/tethering/TetheringConfiguration.java
index 7709727..cf0e3b2 100644
--- a/packages/Tethering/src/com/android/server/connectivity/tethering/TetheringConfiguration.java
+++ b/packages/Tethering/src/com/android/server/connectivity/tethering/TetheringConfiguration.java
@@ -251,7 +251,7 @@
/** Check whether dun is required. */
public static boolean checkDunRequired(Context ctx, int id) {
final TelephonyManager tm = (TelephonyManager) ctx.getSystemService(TELEPHONY_SERVICE);
- return (tm != null) ? tm.getTetherApnRequired(id) : false;
+ return (tm != null) ? tm.isTetherApnRequired(id) : false;
}
private static Collection<Integer> getUpstreamIfaceTypes(Resources res, boolean dunRequired) {
diff --git a/packages/Tethering/tests/unit/src/com/android/server/connectivity/tethering/TetheringConfigurationTest.java b/packages/Tethering/tests/unit/src/com/android/server/connectivity/tethering/TetheringConfigurationTest.java
index 9f9221f..9c65c0d 100644
--- a/packages/Tethering/tests/unit/src/com/android/server/connectivity/tethering/TetheringConfigurationTest.java
+++ b/packages/Tethering/tests/unit/src/com/android/server/connectivity/tethering/TetheringConfigurationTest.java
@@ -145,7 +145,7 @@
@Test
public void testDunFromTelephonyManagerMeansDun() {
- when(mTelephonyManager.getTetherApnRequired(anyInt())).thenReturn(true);
+ when(mTelephonyManager.isTetherApnRequired(anyInt())).thenReturn(true);
final TetheringConfiguration cfgWifi = getTetheringConfiguration(TYPE_WIFI);
final TetheringConfiguration cfgMobileWifiHipri = getTetheringConfiguration(
@@ -169,7 +169,7 @@
@Test
public void testDunNotRequiredFromTelephonyManagerMeansNoDun() {
- when(mTelephonyManager.getTetherApnRequired(anyInt())).thenReturn(false);
+ when(mTelephonyManager.isTetherApnRequired(anyInt())).thenReturn(false);
final TetheringConfiguration cfgWifi = getTetheringConfiguration(TYPE_WIFI);
final TetheringConfiguration cfgMobileWifiHipri = getTetheringConfiguration(
@@ -212,7 +212,7 @@
@Test
public void testNoDefinedUpstreamTypesAddsEthernet() {
when(mResources.getIntArray(config_tether_upstream_types)).thenReturn(new int[]{});
- when(mTelephonyManager.getTetherApnRequired(anyInt())).thenReturn(false);
+ when(mTelephonyManager.isTetherApnRequired(anyInt())).thenReturn(false);
final TetheringConfiguration cfg = new TetheringConfiguration(
mMockContext, mLog, INVALID_SUBSCRIPTION_ID);
@@ -235,7 +235,7 @@
public void testDefinedUpstreamTypesSansEthernetAddsEthernet() {
when(mResources.getIntArray(config_tether_upstream_types)).thenReturn(
new int[]{TYPE_WIFI, TYPE_MOBILE_HIPRI});
- when(mTelephonyManager.getTetherApnRequired(anyInt())).thenReturn(false);
+ when(mTelephonyManager.isTetherApnRequired(anyInt())).thenReturn(false);
final TetheringConfiguration cfg = new TetheringConfiguration(
mMockContext, mLog, INVALID_SUBSCRIPTION_ID);
@@ -253,7 +253,7 @@
public void testDefinedUpstreamTypesWithEthernetDoesNotAddEthernet() {
when(mResources.getIntArray(config_tether_upstream_types))
.thenReturn(new int[]{TYPE_WIFI, TYPE_ETHERNET, TYPE_MOBILE_HIPRI});
- when(mTelephonyManager.getTetherApnRequired(anyInt())).thenReturn(false);
+ when(mTelephonyManager.isTetherApnRequired(anyInt())).thenReturn(false);
final TetheringConfiguration cfg = new TetheringConfiguration(
mMockContext, mLog, INVALID_SUBSCRIPTION_ID);
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 7609632..e5c8ba5 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -24,6 +24,7 @@
import static android.Manifest.permission.REMOVE_TASKS;
import static android.Manifest.permission.START_ACTIVITIES_FROM_BACKGROUND;
import static android.app.ActivityManager.INSTR_FLAG_DISABLE_HIDDEN_API_CHECKS;
+import static android.app.ActivityManager.INSTR_FLAG_DISABLE_TEST_API_CHECKS;
import static android.app.ActivityManager.INSTR_FLAG_MOUNT_EXTERNAL_STORAGE_FULL;
import static android.app.ActivityManager.PROCESS_STATE_LAST_ACTIVITY;
import static android.app.ActivityManager.PROCESS_STATE_NONEXISTENT;
@@ -15769,13 +15770,12 @@
boolean disableHiddenApiChecks = ai.usesNonSdkApi()
|| (flags & INSTR_FLAG_DISABLE_HIDDEN_API_CHECKS) != 0;
- if (disableHiddenApiChecks) {
+ boolean disableTestApiChecks = disableHiddenApiChecks
+ || (flags & INSTR_FLAG_DISABLE_TEST_API_CHECKS) != 0;
+ if (disableHiddenApiChecks || disableTestApiChecks) {
enforceCallingPermission(android.Manifest.permission.DISABLE_HIDDEN_API_CHECKS,
"disable hidden API checks");
}
- // Allow instrumented processes access to test APIs.
- // TODO(satayev): make this configurable via testing framework.
- boolean disableTestApiChecks = true;
final boolean mountExtStorageFull = isCallerShell()
&& (flags & INSTR_FLAG_MOUNT_EXTERNAL_STORAGE_FULL) != 0;
diff --git a/services/core/java/com/android/server/am/ActivityManagerShellCommand.java b/services/core/java/com/android/server/am/ActivityManagerShellCommand.java
index 0c1388c..6e92e80 100644
--- a/services/core/java/com/android/server/am/ActivityManagerShellCommand.java
+++ b/services/core/java/com/android/server/am/ActivityManagerShellCommand.java
@@ -3032,7 +3032,8 @@
pw.println(" specified then send to all users.");
pw.println(" --receiver-permission <PERMISSION>: Require receiver to hold permission.");
pw.println(" instrument [-r] [-e <NAME> <VALUE>] [-p <FILE>] [-w]");
- pw.println(" [--user <USER_ID> | current] [--no-hidden-api-checks]");
+ pw.println(" [--user <USER_ID> | current]");
+ pw.println(" [--no-hidden-api-checks [--no-test-api-checks]]");
pw.println(" [--no-isolated-storage]");
pw.println(" [--no-window-animation] [--abi <ABI>] <COMPONENT>");
pw.println(" Start an Instrumentation. Typically this target <COMPONENT> is in the");
@@ -3052,6 +3053,8 @@
pw.println(" --user <USER_ID> | current: Specify user instrumentation runs in;");
pw.println(" current user if not specified.");
pw.println(" --no-hidden-api-checks: disable restrictions on use of hidden API.");
+ pw.println(" --no-test-api-checks: disable restrictions to test APIs, if hidden");
+ pw.println(" API checks are enabled.");
pw.println(" --no-isolated-storage: don't use isolated storage sandbox and ");
pw.println(" mount full external storage");
pw.println(" --no-window-animation: turn off window animations while running.");
diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java
index 24569a6..1f1e8a5 100644
--- a/services/core/java/com/android/server/audio/AudioService.java
+++ b/services/core/java/com/android/server/audio/AudioService.java
@@ -1461,10 +1461,13 @@
}
if (!TextUtils.isEmpty(packageName)) {
PackageManager pm = mContext.getPackageManager();
+ ActivityManager am =
+ (ActivityManager) mContext.getSystemService(mContext.ACTIVITY_SERVICE);
+
if (pm.checkPermission(Manifest.permission.CAPTURE_AUDIO_HOTWORD, packageName)
== PackageManager.PERMISSION_GRANTED) {
try {
- assistantUid = pm.getPackageUid(packageName, 0);
+ assistantUid = pm.getPackageUidAsUser(packageName, am.getCurrentUser());
} catch (PackageManager.NameNotFoundException e) {
Log.e(TAG,
"updateAssistantUId() could not find UID for package: " + packageName);
diff --git a/services/core/java/com/android/server/audio/FocusRequester.java b/services/core/java/com/android/server/audio/FocusRequester.java
index bd129f7..41008c2 100644
--- a/services/core/java/com/android/server/audio/FocusRequester.java
+++ b/services/core/java/com/android/server/audio/FocusRequester.java
@@ -437,7 +437,8 @@
}
int dispatchFocusChange(int focusChange) {
- if (mFocusDispatcher == null) {
+ final IAudioFocusDispatcher fd = mFocusDispatcher;
+ if (fd == null) {
if (MediaFocusControl.DEBUG) { Log.e(TAG, "dispatchFocusChange: no focus dispatcher"); }
return AudioManager.AUDIOFOCUS_REQUEST_FAILED;
}
@@ -457,7 +458,7 @@
mFocusLossReceived = focusChange;
}
try {
- mFocusDispatcher.dispatchAudioFocusChange(focusChange, mClientId);
+ fd.dispatchAudioFocusChange(focusChange, mClientId);
} catch (android.os.RemoteException e) {
Log.e(TAG, "dispatchFocusChange: error talking to focus listener " + mClientId, e);
return AudioManager.AUDIOFOCUS_REQUEST_FAILED;
@@ -466,16 +467,18 @@
}
void dispatchFocusResultFromExtPolicy(int requestResult) {
- if (mFocusDispatcher == null) {
+ final IAudioFocusDispatcher fd = mFocusDispatcher;
+ if (fd == null) {
if (MediaFocusControl.DEBUG) {
Log.e(TAG, "dispatchFocusResultFromExtPolicy: no focus dispatcher");
}
+ return;
}
if (DEBUG) {
Log.v(TAG, "dispatching result" + requestResult + " to " + mClientId);
}
try {
- mFocusDispatcher.dispatchFocusResultFromExtPolicy(requestResult, mClientId);
+ fd.dispatchFocusResultFromExtPolicy(requestResult, mClientId);
} catch (android.os.RemoteException e) {
Log.e(TAG, "dispatchFocusResultFromExtPolicy: error talking to focus listener"
+ mClientId, e);
diff --git a/services/core/java/com/android/server/timezone/RulesManagerService.java b/services/core/java/com/android/server/timezone/RulesManagerService.java
index 28c171b..9347d21 100644
--- a/services/core/java/com/android/server/timezone/RulesManagerService.java
+++ b/services/core/java/com/android/server/timezone/RulesManagerService.java
@@ -32,6 +32,7 @@
import android.app.timezone.RulesManager;
import android.app.timezone.RulesState;
import android.content.Context;
+import android.icu.util.TimeZone;
import android.os.ParcelFileDescriptor;
import android.os.RemoteException;
import android.util.Slog;
@@ -45,7 +46,6 @@
import com.android.timezone.distro.TimeZoneDistro;
import com.android.timezone.distro.installer.TimeZoneDistroInstaller;
-import libcore.icu.ICU;
import libcore.timezone.TimeZoneDataFiles;
import libcore.timezone.TimeZoneFinder;
import libcore.timezone.TzDataSetVersion;
@@ -519,7 +519,7 @@
// Report the active rules version (i.e. the rules in use by the current
// process).
pw.println("Active rules version (ICU, ZoneInfoDB, TimeZoneFinder): "
- + ICU.getTZDataVersion() + ","
+ + TimeZone.getTZDataVersion() + ","
+ ZoneInfoDB.getInstance().getVersion() + ","
+ TimeZoneFinder.getInstance().getIanaVersion());
break;
@@ -535,7 +535,7 @@
pw.println("RulesManagerService state: " + toString());
pw.println("Active rules version (ICU, ZoneInfoDB, TimeZoneFinder): "
- + ICU.getTZDataVersion() + ","
+ + TimeZone.getTZDataVersion() + ","
+ ZoneInfoDB.getInstance().getVersion() + ","
+ TimeZoneFinder.getInstance().getIanaVersion());
pw.println("Distro state: " + rulesState.toString());
diff --git a/telecomm/java/android/telecom/Call.java b/telecomm/java/android/telecom/Call.java
index 60290e3..3ecf8d7 100644
--- a/telecomm/java/android/telecom/Call.java
+++ b/telecomm/java/android/telecom/Call.java
@@ -25,8 +25,11 @@
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
+import android.os.IBinder;
import android.os.ParcelFileDescriptor;
+import com.android.internal.telecom.IVideoProvider;
+
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
@@ -512,8 +515,8 @@
/**
* Indicates the call used Assisted Dialing.
- * See also {@link Connection#PROPERTY_ASSISTED_DIALING_USED}
- * @hide
+ *
+ * @see TelecomManager#EXTRA_USE_ASSISTED_DIALING
*/
public static final int PROPERTY_ASSISTED_DIALING_USED = 0x00000200;
@@ -1181,7 +1184,8 @@
public void onConferenceableCallsChanged(Call call, List<Call> conferenceableCalls) {}
/**
- * Invoked when a {@link Call} receives an event from its associated {@link Connection}.
+ * Invoked when a {@link Call} receives an event from its associated {@link Connection} or
+ * {@link Conference}.
* <p>
* Where possible, the Call should make an attempt to handle {@link Connection} events which
* are part of the {@code android.telecom.*} namespace. The Call should ignore any events
@@ -1189,7 +1193,8 @@
* possible that a {@link ConnectionService} has defined its own Connection events which a
* Call is not aware of.
* <p>
- * See {@link Connection#sendConnectionEvent(String, Bundle)}.
+ * See {@link Connection#sendConnectionEvent(String, Bundle)},
+ * {@link Conference#sendConferenceEvent(String, Bundle)}.
*
* @param call The {@code Call} receiving the event.
* @param event The event.
@@ -2130,13 +2135,22 @@
cannedTextResponsesChanged = true;
}
- VideoCallImpl newVideoCallImpl = parcelableCall.getVideoCallImpl(mCallingPackage,
- mTargetSdkVersion);
- boolean videoCallChanged = parcelableCall.isVideoCallProviderChanged() &&
- !Objects.equals(mVideoCallImpl, newVideoCallImpl);
+ IVideoProvider previousVideoProvider = mVideoCallImpl == null ? null :
+ mVideoCallImpl.getVideoProvider();
+ IVideoProvider newVideoProvider = parcelableCall.getVideoProvider();
+
+ // parcelableCall.isVideoCallProviderChanged is only true when we have a video provider
+ // specified; so we should check if the actual IVideoProvider changes as well.
+ boolean videoCallChanged = parcelableCall.isVideoCallProviderChanged()
+ && !Objects.equals(previousVideoProvider, newVideoProvider);
if (videoCallChanged) {
- mVideoCallImpl = newVideoCallImpl;
+ if (mVideoCallImpl != null) {
+ mVideoCallImpl.destroy();
+ }
+ mVideoCallImpl = parcelableCall.isVideoCallProviderChanged() ?
+ parcelableCall.getVideoCallImpl(mCallingPackage, mTargetSdkVersion) : null;
}
+
if (mVideoCallImpl != null) {
mVideoCallImpl.setVideoState(getDetails().getVideoState());
}
diff --git a/telecomm/java/android/telecom/CallScreeningService.java b/telecomm/java/android/telecom/CallScreeningService.java
index ef1c790..b91787c 100644
--- a/telecomm/java/android/telecom/CallScreeningService.java
+++ b/telecomm/java/android/telecom/CallScreeningService.java
@@ -106,8 +106,14 @@
SomeArgs args = (SomeArgs) msg.obj;
try {
mCallScreeningAdapter = (ICallScreeningAdapter) args.arg1;
- onScreenCall(
- Call.Details.createFromParcelableCall((ParcelableCall) args.arg2));
+ Call.Details callDetails = Call.Details
+ .createFromParcelableCall((ParcelableCall) args.arg2);
+ onScreenCall(callDetails);
+ if (callDetails.getCallDirection() == Call.Details.DIRECTION_OUTGOING) {
+ mCallScreeningAdapter.allowCall(callDetails.getTelecomCallId());
+ }
+ } catch (RemoteException e) {
+ Log.w(this, "Exception when screening call: " + e);
} finally {
args.recycle();
}
diff --git a/telecomm/java/android/telecom/Conference.java b/telecomm/java/android/telecom/Conference.java
index cd5fd97..d669e905 100644
--- a/telecomm/java/android/telecom/Conference.java
+++ b/telecomm/java/android/telecom/Conference.java
@@ -49,7 +49,7 @@
public static final long CONNECT_TIME_NOT_SPECIFIED = 0;
/** @hide */
- public abstract static class Listener {
+ abstract static class Listener {
public void onStateChanged(Conference conference, int oldState, int newState) {}
public void onDisconnected(Conference conference, DisconnectCause disconnectCause) {}
public void onConnectionAdded(Conference conference, Connection connection) {}
@@ -120,11 +120,17 @@
/**
* Returns the telecom internal call ID associated with this conference.
+ * <p>
+ * Note: This is ONLY used for debugging purposes so that the Telephony stack can better
+ * associate logs in Telephony with those in Telecom.
+ * The ID returned should not be used for any other purpose.
*
* @return The telecom call ID.
* @hide
*/
- public final String getTelecomCallId() {
+ @SystemApi
+ @TestApi
+ public final @NonNull String getTelecomCallId() {
return mTelecomCallId;
}
@@ -186,55 +192,6 @@
}
/**
- * Whether the given capabilities support the specified capability.
- *
- * @param capabilities A capability bit field.
- * @param capability The capability to check capabilities for.
- * @return Whether the specified capability is supported.
- * @hide
- */
- public static boolean can(int capabilities, int capability) {
- return (capabilities & capability) != 0;
- }
-
- /**
- * Whether the capabilities of this {@code Connection} supports the specified capability.
- *
- * @param capability The capability to check capabilities for.
- * @return Whether the specified capability is supported.
- * @hide
- */
- public boolean can(int capability) {
- return can(mConnectionCapabilities, capability);
- }
-
- /**
- * Removes the specified capability from the set of capabilities of this {@code Conference}.
- *
- * @param capability The capability to remove from the set.
- * @hide
- */
- public void removeCapability(int capability) {
- int newCapabilities = mConnectionCapabilities;
- newCapabilities &= ~capability;
-
- setConnectionCapabilities(newCapabilities);
- }
-
- /**
- * Adds the specified capability to the set of capabilities of this {@code Conference}.
- *
- * @param capability The capability to add to the set.
- * @hide
- */
- public void addCapability(int capability) {
- int newCapabilities = mConnectionCapabilities;
- newCapabilities |= capability;
-
- setConnectionCapabilities(newCapabilities);
- }
-
- /**
* @return The audio state of the conference, describing how its audio is currently
* being routed by the system. This is {@code null} if this Conference
* does not directly know about its audio state.
@@ -553,7 +510,7 @@
* @return This conference.
* @hide
*/
- public final Conference addListener(Listener listener) {
+ final Conference addListener(Listener listener) {
mListeners.add(listener);
return this;
}
@@ -565,7 +522,7 @@
* @return This conference.
* @hide
*/
- public final Conference removeListener(Listener listener) {
+ final Conference removeListener(Listener listener) {
mListeners.remove(listener);
return this;
}
@@ -587,20 +544,6 @@
}
/**
- * Updates RIL voice radio technology used for current conference after its creation.
- *
- * @hide
- */
- public void updateCallRadioTechAfterCreation() {
- final Connection primaryConnection = getPrimaryConnection();
- if (primaryConnection != null) {
- setCallRadioTech(primaryConnection.getCallRadioTech());
- } else {
- Log.w(this, "No primary connection found while updateCallRadioTechAfterCreation");
- }
- }
-
- /**
* @hide
* @deprecated Use {@link #setConnectionTime}.
*/
@@ -668,49 +611,24 @@
* Retrieves the connection start time of the {@link Conference}, if specified. A value of
* {@link #CONNECT_TIME_NOT_SPECIFIED} indicates that Telecom should determine the start time
* of the conference.
- *
+ * <p>
* This is based on the value of {@link SystemClock#elapsedRealtime()} to ensure that it is not
* impacted by wall clock changes (user initiated, network initiated, time zone change, etc).
+ * <p>
+ * Note: This is only exposed for use by the Telephony framework which needs it to copy
+ * conference start times among conference participants. It is exposed as a system API since it
+ * has no general use other than to the Telephony framework.
*
* @return The elapsed time at which the {@link Conference} was connected.
* @hide
*/
+ @SystemApi
+ @TestApi
public final long getConnectionStartElapsedRealTime() {
return mConnectionStartElapsedRealTime;
}
/**
- * Sets RIL voice radio technology used for current conference.
- *
- * @param vrat the RIL voice radio technology used for current conference,
- * see {@code RIL_RADIO_TECHNOLOGY_*} in {@link android.telephony.ServiceState}.
- *
- * @hide
- */
- public final void setCallRadioTech(@ServiceState.RilRadioTechnology int vrat) {
- putExtra(TelecomManager.EXTRA_CALL_NETWORK_TYPE,
- ServiceState.rilRadioTechnologyToNetworkType(vrat));
- }
-
- /**
- * Returns RIL voice radio technology used for current conference.
- *
- * @return the RIL voice radio technology used for current conference,
- * see {@code RIL_RADIO_TECHNOLOGY_*} in {@link android.telephony.ServiceState}.
- *
- * @hide
- */
- public final @ServiceState.RilRadioTechnology int getCallRadioTech() {
- int voiceNetworkType = TelephonyManager.NETWORK_TYPE_UNKNOWN;
- Bundle extras = getExtras();
- if (extras != null) {
- voiceNetworkType = extras.getInt(TelecomManager.EXTRA_CALL_NETWORK_TYPE,
- TelephonyManager.NETWORK_TYPE_UNKNOWN);
- }
- return ServiceState.networkTypeToRilRadioTechnology(voiceNetworkType);
- }
-
- /**
* Inform this Conference that the state of its audio output has been changed externally.
*
* @param state The new audio state.
@@ -969,11 +887,15 @@
* single-party call when the participant count drops to 1. Although the dialer/phone app
* could perform this trickery, it makes sense to do this in Telephony since a fix there will
* ensure that bluetooth head units, auto and wearable apps all behave consistently.
+ * <p>
+ * This API is intended for use by the platform Telephony stack only.
*
* @param isConference {@code true} if this {@link Conference} should be treated like a
* conference call, {@code false} if it should be treated like a single-party call.
* @hide
*/
+ @SystemApi
+ @TestApi
public void setConferenceState(boolean isConference) {
for (Listener l : mListeners) {
l.onConferenceStateChanged(this, isConference);
@@ -983,13 +905,19 @@
/**
* Sets the address of this {@link Conference}. Used when {@link #setConferenceState(boolean)}
* is called to mark a conference temporarily as NOT a conference.
+ * <p>
+ * Note: This is a Telephony-specific implementation detail related to IMS conferences. It is
+ * not intended for use outside of the Telephony stack.
*
* @param address The new address.
* @param presentation The presentation requirements for the address.
* See {@link TelecomManager} for valid values.
* @hide
*/
- public final void setAddress(Uri address, int presentation) {
+ @SystemApi
+ @TestApi
+ public final void setAddress(@NonNull Uri address,
+ @TelecomManager.Presentation int presentation) {
Log.d(this, "setAddress %s", address);
mAddress = address;
mAddressPresentation = presentation;
@@ -1055,13 +983,19 @@
* Sets the caller display name (CNAP) of this {@link Conference}. Used when
* {@link #setConferenceState(boolean)} is called to mark a conference temporarily as NOT a
* conference.
+ * <p>
+ * Note: This is a Telephony-specific implementation detail related to IMS conferences. It is
+ * not intended for use outside of the Telephony stack.
*
* @param callerDisplayName The new display name.
* @param presentation The presentation requirements for the handle.
* See {@link TelecomManager} for valid values.
* @hide
*/
- public final void setCallerDisplayName(String callerDisplayName, int presentation) {
+ @SystemApi
+ @TestApi
+ public final void setCallerDisplayName(@NonNull String callerDisplayName,
+ @TelecomManager.Presentation int presentation) {
Log.d(this, "setCallerDisplayName %s", callerDisplayName);
mCallerDisplayName = callerDisplayName;
mCallerDisplayNamePresentation = presentation;
@@ -1088,10 +1022,15 @@
}
/**
- * See {@link Connection#sendConnectionEvent(String, Bundle)}
- * @hide
+ * Sends an event associated with this {@code Conference} with associated event extras to the
+ * {@link InCallService} (note: this is identical in concept to
+ * {@link Connection#sendConnectionEvent(String, Bundle)}).
+ * @see Connection#sendConnectionEvent(String, Bundle)
+ *
+ * @param event The connection event.
+ * @param extras Optional bundle containing extra information associated with the event.
*/
- public void sendConnectionEvent(String event, Bundle extras) {
+ public void sendConferenceEvent(@NonNull String event, @Nullable Bundle extras) {
for (Listener l : mListeners) {
l.onConnectionEvent(this, event, extras);
}
diff --git a/telecomm/java/android/telecom/ConferenceParticipant.java b/telecomm/java/android/telecom/ConferenceParticipant.java
deleted file mode 100644
index 5e4818a..0000000
--- a/telecomm/java/android/telecom/ConferenceParticipant.java
+++ /dev/null
@@ -1,348 +0,0 @@
-/*
- * Copyright (C) 2014 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.telecom;
-
-import android.net.Uri;
-import android.os.Parcel;
-import android.os.Parcelable;
-import android.telephony.PhoneNumberUtils;
-import android.text.TextUtils;
-
-import com.android.internal.annotations.VisibleForTesting;
-import com.android.internal.telephony.PhoneConstants;
-
-/**
- * Parcelable representation of a participant's state in a conference call.
- * @hide
- */
-public class ConferenceParticipant implements Parcelable {
-
- /**
- * RFC5767 states that a SIP URI with an unknown number should use an address of
- * {@code anonymous@anonymous.invalid}. E.g. the host name is anonymous.invalid.
- */
- private static final String ANONYMOUS_INVALID_HOST = "anonymous.invalid";
- /**
- * The conference participant's handle (e.g., phone number).
- */
- private final Uri mHandle;
-
- /**
- * The display name for the participant.
- */
- private final String mDisplayName;
-
- /**
- * The endpoint Uri which uniquely identifies this conference participant. E.g. for an IMS
- * conference call, this is the endpoint URI for the participant on the IMS conference server.
- */
- private final Uri mEndpoint;
-
- /**
- * The state of the participant in the conference.
- *
- * @see android.telecom.Connection
- */
- private final int mState;
-
- /**
- * The connect time of the participant.
- */
- private long mConnectTime;
-
- /**
- * The connect elapsed time of the participant.
- */
- private long mConnectElapsedTime;
-
- /**
- * The direction of the call;
- * {@link Call.Details#DIRECTION_INCOMING} for incoming calls, or
- * {@link Call.Details#DIRECTION_OUTGOING} for outgoing calls.
- */
- private int mCallDirection;
-
- /**
- * Creates an instance of {@code ConferenceParticipant}.
- *
- * @param handle The conference participant's handle (e.g., phone number).
- * @param displayName The display name for the participant.
- * @param endpoint The enpoint Uri which uniquely identifies this conference participant.
- * @param state The state of the participant in the conference.
- * @param callDirection The direction of the call (incoming/outgoing).
- */
- public ConferenceParticipant(Uri handle, String displayName, Uri endpoint, int state,
- int callDirection) {
- mHandle = handle;
- mDisplayName = displayName;
- mEndpoint = endpoint;
- mState = state;
- mCallDirection = callDirection;
- }
-
- /**
- * Responsible for creating {@code ConferenceParticipant} objects for deserialized Parcels.
- */
- public static final @android.annotation.NonNull Parcelable.Creator<ConferenceParticipant> CREATOR =
- new Parcelable.Creator<ConferenceParticipant>() {
-
- @Override
- public ConferenceParticipant createFromParcel(Parcel source) {
- ClassLoader classLoader = ParcelableCall.class.getClassLoader();
- Uri handle = source.readParcelable(classLoader);
- String displayName = source.readString();
- Uri endpoint = source.readParcelable(classLoader);
- int state = source.readInt();
- long connectTime = source.readLong();
- long elapsedRealTime = source.readLong();
- int callDirection = source.readInt();
- ConferenceParticipant participant =
- new ConferenceParticipant(handle, displayName, endpoint, state,
- callDirection);
- participant.setConnectTime(connectTime);
- participant.setConnectElapsedTime(elapsedRealTime);
- participant.setCallDirection(callDirection);
- return participant;
- }
-
- @Override
- public ConferenceParticipant[] newArray(int size) {
- return new ConferenceParticipant[size];
- }
- };
-
- @Override
- public int describeContents() {
- return 0;
- }
-
- /**
- * Determines the number presentation for a conference participant. Per RFC5767, if the host
- * name contains {@code anonymous.invalid} we can assume that there is no valid caller ID
- * information for the caller, otherwise we'll assume that the URI can be shown.
- *
- * @return The number presentation.
- */
- @VisibleForTesting
- public int getParticipantPresentation() {
- Uri address = getHandle();
- if (address == null) {
- return PhoneConstants.PRESENTATION_RESTRICTED;
- }
-
- String number = address.getSchemeSpecificPart();
- // If no number, bail early and set restricted presentation.
- if (TextUtils.isEmpty(number)) {
- return PhoneConstants.PRESENTATION_RESTRICTED;
- }
- // Per RFC3261, the host name portion can also potentially include extra information:
- // E.g. sip:anonymous1@anonymous.invalid;legid=1
- // In this case, hostName will be anonymous.invalid and there is an extra parameter for
- // legid=1.
- // Parameters are optional, and the address (e.g. test@test.com) will always be the first
- // part, with any parameters coming afterwards.
- String [] hostParts = number.split("[;]");
- String addressPart = hostParts[0];
-
- // Get the number portion from the address part.
- // This will typically be formatted similar to: 6505551212@test.com
- String [] numberParts = addressPart.split("[@]");
-
- // If we can't parse the host name out of the URI, then there is probably other data
- // present, and is likely a valid SIP URI.
- if (numberParts.length != 2) {
- return PhoneConstants.PRESENTATION_ALLOWED;
- }
- String hostName = numberParts[1];
-
- // If the hostname portion of the SIP URI is the invalid host string, presentation is
- // restricted.
- if (hostName.equals(ANONYMOUS_INVALID_HOST)) {
- return PhoneConstants.PRESENTATION_RESTRICTED;
- }
-
- return PhoneConstants.PRESENTATION_ALLOWED;
- }
-
- /**
- * Writes the {@code ConferenceParticipant} to a parcel.
- *
- * @param dest The Parcel in which the object should be written.
- * @param flags Additional flags about how the object should be written.
- */
- @Override
- public void writeToParcel(Parcel dest, int flags) {
- dest.writeParcelable(mHandle, 0);
- dest.writeString(mDisplayName);
- dest.writeParcelable(mEndpoint, 0);
- dest.writeInt(mState);
- dest.writeLong(mConnectTime);
- dest.writeLong(mConnectElapsedTime);
- dest.writeInt(mCallDirection);
- }
-
- /**
- * Builds a string representation of this instance.
- *
- * @return String representing the conference participant.
- */
- @Override
- public String toString() {
- StringBuilder sb = new StringBuilder();
- sb.append("[ConferenceParticipant Handle: ");
- sb.append(Log.pii(mHandle));
- sb.append(" DisplayName: ");
- sb.append(Log.pii(mDisplayName));
- sb.append(" Endpoint: ");
- sb.append(Log.pii(mEndpoint));
- sb.append(" State: ");
- sb.append(Connection.stateToString(mState));
- sb.append(" ConnectTime: ");
- sb.append(getConnectTime());
- sb.append(" ConnectElapsedTime: ");
- sb.append(getConnectElapsedTime());
- sb.append(" Direction: ");
- sb.append(getCallDirection() == Call.Details.DIRECTION_INCOMING ? "Incoming" : "Outgoing");
- sb.append("]");
- return sb.toString();
- }
-
- /**
- * The conference participant's handle (e.g., phone number).
- */
- public Uri getHandle() {
- return mHandle;
- }
-
- /**
- * The display name for the participant.
- */
- public String getDisplayName() {
- return mDisplayName;
- }
-
- /**
- * The enpoint Uri which uniquely identifies this conference participant. E.g. for an IMS
- * conference call, this is the endpoint URI for the participant on the IMS conference server.
- */
- public Uri getEndpoint() {
- return mEndpoint;
- }
-
- /**
- * The state of the participant in the conference.
- *
- * @see android.telecom.Connection
- */
- public int getState() {
- return mState;
- }
-
- /**
- * The connect time of the participant to the conference.
- */
- public long getConnectTime() {
- return mConnectTime;
- }
-
- public void setConnectTime(long connectTime) {
- this.mConnectTime = connectTime;
- }
-
- /**
- * The connect elapsed time of the participant to the conference.
- */
- public long getConnectElapsedTime() {
- return mConnectElapsedTime;
- }
-
- public void setConnectElapsedTime(long connectElapsedTime) {
- mConnectElapsedTime = connectElapsedTime;
- }
-
- /**
- * @return The direction of the call (incoming/outgoing).
- */
- public @Call.Details.CallDirection int getCallDirection() {
- return mCallDirection;
- }
-
- /**
- * Sets the direction of the call.
- * @param callDirection Whether the call is incoming or outgoing.
- */
- public void setCallDirection(@Call.Details.CallDirection int callDirection) {
- mCallDirection = callDirection;
- }
-
- /**
- * Attempts to build a tel: style URI from a conference participant.
- * Conference event package data contains SIP URIs, so we try to extract the phone number and
- * format into a typical tel: style URI.
- *
- * @param address The conference participant's address.
- * @param countryIso The country ISO of the current subscription; used when formatting the
- * participant phone number to E.164 format.
- * @return The participant's address URI.
- * @hide
- */
- @VisibleForTesting
- public static Uri getParticipantAddress(Uri address, String countryIso) {
- if (address == null) {
- return address;
- }
- // Even if address is already in tel: format, still parse it and rebuild.
- // This is to recognize tel URIs such as:
- // tel:6505551212;phone-context=ims.mnc012.mcc034.3gppnetwork.org
-
- // Conference event package participants are identified using SIP URIs (see RFC3261).
- // A valid SIP uri has the format: sip:user:password@host:port;uri-parameters?headers
- // Per RFC3261, the "user" can be a telephone number.
- // For example: sip:1650555121;phone-context=blah.com@host.com
- // In this case, the phone number is in the user field of the URI, and the parameters can be
- // ignored.
- //
- // A SIP URI can also specify a phone number in a format similar to:
- // sip:+1-212-555-1212@something.com;user=phone
- // In this case, the phone number is again in user field and the parameters can be ignored.
- // We can get the user field in these instances by splitting the string on the @, ;, or :
- // and looking at the first found item.
- String number = address.getSchemeSpecificPart();
- if (TextUtils.isEmpty(number)) {
- return address;
- }
-
- String numberParts[] = number.split("[@;:]");
- if (numberParts.length == 0) {
- return address;
- }
- number = numberParts[0];
-
- // Attempt to format the number in E.164 format and use that as part of the TEL URI.
- // RFC2806 recommends to format telephone numbers using E.164 since it is independent of
- // how the dialing of said numbers takes place.
- // If conversion to E.164 fails, the returned value is null. In that case, fallback to the
- // number which was in the CEP data.
- String formattedNumber = null;
- if (!TextUtils.isEmpty(countryIso)) {
- formattedNumber = PhoneNumberUtils.formatNumberToE164(number, countryIso);
- }
-
- return Uri.fromParts(PhoneAccount.SCHEME_TEL,
- formattedNumber != null ? formattedNumber : number, null);
- }
-}
diff --git a/telecomm/java/android/telecom/Connection.java b/telecomm/java/android/telecom/Connection.java
index 4f373af..e2f5d0bb 100644
--- a/telecomm/java/android/telecom/Connection.java
+++ b/telecomm/java/android/telecom/Connection.java
@@ -19,6 +19,7 @@
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SystemApi;
+import android.annotation.TestApi;
import android.annotation.UnsupportedAppUsage;
import android.app.Notification;
import android.bluetooth.BluetoothDevice;
@@ -273,6 +274,7 @@
* @hide
*/
@SystemApi
+ @TestApi
public static final int CAPABILITY_SPEED_UP_MT_AUDIO = 0x00040000;
/**
@@ -310,6 +312,7 @@
* @hide
*/
@SystemApi
+ @TestApi
public static final int CAPABILITY_CONFERENCE_HAS_NO_CHILDREN = 0x00200000;
/**
@@ -356,6 +359,7 @@
* @hide
*/
@SystemApi
+ @TestApi
public static final int PROPERTY_EMERGENCY_CALLBACK_MODE = 1<<0;
/**
@@ -366,6 +370,7 @@
* @hide
*/
@SystemApi
+ @TestApi
public static final int PROPERTY_GENERIC_CONFERENCE = 1<<1;
/**
@@ -417,6 +422,7 @@
* @hide
*/
@SystemApi
+ @TestApi
public static final int PROPERTY_IS_DOWNGRADED_CONFERENCE = 1<<6;
/**
@@ -435,7 +441,10 @@
/**
* Set by the framework to indicate that a connection is using assisted dialing.
- * @hide
+ * <p>
+ * This is used for outgoing calls.
+ *
+ * @see TelecomManager#EXTRA_USE_ASSISTED_DIALING
*/
public static final int PROPERTY_ASSISTED_DIALING_USED = 1 << 9;
@@ -457,6 +466,7 @@
* @hide
*/
@SystemApi
+ @TestApi
public static final int PROPERTY_REMOTELY_HOSTED = 1 << 11;
//**********************************************************************************************
@@ -515,6 +525,7 @@
* @hide
*/
@SystemApi
+ @TestApi
public static final String EXTRA_DISABLE_ADD_CALL =
"android.telecom.extra.DISABLE_ADD_CALL";
@@ -1806,6 +1817,7 @@
* @hide
*/
@SystemApi
+ @TestApi
public final @Nullable String getTelecomCallId() {
return mTelecomCallId;
}
@@ -1922,6 +1934,7 @@
* @hide
*/
@SystemApi
+ @TestApi
public final long getConnectTimeMillis() {
return mConnectTimeMillis;
}
@@ -1941,32 +1954,12 @@
* @hide
*/
@SystemApi
+ @TestApi
public final long getConnectElapsedTimeMillis() {
return mConnectElapsedTimeMillis;
}
/**
- * Returns RIL voice radio technology used for current connection.
- * <p>
- * Used by the Telephony {@link ConnectionService}.
- *
- * @return the RIL voice radio technology used for current connection,
- * see {@code RIL_RADIO_TECHNOLOGY_*} in {@link android.telephony.ServiceState}.
- *
- * @hide
- */
- @SystemApi
- public final @ServiceState.RilRadioTechnology int getCallRadioTech() {
- int voiceNetworkType = TelephonyManager.NETWORK_TYPE_UNKNOWN;
- Bundle extras = getExtras();
- if (extras != null) {
- voiceNetworkType = extras.getInt(TelecomManager.EXTRA_CALL_NETWORK_TYPE,
- TelephonyManager.NETWORK_TYPE_UNKNOWN);
- }
- return ServiceState.networkTypeToRilRadioTechnology(voiceNetworkType);
- }
-
- /**
* @return The status hints for this connection.
*/
public final StatusHints getStatusHints() {
@@ -2044,6 +2037,7 @@
* @hide
*/
@SystemApi
+ @TestApi
public void setTelecomCallId(@NonNull String callId) {
mTelecomCallId = callId;
}
@@ -2390,6 +2384,7 @@
* @hide
*/
@SystemApi
+ @TestApi
public final void setConnectTimeMillis(long connectTimeMillis) {
mConnectTimeMillis = connectTimeMillis;
}
@@ -2405,39 +2400,12 @@
* @hide
*/
@SystemApi
+ @TestApi
public final void setConnectionStartElapsedRealTime(long connectElapsedTimeMillis) {
mConnectElapsedTimeMillis = connectElapsedTimeMillis;
}
/**
- * Sets RIL voice radio technology used for current connection.
- * <p>
- * This property is set by the Telephony {@link ConnectionService}.
- *
- * @param vrat the RIL Voice Radio Technology used for current connection,
- * see {@code RIL_RADIO_TECHNOLOGY_*} in {@link android.telephony.ServiceState}.
- *
- * @hide
- */
- @SystemApi
- public final void setCallRadioTech(@ServiceState.RilRadioTechnology int vrat) {
- Bundle extras = getExtras();
- if (extras == null) {
- extras = new Bundle();
- }
- extras.putInt(TelecomManager.EXTRA_CALL_NETWORK_TYPE,
- ServiceState.rilRadioTechnologyToNetworkType(vrat));
- putExtras(extras);
- // Propagates the call radio technology to its parent {@link android.telecom.Conference}
- // This action only covers non-IMS CS conference calls.
- // For IMS PS call conference call, it can be updated via its host connection
- // {@link #Listener.onExtrasChanged} event.
- if (getConference() != null) {
- getConference().setCallRadioTech(vrat);
- }
- }
-
- /**
* Sets the label and icon status to display in the in-call UI.
*
* @param statusHints The status label and icon to set.
@@ -2501,6 +2469,7 @@
* @hide
*/
@SystemApi
+ @TestApi
public final void resetConnectionTime() {
for (Listener l : mListeners) {
l.onConnectionTimeReset(this);
@@ -3245,6 +3214,7 @@
* @hide
*/
@SystemApi
+ @TestApi
public void setPhoneAccountHandle(@NonNull PhoneAccountHandle phoneAccountHandle) {
if (mPhoneAccountHandle != phoneAccountHandle) {
mPhoneAccountHandle = phoneAccountHandle;
@@ -3263,6 +3233,7 @@
* @hide
*/
@SystemApi
+ @TestApi
public @Nullable PhoneAccountHandle getPhoneAccountHandle() {
return mPhoneAccountHandle;
}
@@ -3328,6 +3299,7 @@
* @hide
*/
@SystemApi
+ @TestApi
public void setCallDirection(@Call.Details.CallDirection int callDirection) {
mCallDirection = callDirection;
}
diff --git a/telecomm/java/android/telecom/ConnectionService.java b/telecomm/java/android/telecom/ConnectionService.java
index 0abd9fc..812b805 100644
--- a/telecomm/java/android/telecom/ConnectionService.java
+++ b/telecomm/java/android/telecom/ConnectionService.java
@@ -16,7 +16,11 @@
package android.telecom;
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.annotation.RequiresPermission;
import android.annotation.SdkConstant;
+import android.annotation.SystemApi;
import android.app.Service;
import android.content.ComponentName;
import android.content.Intent;
@@ -2106,15 +2110,21 @@
/**
* Adds a connection created by the {@link ConnectionService} and informs telecom of the new
- * connection.
+ * connection, as well as adding that connection to the specified conference.
+ * <p>
+ * Note: This API is intended ONLY for use by the Telephony stack to provide an easy way to add
+ * IMS conference participants to be added to a conference in a single step; this helps ensure
+ * UI updates happen atomically, rather than adding the connection and then adding it to
+ * the conference in another step.
*
* @param phoneAccountHandle The phone account handle for the connection.
* @param connection The connection to add.
* @param conference The parent conference of the new connection.
* @hide
*/
- public final void addExistingConnection(PhoneAccountHandle phoneAccountHandle,
- Connection connection, Conference conference) {
+ @SystemApi
+ public final void addExistingConnection(@NonNull PhoneAccountHandle phoneAccountHandle,
+ @NonNull Connection connection, @NonNull Conference conference) {
String id = addExistingConnectionInternal(phoneAccountHandle, connection);
if (id != null) {
diff --git a/telecomm/java/android/telecom/ParcelableCall.java b/telecomm/java/android/telecom/ParcelableCall.java
index aa50991..fdc3243 100644
--- a/telecomm/java/android/telecom/ParcelableCall.java
+++ b/telecomm/java/android/telecom/ParcelableCall.java
@@ -21,6 +21,7 @@
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
+import android.os.IBinder;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.RemoteException;
@@ -225,6 +226,10 @@
return mVideoCall;
}
+ public IVideoProvider getVideoProvider() {
+ return mVideoCallProvider;
+ }
+
public boolean getIsRttCallChanged() {
return mIsRttCallChanged;
}
diff --git a/telecomm/java/android/telecom/Phone.java b/telecomm/java/android/telecom/Phone.java
index 2ecdb30..61a639a1 100644
--- a/telecomm/java/android/telecom/Phone.java
+++ b/telecomm/java/android/telecom/Phone.java
@@ -152,13 +152,20 @@
return;
}
- Call call = new Call(this, parcelableCall.getId(), mInCallAdapter,
- parcelableCall.getState(), mCallingPackage, mTargetSdkVersion);
- mCallByTelecomCallId.put(parcelableCall.getId(), call);
- mCalls.add(call);
- checkCallTree(parcelableCall);
- call.internalUpdate(parcelableCall, mCallByTelecomCallId);
- fireCallAdded(call);
+ Call call = mCallByTelecomCallId.get(parcelableCall.getId());
+ if (call == null) {
+ call = new Call(this, parcelableCall.getId(), mInCallAdapter,
+ parcelableCall.getState(), mCallingPackage, mTargetSdkVersion);
+ mCallByTelecomCallId.put(parcelableCall.getId(), call);
+ mCalls.add(call);
+ checkCallTree(parcelableCall);
+ call.internalUpdate(parcelableCall, mCallByTelecomCallId);
+ fireCallAdded(call);
+ } else {
+ Log.w(this, "Call %s added, but it was already present", call.internalGetCallId());
+ checkCallTree(parcelableCall);
+ call.internalUpdate(parcelableCall, mCallByTelecomCallId);
+ }
}
final void internalRemoveCall(Call call) {
@@ -190,7 +197,11 @@
} else {
// This call may have come out of audio processing. Try adding it if our target sdk
// version is low enough.
- if (mTargetSdkVersion < SDK_VERSION_R) {
+ // The only two allowable states coming out of audio processing are ACTIVE and
+ // SIMULATED_RINGING.
+ if (mTargetSdkVersion < SDK_VERSION_R && (parcelableCall.getState() == Call.STATE_ACTIVE
+ || parcelableCall.getState() == Call.STATE_SIMULATED_RINGING)) {
+ Log.i(this, "adding call during update for sdk compatibility");
internalAddCall(parcelableCall);
}
}
diff --git a/telecomm/java/android/telecom/PhoneAccount.java b/telecomm/java/android/telecom/PhoneAccount.java
index 1b783b7..bb858cb 100644
--- a/telecomm/java/android/telecom/PhoneAccount.java
+++ b/telecomm/java/android/telecom/PhoneAccount.java
@@ -16,7 +16,9 @@
package android.telecom;
+import android.annotation.NonNull;
import android.annotation.SystemApi;
+import android.annotation.TestApi;
import android.content.Intent;
import android.graphics.drawable.Icon;
import android.net.Uri;
@@ -592,12 +594,17 @@
* only be one {@link PhoneAccount} with a non-empty group number registered to Telecom at a
* time. By default, there is no group Id for a {@link PhoneAccount} (an empty String). Only
* grouped {@link PhoneAccount}s with the same {@link ConnectionService} can be replaced.
+ * <p>
+ * Note: This is an API specific to the Telephony stack.
+ *
* @param groupId The group Id of the {@link PhoneAccount} that will replace any other
* registered {@link PhoneAccount} in Telecom with the same Group Id.
* @return The builder
* @hide
*/
- public Builder setGroupId(String groupId) {
+ @SystemApi
+ @TestApi
+ public @NonNull Builder setGroupId(@NonNull String groupId) {
if (groupId != null) {
mGroupId = groupId;
} else {
diff --git a/telecomm/java/android/telecom/TelecomManager.java b/telecomm/java/android/telecom/TelecomManager.java
index 2bc20d5..cda3387 100644
--- a/telecomm/java/android/telecom/TelecomManager.java
+++ b/telecomm/java/android/telecom/TelecomManager.java
@@ -14,6 +14,8 @@
package android.telecom;
+import static android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE;
+
import android.Manifest;
import android.annotation.IntDef;
import android.annotation.Nullable;
@@ -696,7 +698,17 @@
/**
* The boolean indicated by this extra controls whether or not a call is eligible to undergo
* assisted dialing. This extra is stored under {@link #EXTRA_OUTGOING_CALL_EXTRAS}.
- * @hide
+ * <p>
+ * The call initiator can use this extra to indicate that a call used assisted dialing to help
+ * place the call. This is most commonly used by a Dialer app which provides the ability to
+ * automatically add dialing prefixes when placing international calls.
+ * <p>
+ * Setting this extra on the outgoing call extras will cause the
+ * {@link Connection#PROPERTY_ASSISTED_DIALING_USED} property and
+ * {@link Call.Details#PROPERTY_ASSISTED_DIALING_USED} property to be set on the
+ * {@link Connection}/{@link Call} in question. When the call is logged to the call log, the
+ * {@link android.provider.CallLog.Calls#FEATURES_ASSISTED_DIALING_USED} call feature is set to
+ * indicate that assisted dialing was used for the call.
*/
public static final String EXTRA_USE_ASSISTED_DIALING =
"android.telecom.extra.USE_ASSISTED_DIALING";
@@ -738,6 +750,14 @@
*/
public static final int PRESENTATION_PAYPHONE = 4;
+ /** @hide */
+ @Retention(RetentionPolicy.SOURCE)
+ @IntDef(
+ prefix = { "PRESENTATION_" },
+ value = {PRESENTATION_ALLOWED, PRESENTATION_RESTRICTED, PRESENTATION_UNKNOWN,
+ PRESENTATION_PAYPHONE})
+ public @interface Presentation {}
+
private static final String TAG = "TelecomManager";
private final Context mContext;
@@ -883,9 +903,8 @@
* queried for.
* @return The phone account handle of the current sim call manager.
* @see SubscriptionManager#getActiveSubscriptionInfoList()
- * @hide
*/
- public PhoneAccountHandle getSimCallManagerForSubscription(int subscriptionId) {
+ public @Nullable PhoneAccountHandle getSimCallManagerForSubscription(int subscriptionId) {
try {
if (isServiceConnected()) {
return getTelecomService().getSimCallManager(subscriptionId);
@@ -947,7 +966,7 @@
*/
@SystemApi
@RequiresPermission(anyOf = {
- android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE,
+ READ_PRIVILEGED_PHONE_STATE,
android.Manifest.permission.READ_PHONE_STATE
})
public List<PhoneAccountHandle> getPhoneAccountsSupportingScheme(String uriScheme) {
@@ -1234,6 +1253,28 @@
}
/**
+ * Used to determine the currently selected default dialer package for a specific user.
+ *
+ * @param userId the user id to query the default dialer package for.
+ * @return package name for the default dialer package or null if no package has been
+ * selected as the default dialer.
+ * @hide
+ */
+ @SystemApi
+ @TestApi
+ @RequiresPermission(READ_PRIVILEGED_PHONE_STATE)
+ public @Nullable String getDefaultDialerPackage(int userId) {
+ try {
+ if (isServiceConnected()) {
+ return getTelecomService().getDefaultDialerPackageForUser(userId);
+ }
+ } catch (RemoteException e) {
+ Log.e(TAG, "RemoteException attempting to get the default dialer package name.", e);
+ }
+ return null;
+ }
+
+ /**
* Used to set the default dialer package.
*
* @param packageName to set the default dialer to, or {@code null} if the system provided
@@ -1432,7 +1473,7 @@
*/
@SystemApi
@RequiresPermission(anyOf = {
- android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE,
+ READ_PRIVILEGED_PHONE_STATE,
android.Manifest.permission.READ_PHONE_STATE
})
public boolean isRinging() {
@@ -1562,7 +1603,7 @@
* Returns whether TTY is supported on this device.
*/
@RequiresPermission(anyOf = {
- android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE,
+ READ_PRIVILEGED_PHONE_STATE,
android.Manifest.permission.READ_PHONE_STATE
})
public boolean isTtySupported() {
@@ -1588,7 +1629,7 @@
*/
@SystemApi
@TestApi
- @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
+ @RequiresPermission(READ_PRIVILEGED_PHONE_STATE)
public @TtyMode int getCurrentTtyMode() {
try {
if (isServiceConnected()) {
diff --git a/telecomm/java/android/telecom/VideoCallImpl.java b/telecomm/java/android/telecom/VideoCallImpl.java
index cb74012..4a1aa0a 100644
--- a/telecomm/java/android/telecom/VideoCallImpl.java
+++ b/telecomm/java/android/telecom/VideoCallImpl.java
@@ -32,6 +32,8 @@
import com.android.internal.telecom.IVideoCallback;
import com.android.internal.telecom.IVideoProvider;
+import java.util.NoSuchElementException;
+
/**
* Implementation of a Video Call, which allows InCallUi to communicate commands to the underlying
* {@link Connection.VideoProvider}, and direct callbacks from the
@@ -53,7 +55,11 @@
private IBinder.DeathRecipient mDeathRecipient = new IBinder.DeathRecipient() {
@Override
public void binderDied() {
- mVideoProvider.asBinder().unlinkToDeath(this, 0);
+ try {
+ mVideoProvider.asBinder().unlinkToDeath(this, 0);
+ } catch (NoSuchElementException nse) {
+ // Already unlinked in destroy below.
+ }
}
};
@@ -222,6 +228,11 @@
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 127403196)
public void destroy() {
unregisterCallback(mCallback);
+ try {
+ mVideoProvider.asBinder().unlinkToDeath(mDeathRecipient, 0);
+ } catch (NoSuchElementException nse) {
+ // Already unlinked in binderDied above.
+ }
}
/** {@inheritDoc} */
@@ -353,4 +364,12 @@
public void setVideoState(int videoState) {
mVideoState = videoState;
}
+
+ /**
+ * Get the video provider binder.
+ * @return the video provider binder.
+ */
+ public IVideoProvider getVideoProvider() {
+ return mVideoProvider;
+ }
}
diff --git a/telecomm/java/com/android/internal/telecom/ITelecomService.aidl b/telecomm/java/com/android/internal/telecom/ITelecomService.aidl
index 6a1b78f..33fdb9c 100644
--- a/telecomm/java/com/android/internal/telecom/ITelecomService.aidl
+++ b/telecomm/java/com/android/internal/telecom/ITelecomService.aidl
@@ -146,6 +146,11 @@
String getDefaultDialerPackage();
/**
+ * @see TelecomServiceImpl#getDefaultDialerPackage
+ */
+ String getDefaultDialerPackageForUser(int userId);
+
+ /**
* @see TelecomServiceImpl#getSystemDialerPackage
*/
String getSystemDialerPackage();
diff --git a/telephony/common/com/android/internal/telephony/SmsApplication.java b/telephony/common/com/android/internal/telephony/SmsApplication.java
index 5dcc751..f79aef3 100644
--- a/telephony/common/com/android/internal/telephony/SmsApplication.java
+++ b/telephony/common/com/android/internal/telephony/SmsApplication.java
@@ -47,6 +47,8 @@
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
@@ -56,6 +58,8 @@
import java.util.concurrent.TimeoutException;
import java.util.function.Consumer;
+
+
/**
* Class for managing the primary application that we will deliver SMS/MMS messages to
*
@@ -90,6 +94,7 @@
/**
* Name of this SMS app for display.
*/
+ @UnsupportedAppUsage
private String mApplicationName;
/**
@@ -223,6 +228,7 @@
* Implement ACTION_SENDTO intent.
* Support smsto Uri scheme.
*/
+ @UnsupportedAppUsage
public static Collection<SmsApplicationData> getApplicationCollection(Context context) {
return getApplicationCollectionAsUser(context, getIncomingUserId(context));
}
@@ -578,6 +584,7 @@
* Sets the specified package as the default SMS/MMS application. The caller of this method
* needs to have permission to set AppOps and write to secure settings.
*/
+ @UnsupportedAppUsage
public static void setDefaultApplication(String packageName, Context context) {
setDefaultApplicationAsUser(packageName, context, getIncomingUserId(context));
}
@@ -825,6 +832,7 @@
sSmsPackageMonitor.register(context, context.getMainLooper(), UserHandle.ALL, false);
}
+ @UnsupportedAppUsage
private static void configurePreferredActivity(PackageManager packageManager,
ComponentName componentName, int userId) {
// Add the four activity preferences we want to direct to this app.
@@ -867,6 +875,7 @@
* Returns SmsApplicationData for this package if this package is capable of being set as the
* default SMS application.
*/
+ @UnsupportedAppUsage
public static SmsApplicationData getSmsApplicationData(String packageName, Context context) {
Collection<SmsApplicationData> applications = getApplicationCollection(context);
return getApplicationForPackage(applications, packageName);
@@ -878,6 +887,7 @@
* @param updateIfNeeded update the default app if there is no valid default app configured.
* @return component name of the app and class to deliver SMS messages to
*/
+ @UnsupportedAppUsage
public static ComponentName getDefaultSmsApplication(Context context, boolean updateIfNeeded) {
return getDefaultSmsApplicationAsUser(context, updateIfNeeded, getIncomingUserId(context));
}
@@ -912,6 +922,7 @@
* @param updateIfNeeded update the default app if there is no valid default app configured.
* @return component name of the app and class to deliver MMS messages to
*/
+ @UnsupportedAppUsage
public static ComponentName getDefaultMmsApplication(Context context, boolean updateIfNeeded) {
int userId = getIncomingUserId(context);
final long token = Binder.clearCallingIdentity();
@@ -935,6 +946,7 @@
* @param updateIfNeeded update the default app if there is no valid default app configured.
* @return component name of the app and class to direct Respond Via Message intent to
*/
+ @UnsupportedAppUsage
public static ComponentName getDefaultRespondViaMessageApplication(Context context,
boolean updateIfNeeded) {
int userId = getIncomingUserId(context);
@@ -1035,6 +1047,7 @@
* <p>
* Caller must pass in the correct user context if calling from a singleton service.
*/
+ @UnsupportedAppUsage
public static boolean shouldWriteMessageForPackage(String packageName, Context context) {
return !isDefaultSmsApplication(context, packageName);
}
@@ -1046,6 +1059,7 @@
* @param packageName the name of the package to be checked
* @return true if the package is default sms app or bluetooth
*/
+ @UnsupportedAppUsage
public static boolean isDefaultSmsApplication(Context context, String packageName) {
if (packageName == null) {
return false;
diff --git a/telephony/java/android/telephony/SubscriptionInfo.java b/telephony/java/android/telephony/SubscriptionInfo.java
index 36e8123..58f2858 100644
--- a/telephony/java/android/telephony/SubscriptionInfo.java
+++ b/telephony/java/android/telephony/SubscriptionInfo.java
@@ -551,7 +551,6 @@
*
* @param context Context of the application to check.
* @return whether the app is authorized to manage this subscription per its metadata.
- * @throws UnsupportedOperationException if this subscription is not embedded.
* @hide
* @deprecated - Do not use.
*/
@@ -567,15 +566,11 @@
* @param context Any context.
* @param packageName Package name of the app to check.
* @return whether the app is authorized to manage this subscription per its metadata.
- * @throws UnsupportedOperationException if this subscription is not embedded.
* @hide
* @deprecated - Do not use.
*/
@Deprecated
public boolean canManageSubscription(Context context, String packageName) {
- if (!isEmbedded()) {
- throw new UnsupportedOperationException("Not an embedded subscription");
- }
List<UiccAccessRule> allAccessRules = getAllAccessRules();
if (allAccessRules == null) {
return false;
@@ -585,7 +580,8 @@
try {
packageInfo = packageManager.getPackageInfo(packageName, PackageManager.GET_SIGNATURES);
} catch (PackageManager.NameNotFoundException e) {
- throw new IllegalArgumentException("Unknown package: " + packageName, e);
+ Log.d("SubscriptionInfo", "canManageSubscription: Unknown package: " + packageName, e);
+ return false;
}
for (UiccAccessRule rule : allAccessRules) {
if (rule.getCarrierPrivilegeStatus(packageInfo)
@@ -606,9 +602,6 @@
*/
@SystemApi
public @Nullable List<UiccAccessRule> getAccessRules() {
- if (!isEmbedded()) {
- throw new UnsupportedOperationException("Not an embedded subscription");
- }
if (mNativeAccessRules == null) return null;
return Arrays.asList(mNativeAccessRules);
}
@@ -619,11 +612,10 @@
* @hide
*/
public @Nullable List<UiccAccessRule> getAllAccessRules() {
- if (!isEmbedded()) {
- throw new UnsupportedOperationException("Not an embedded subscription");
- }
List<UiccAccessRule> merged = new ArrayList<>();
- if (mNativeAccessRules != null) merged.addAll(getAccessRules());
+ if (mNativeAccessRules != null) {
+ merged.addAll(getAccessRules());
+ }
if (mCarrierConfigAccessRules != null) {
merged.addAll(Arrays.asList(mCarrierConfigAccessRules));
}
diff --git a/telephony/java/android/telephony/SubscriptionManager.java b/telephony/java/android/telephony/SubscriptionManager.java
index b35549e..8e6e9b8 100644
--- a/telephony/java/android/telephony/SubscriptionManager.java
+++ b/telephony/java/android/telephony/SubscriptionManager.java
@@ -2624,7 +2624,6 @@
*
* @param info The subscription to check.
* @return whether the app is authorized to manage this subscription per its metadata.
- * @throws IllegalArgumentException if this subscription is not embedded.
*/
public boolean canManageSubscription(SubscriptionInfo info) {
return canManageSubscription(info, mContext.getPackageName());
@@ -2640,14 +2639,10 @@
* @param info The subscription to check.
* @param packageName Package name of the app to check.
* @return whether the app is authorized to manage this subscription per its access rules.
- * @throws IllegalArgumentException if this subscription is not embedded.
* @hide
*/
public boolean canManageSubscription(SubscriptionInfo info, String packageName) {
- if (!info.isEmbedded()) {
- throw new IllegalArgumentException("Not an embedded subscription");
- }
- if (info.getAllAccessRules() == null) {
+ if (info == null || info.getAllAccessRules() == null) {
return false;
}
PackageManager packageManager = mContext.getPackageManager();
@@ -2655,7 +2650,8 @@
try {
packageInfo = packageManager.getPackageInfo(packageName, PackageManager.GET_SIGNATURES);
} catch (PackageManager.NameNotFoundException e) {
- throw new IllegalArgumentException("Unknown package: " + packageName, e);
+ logd("Unknown package: " + packageName);
+ return false;
}
for (UiccAccessRule rule : info.getAllAccessRules()) {
if (rule.getCarrierPrivilegeStatus(packageInfo)
@@ -3048,7 +3044,7 @@
// to the caller.
boolean hasCarrierPrivilegePermission = TelephonyManager.from(mContext)
.hasCarrierPrivileges(info.getSubscriptionId())
- || (info.isEmbedded() && canManageSubscription(info));
+ || canManageSubscription(info);
return hasCarrierPrivilegePermission;
}
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index c26e5b5..91d2b98 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -273,6 +273,8 @@
* TSTS - Triple SIM Triple Standby
**/
/** @hide */
+ @UnsupportedAppUsage(implicitMember =
+ "values()[Landroid/telephony/TelephonyManager$MultiSimVariants;")
public enum MultiSimVariants {
@UnsupportedAppUsage
DSDS,
@@ -475,7 +477,7 @@
*/
@Nullable
public TelephonyManager createForPhoneAccountHandle(PhoneAccountHandle phoneAccountHandle) {
- int subId = getSubIdForPhoneAccountHandle(phoneAccountHandle);
+ int subId = getSubscriptionId(phoneAccountHandle);
if (!SubscriptionManager.isValidSubscriptionId(subId)) {
return null;
}
@@ -1631,12 +1633,11 @@
* Returns the software version number for the device, for example,
* the IMEI/SV for GSM phones. Return null if the software version is
* not available.
- *
- * <p>Requires Permission: {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
- * or that the calling app has carrier privileges (see {@link #hasCarrierPrivileges}).
+ * <p>
+ * Requires Permission: {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}.
*/
- @SuppressAutoDoc // Blocked by b/72967236 - no support for carrier privileges
@RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
+ @Nullable
public String getDeviceSoftwareVersion() {
return getDeviceSoftwareVersion(getSlotIndex());
}
@@ -1645,12 +1646,16 @@
* Returns the software version number for the device, for example,
* the IMEI/SV for GSM phones. Return null if the software version is
* not available.
+ * <p>
+ * Requires Permission: READ_PRIVILEGED_PHONE_STATE.
*
* @param slotIndex of which deviceID is returned
+ *
+ * @hide
*/
- /** {@hide} */
- @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
- @UnsupportedAppUsage
+ @SystemApi
+ @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
+ @Nullable
public String getDeviceSoftwareVersion(int slotIndex) {
ITelephony telephony = getITelephony();
if (telephony == null) return null;
@@ -7655,12 +7660,16 @@
/**
* Check whether DUN APN is required for tethering.
+ * <p>
+ * Requires Permission: READ_PRIVILEGED_PHONE_STATE.
*
* @return {@code true} if DUN APN is required for tethering.
* @hide
*/
- public boolean getTetherApnRequired() {
- return getTetherApnRequired(getSubId(SubscriptionManager.getActiveDataSubscriptionId()));
+ @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
+ @SystemApi
+ public boolean isTetherApnRequired() {
+ return isTetherApnRequired(getSubId(SubscriptionManager.getActiveDataSubscriptionId()));
}
/**
@@ -7670,11 +7679,11 @@
* @return {@code true} if DUN APN is required for tethering.
* @hide
*/
- public boolean getTetherApnRequired(int subId) {
+ public boolean isTetherApnRequired(int subId) {
try {
ITelephony telephony = getITelephony();
if (telephony != null)
- return telephony.getTetherApnRequiredForSubscriber(subId);
+ return telephony.isTetherApnRequiredForSubscriber(subId);
} catch (RemoteException ex) {
Rlog.e(TAG, "hasMatchedTetherApnSetting RemoteException", ex);
} catch (NullPointerException ex) {
@@ -9465,7 +9474,7 @@
* permission.
*/
@RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
- public int getSubIdForPhoneAccountHandle(@NonNull PhoneAccountHandle phoneAccountHandle) {
+ public int getSubscriptionId(@NonNull PhoneAccountHandle phoneAccountHandle) {
int retval = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
try {
ITelephony service = getITelephony();
@@ -9474,7 +9483,7 @@
phoneAccountHandle, mContext.getOpPackageName());
}
} catch (RemoteException ex) {
- Log.e(TAG, "getSubIdForPhoneAccountHandle RemoteException", ex);
+ Log.e(TAG, "getSubscriptionId RemoteException", ex);
ex.rethrowAsRuntimeException();
}
return retval;
diff --git a/telephony/java/android/telephony/ims/ImsConferenceState.java b/telephony/java/android/telephony/ims/ImsConferenceState.java
index 6f062f4..df0cc3a 100644
--- a/telephony/java/android/telephony/ims/ImsConferenceState.java
+++ b/telephony/java/android/telephony/ims/ImsConferenceState.java
@@ -23,7 +23,8 @@
import android.os.Parcelable;
import android.telecom.Call;
import android.telecom.Connection;
-import android.telecom.Log;
+import android.telephony.Rlog;
+import android.util.Log;
import java.util.HashMap;
import java.util.Iterator;
@@ -37,6 +38,7 @@
*/
@SystemApi
public final class ImsConferenceState implements Parcelable {
+ private static final String TAG = "ImsConferenceState";
/**
* conference-info : user
*/
@@ -192,7 +194,7 @@
sb.append("<");
while (iterator.hasNext()) {
Entry<String, Bundle> entry = iterator.next();
- sb.append(Log.pii(entry.getKey()));
+ sb.append(Rlog.pii(TAG, entry.getKey()));
sb.append(": ");
Bundle participantData = entry.getValue();
@@ -200,7 +202,7 @@
sb.append(key);
sb.append("=");
if (ENDPOINT.equals(key) || USER.equals(key)) {
- sb.append(Log.pii(participantData.get(key)));
+ sb.append(Rlog.pii(TAG, participantData.get(key)));
} else {
sb.append(participantData.get(key));
}
diff --git a/telephony/java/android/telephony/ims/ImsExternalCallState.java b/telephony/java/android/telephony/ims/ImsExternalCallState.java
index eb2ebca..8d83257 100644
--- a/telephony/java/android/telephony/ims/ImsExternalCallState.java
+++ b/telephony/java/android/telephony/ims/ImsExternalCallState.java
@@ -23,7 +23,6 @@
import android.net.Uri;
import android.os.Parcel;
import android.os.Parcelable;
-import android.telecom.Log;
import android.telephony.Rlog;
import java.lang.annotation.Retention;
@@ -217,8 +216,8 @@
@Override
public String toString() {
return "ImsExternalCallState { mCallId = " + mCallId +
- ", mAddress = " + Log.pii(mAddress) +
- ", mLocalAddress = " + Log.pii(mLocalAddress) +
+ ", mAddress = " + Rlog.pii(TAG, mAddress) +
+ ", mLocalAddress = " + Rlog.pii(TAG, mLocalAddress) +
", mIsPullable = " + mIsPullable +
", mCallState = " + mCallState +
", mCallType = " + mCallType +
diff --git a/telephony/java/android/telephony/ims/compat/ImsService.java b/telephony/java/android/telephony/ims/compat/ImsService.java
index 2750e51..97a8517 100644
--- a/telephony/java/android/telephony/ims/compat/ImsService.java
+++ b/telephony/java/android/telephony/ims/compat/ImsService.java
@@ -113,6 +113,10 @@
}
};
+ @UnsupportedAppUsage
+ public ImsService() {
+ }
+
/**
* @hide
*/
diff --git a/telephony/java/android/telephony/ims/compat/feature/MMTelFeature.java b/telephony/java/android/telephony/ims/compat/feature/MMTelFeature.java
index 40ea208..3fd356a 100644
--- a/telephony/java/android/telephony/ims/compat/feature/MMTelFeature.java
+++ b/telephony/java/android/telephony/ims/compat/feature/MMTelFeature.java
@@ -16,12 +16,16 @@
package android.telephony.ims.compat.feature;
+import android.annotation.UnsupportedAppUsage;
import android.app.PendingIntent;
import android.os.Message;
import android.os.RemoteException;
-
-import android.annotation.UnsupportedAppUsage;
import android.telephony.ims.ImsCallProfile;
+import android.telephony.ims.ImsCallSession;
+import android.telephony.ims.stub.ImsEcbmImplBase;
+import android.telephony.ims.stub.ImsMultiEndpointImplBase;
+import android.telephony.ims.stub.ImsUtImplBase;
+
import com.android.ims.internal.IImsCallSession;
import com.android.ims.internal.IImsCallSessionListener;
import com.android.ims.internal.IImsConfig;
@@ -30,11 +34,6 @@
import com.android.ims.internal.IImsMultiEndpoint;
import com.android.ims.internal.IImsRegistrationListener;
import com.android.ims.internal.IImsUt;
-import android.telephony.ims.ImsCallSession;
-import android.telephony.ims.compat.stub.ImsCallSessionImplBase;
-import android.telephony.ims.stub.ImsEcbmImplBase;
-import android.telephony.ims.stub.ImsMultiEndpointImplBase;
-import android.telephony.ims.stub.ImsUtImplBase;
/**
* Base implementation for MMTel.
@@ -49,6 +48,10 @@
// Lock for feature synchronization
private final Object mLock = new Object();
+ @UnsupportedAppUsage
+ public MMTelFeature() {
+ }
+
private final IImsMMTelFeature mImsMMTelBinder = new IImsMMTelFeature.Stub() {
@Override
diff --git a/telephony/java/android/telephony/ims/compat/stub/ImsCallSessionImplBase.java b/telephony/java/android/telephony/ims/compat/stub/ImsCallSessionImplBase.java
index 38566fe..d77f78e 100644
--- a/telephony/java/android/telephony/ims/compat/stub/ImsCallSessionImplBase.java
+++ b/telephony/java/android/telephony/ims/compat/stub/ImsCallSessionImplBase.java
@@ -16,6 +16,7 @@
package android.telephony.ims.compat.stub;
+import android.annotation.UnsupportedAppUsage;
import android.os.Message;
import android.os.RemoteException;
import android.telephony.CallQuality;
@@ -41,6 +42,10 @@
public class ImsCallSessionImplBase extends IImsCallSession.Stub {
+ @UnsupportedAppUsage
+ public ImsCallSessionImplBase() {
+ }
+
@Override
// convert to old implementation of listener
public final void setListener(IImsCallSessionListener listener)
diff --git a/telephony/java/android/telephony/ims/compat/stub/ImsUtListenerImplBase.java b/telephony/java/android/telephony/ims/compat/stub/ImsUtListenerImplBase.java
index ae113f2..e2024742 100644
--- a/telephony/java/android/telephony/ims/compat/stub/ImsUtListenerImplBase.java
+++ b/telephony/java/android/telephony/ims/compat/stub/ImsUtListenerImplBase.java
@@ -16,6 +16,7 @@
package android.telephony.ims.compat.stub;
+import android.annotation.UnsupportedAppUsage;
import android.os.Bundle;
import android.os.RemoteException;
import android.telephony.ims.ImsCallForwardInfo;
@@ -39,6 +40,10 @@
public class ImsUtListenerImplBase extends IImsUtListener.Stub {
+ @UnsupportedAppUsage
+ public ImsUtListenerImplBase() {
+ }
+
/**
* Notifies the result of the supplementary service configuration udpate.
*/
diff --git a/telephony/java/com/android/ims/ImsUtInterface.java b/telephony/java/com/android/ims/ImsUtInterface.java
index c9d4405..e80087d 100644
--- a/telephony/java/com/android/ims/ImsUtInterface.java
+++ b/telephony/java/com/android/ims/ImsUtInterface.java
@@ -21,6 +21,8 @@
import android.telephony.ims.ImsCallForwardInfo;
import android.telephony.ims.ImsSsInfo;
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
/**
* Provides APIs for the supplementary service settings using IMS (Ut interface).
* It is created from 3GPP TS 24.623 (XCAP(XML Configuration Access Protocol)
@@ -121,6 +123,7 @@
* Retrieves the configuration of the call forward.
* The return value of ((AsyncResult)result.obj) is an array of {@link ImsCallForwardInfo}.
*/
+ @UnsupportedAppUsage
public void queryCallForward(int condition, String number, Message result);
/**
diff --git a/telephony/java/com/android/internal/telephony/DctConstants.java b/telephony/java/com/android/internal/telephony/DctConstants.java
index cde6db4..e1113eb 100644
--- a/telephony/java/com/android/internal/telephony/DctConstants.java
+++ b/telephony/java/com/android/internal/telephony/DctConstants.java
@@ -17,6 +17,8 @@
import com.android.internal.util.Protocol;
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
/**
* @hide
*/
@@ -37,20 +39,34 @@
* RETRYING or CONNECTING: CONNECTING
* CONNECTED : CONNECTED or DISCONNECTING
*/
+ @UnsupportedAppUsage(implicitMember =
+ "values()[Lcom/android/internal/telephony/DctConstants$State;")
public enum State {
+ @UnsupportedAppUsage
IDLE,
+ @UnsupportedAppUsage
CONNECTING,
+ @UnsupportedAppUsage
RETRYING,
+ @UnsupportedAppUsage
CONNECTED,
+ @UnsupportedAppUsage
DISCONNECTING,
+ @UnsupportedAppUsage
FAILED,
}
+ @UnsupportedAppUsage(implicitMember =
+ "values()[Lcom/android/internal/telephony/DctConstants$Activity;")
public enum Activity {
NONE,
+ @UnsupportedAppUsage
DATAIN,
+ @UnsupportedAppUsage
DATAOUT,
+ @UnsupportedAppUsage
DATAINANDOUT,
+ @UnsupportedAppUsage
DORMANT
}
diff --git a/telephony/java/com/android/internal/telephony/GsmAlphabet.java b/telephony/java/com/android/internal/telephony/GsmAlphabet.java
index a75096f..79d3660 100644
--- a/telephony/java/com/android/internal/telephony/GsmAlphabet.java
+++ b/telephony/java/com/android/internal/telephony/GsmAlphabet.java
@@ -16,19 +16,17 @@
package com.android.internal.telephony;
+import android.annotation.UnsupportedAppUsage;
import android.content.res.Resources;
+import android.os.Build;
+import android.telephony.Rlog;
import android.text.TextUtils;
import android.util.SparseIntArray;
-import android.annotation.UnsupportedAppUsage;
-import android.os.Build;
-import android.telephony.Rlog;
+import com.android.internal.R;
import java.nio.ByteBuffer;
import java.nio.charset.Charset;
-import com.android.internal.telephony.SmsConstants;
-import com.android.internal.R;
-
import java.util.ArrayList;
import java.util.List;
@@ -42,8 +40,6 @@
public class GsmAlphabet {
private static final String TAG = "GSM";
- private GsmAlphabet() { }
-
/**
* This escapes extended characters, and when present indicates that the
* following character should be looked up in the "extended" table.
@@ -83,6 +79,11 @@
* data.
*/
public static class TextEncodingDetails {
+
+ @UnsupportedAppUsage
+ public TextEncodingDetails() {
+ }
+
/**
*The number of SMS's required to encode the text.
*/
diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl
index 39a216d..b502ee7 100644
--- a/telephony/java/com/android/internal/telephony/ITelephony.aidl
+++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl
@@ -819,7 +819,7 @@
* @return {@code true} if DUN APN is required for tethering.
* @hide
*/
- boolean getTetherApnRequiredForSubscriber(int subId);
+ boolean isTetherApnRequiredForSubscriber(int subId);
/**
* Enables framework IMS and triggers IMS Registration.
diff --git a/telephony/java/com/android/internal/telephony/IccCardConstants.java b/telephony/java/com/android/internal/telephony/IccCardConstants.java
index d57f9af..6ff27b1 100644
--- a/telephony/java/com/android/internal/telephony/IccCardConstants.java
+++ b/telephony/java/com/android/internal/telephony/IccCardConstants.java
@@ -17,6 +17,8 @@
import android.telephony.TelephonyManager;
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
/**
* {@hide}
*/
@@ -65,15 +67,26 @@
*
* The ordinal values much match {@link TelephonyManager#SIM_STATE_UNKNOWN} ...
*/
+ @UnsupportedAppUsage(implicitMember =
+ "values()[Lcom/android/internal/telephony/IccCardConstants$State;")
public enum State {
+ @UnsupportedAppUsage
UNKNOWN, /** ordinal(0) == {@See TelephonyManager#SIM_STATE_UNKNOWN} */
+ @UnsupportedAppUsage
ABSENT, /** ordinal(1) == {@See TelephonyManager#SIM_STATE_ABSENT} */
+ @UnsupportedAppUsage
PIN_REQUIRED, /** ordinal(2) == {@See TelephonyManager#SIM_STATE_PIN_REQUIRED} */
+ @UnsupportedAppUsage
PUK_REQUIRED, /** ordinal(3) == {@See TelephonyManager#SIM_STATE_PUK_REQUIRED} */
+ @UnsupportedAppUsage
NETWORK_LOCKED, /** ordinal(4) == {@See TelephonyManager#SIM_STATE_NETWORK_LOCKED} */
+ @UnsupportedAppUsage
READY, /** ordinal(5) == {@See TelephonyManager#SIM_STATE_READY} */
+ @UnsupportedAppUsage
NOT_READY, /** ordinal(6) == {@See TelephonyManager#SIM_STATE_NOT_READY} */
+ @UnsupportedAppUsage
PERM_DISABLED, /** ordinal(7) == {@See TelephonyManager#SIM_STATE_PERM_DISABLED} */
+ @UnsupportedAppUsage
CARD_IO_ERROR, /** ordinal(8) == {@See TelephonyManager#SIM_STATE_CARD_IO_ERROR} */
CARD_RESTRICTED,/** ordinal(9) == {@See TelephonyManager#SIM_STATE_CARD_RESTRICTED} */
LOADED; /** ordinal(9) == {@See TelephonyManager#SIM_STATE_LOADED} */
diff --git a/telephony/java/com/android/internal/telephony/PhoneConstants.java b/telephony/java/com/android/internal/telephony/PhoneConstants.java
index 5b2f688..e4397cd 100644
--- a/telephony/java/com/android/internal/telephony/PhoneConstants.java
+++ b/telephony/java/com/android/internal/telephony/PhoneConstants.java
@@ -15,6 +15,8 @@
*/
package com.android.internal.telephony;
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
/**
* @hide
*/
@@ -31,8 +33,15 @@
* ringing or waiting.</li>
* </ul>
*/
+ @UnsupportedAppUsage(implicitMember =
+ "values()[Lcom/android/internal/telephony/PhoneConstants$State;")
public enum State {
- IDLE, RINGING, OFFHOOK;
+ @UnsupportedAppUsage
+ IDLE,
+ @UnsupportedAppUsage
+ RINGING,
+ @UnsupportedAppUsage
+ OFFHOOK;
};
/**
@@ -46,8 +55,17 @@
* in 2G network</li>
* </ul>
*/
+ @UnsupportedAppUsage(implicitMember =
+ "values()[Lcom/android/internal/telephony/PhoneConstants$DataState;")
public enum DataState {
- CONNECTED, CONNECTING, DISCONNECTED, SUSPENDED;
+ @UnsupportedAppUsage
+ CONNECTED,
+ @UnsupportedAppUsage
+ CONNECTING,
+ @UnsupportedAppUsage
+ DISCONNECTED,
+ @UnsupportedAppUsage
+ SUSPENDED;
};
public static final String STATE_KEY = "state";
@@ -69,9 +87,13 @@
public static final int LTE_ON_CDMA_TRUE = RILConstants.LTE_ON_CDMA_TRUE;
// Number presentation type for caller id display (From internal/Connection.java)
+ @UnsupportedAppUsage
public static final int PRESENTATION_ALLOWED = 1; // normal
+ @UnsupportedAppUsage
public static final int PRESENTATION_RESTRICTED = 2; // block by user
+ @UnsupportedAppUsage
public static final int PRESENTATION_UNKNOWN = 3; // no specified or unknown by network
+ @UnsupportedAppUsage
public static final int PRESENTATION_PAYPHONE = 4; // show pay phone info
public static final String PHONE_NAME_KEY = "phoneName";
diff --git a/telephony/java/com/android/internal/telephony/RILConstants.java b/telephony/java/com/android/internal/telephony/RILConstants.java
index 5205973..03ea920 100644
--- a/telephony/java/com/android/internal/telephony/RILConstants.java
+++ b/telephony/java/com/android/internal/telephony/RILConstants.java
@@ -18,6 +18,8 @@
import android.telephony.TelephonyManager;
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
/**
* {@hide}
*/
@@ -230,6 +232,7 @@
/** NR 5G, LTE, TD-SCDMA, CDMA, EVDO, GSM and WCDMA */
int NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA = 33;
+ @UnsupportedAppUsage
int PREFERRED_NETWORK_MODE = Integer.parseInt(TelephonyManager.getTelephonyProperty(0,
"ro.telephony.default_network", Integer.toString(NETWORK_MODE_WCDMA_PREF)));
diff --git a/telephony/java/com/android/internal/telephony/Sms7BitEncodingTranslator.java b/telephony/java/com/android/internal/telephony/Sms7BitEncodingTranslator.java
index 49c737f..2cdf2f6 100644
--- a/telephony/java/com/android/internal/telephony/Sms7BitEncodingTranslator.java
+++ b/telephony/java/com/android/internal/telephony/Sms7BitEncodingTranslator.java
@@ -16,27 +16,28 @@
package com.android.internal.telephony;
-import android.telephony.Rlog;
-import android.os.Build;
-import android.util.SparseIntArray;
import android.content.res.Resources;
import android.content.res.XmlResourceParser;
-import android.telephony.SmsManager;
-import android.telephony.TelephonyManager;
+import android.os.Build;
+import android.telephony.Rlog;
+import android.util.SparseIntArray;
-import com.android.internal.util.XmlUtils;
import com.android.internal.telephony.cdma.sms.UserData;
+import com.android.internal.util.XmlUtils;
-import org.xmlpull.v1.XmlPullParser;
-import org.xmlpull.v1.XmlPullParserException;
+import dalvik.annotation.compat.UnsupportedAppUsage;
public class Sms7BitEncodingTranslator {
private static final String TAG = "Sms7BitEncodingTranslator";
+ @UnsupportedAppUsage
private static final boolean DBG = Build.IS_DEBUGGABLE ;
private static boolean mIs7BitTranslationTableLoaded = false;
private static SparseIntArray mTranslationTable = null;
+ @UnsupportedAppUsage
private static SparseIntArray mTranslationTableCommon = null;
+ @UnsupportedAppUsage
private static SparseIntArray mTranslationTableGSM = null;
+ @UnsupportedAppUsage
private static SparseIntArray mTranslationTableCDMA = null;
// Parser variables
diff --git a/telephony/java/com/android/internal/telephony/SmsHeader.java b/telephony/java/com/android/internal/telephony/SmsHeader.java
index 9fe1718..dd77b01 100644
--- a/telephony/java/com/android/internal/telephony/SmsHeader.java
+++ b/telephony/java/com/android/internal/telephony/SmsHeader.java
@@ -16,13 +16,12 @@
package com.android.internal.telephony;
-import com.android.internal.telephony.SmsConstants;
+import android.annotation.UnsupportedAppUsage;
+
import com.android.internal.util.HexDump;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
-
-import android.annotation.UnsupportedAppUsage;
import java.util.ArrayList;
/**
@@ -74,6 +73,10 @@
public static class PortAddrs {
@UnsupportedAppUsage
+ public PortAddrs() {
+ }
+
+ @UnsupportedAppUsage
public int destPort;
@UnsupportedAppUsage
public int origPort;
@@ -82,6 +85,10 @@
public static class ConcatRef {
@UnsupportedAppUsage
+ public ConcatRef() {
+ }
+
+ @UnsupportedAppUsage
public int refNumber;
@UnsupportedAppUsage
public int seqNumber;
diff --git a/telephony/java/com/android/internal/telephony/SmsMessageBase.java b/telephony/java/com/android/internal/telephony/SmsMessageBase.java
index ffdc4b6..d29ef35 100644
--- a/telephony/java/com/android/internal/telephony/SmsMessageBase.java
+++ b/telephony/java/com/android/internal/telephony/SmsMessageBase.java
@@ -16,23 +16,27 @@
package com.android.internal.telephony;
-import com.android.internal.telephony.GsmAlphabet.TextEncodingDetails;
-import com.android.internal.telephony.SmsConstants;
-import com.android.internal.telephony.SmsHeader;
-import java.text.BreakIterator;
-import java.util.Arrays;
-
import android.annotation.UnsupportedAppUsage;
import android.os.Build;
import android.provider.Telephony;
import android.telephony.SmsMessage;
import android.text.Emoji;
+import com.android.internal.telephony.GsmAlphabet.TextEncodingDetails;
+
+import java.text.BreakIterator;
+import java.util.Arrays;
+
/**
* Base class declaring the specific methods and members for SmsMessage.
* {@hide}
*/
public abstract class SmsMessageBase {
+
+ @UnsupportedAppUsage
+ public SmsMessageBase() {
+ }
+
/** {@hide} The address of the SMSC. May be null */
@UnsupportedAppUsage
protected String mScAddress;
diff --git a/telephony/java/com/android/internal/telephony/TelephonyProperties.java b/telephony/java/com/android/internal/telephony/TelephonyProperties.java
index bf5c0a1..4e42c20 100644
--- a/telephony/java/com/android/internal/telephony/TelephonyProperties.java
+++ b/telephony/java/com/android/internal/telephony/TelephonyProperties.java
@@ -16,6 +16,8 @@
package com.android.internal.telephony;
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
/**
* Contains a list of string constants used to get or set telephone properties
* in the system. You can use {@link android.os.SystemProperties os.SystemProperties}
@@ -101,6 +103,7 @@
* provider of the SIM. 5 or 6 decimal digits.
* Availability: SIM state must be "READY"
*/
+ @UnsupportedAppUsage
static String PROPERTY_ICC_OPERATOR_NUMERIC = "gsm.sim.operator.numeric";
/** PROPERTY_ICC_OPERATOR_ALPHA is also known as the SPN, or Service Provider Name.
diff --git a/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java b/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java
index 1523875..b357fa4 100644
--- a/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java
+++ b/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java
@@ -44,6 +44,8 @@
import com.android.internal.util.BitwiseInputStream;
import com.android.internal.util.HexDump;
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -108,7 +110,9 @@
private static final int PRIORITY_URGENT = 0x2;
private static final int PRIORITY_EMERGENCY = 0x3;
+ @UnsupportedAppUsage
private SmsEnvelope mEnvelope;
+ @UnsupportedAppUsage
private BearerData mBearerData;
/** @hide */
@@ -118,15 +122,20 @@
createPdu();
}
+ @UnsupportedAppUsage
public SmsMessage() {}
public static class SubmitPdu extends SubmitPduBase {
+ @UnsupportedAppUsage
+ public SubmitPdu() {
+ }
}
/**
* Create an SmsMessage from a raw PDU.
* Note: In CDMA the PDU is just a byte representation of the received Sms.
*/
+ @UnsupportedAppUsage
public static SmsMessage createFromPdu(byte[] pdu) {
SmsMessage msg = new SmsMessage();
@@ -152,6 +161,7 @@
*
* @hide
*/
+ @UnsupportedAppUsage
public static SmsMessage createFromEfRecord(int index, byte[] data) {
try {
SmsMessage msg = new SmsMessage();
@@ -218,6 +228,7 @@
* Returns null on encode error.
* @hide
*/
+ @UnsupportedAppUsage
public static SubmitPdu getSubmitPdu(String scAddr, String destAddr, String message,
boolean statusReportRequested, SmsHeader smsHeader) {
return getSubmitPdu(scAddr, destAddr, message, statusReportRequested, smsHeader, -1);
@@ -238,6 +249,7 @@
* Returns null on encode error.
* @hide
*/
+ @UnsupportedAppUsage
public static SubmitPdu getSubmitPdu(String scAddr, String destAddr, String message,
boolean statusReportRequested, SmsHeader smsHeader, int priority) {
@@ -268,6 +280,7 @@
* address, if applicable, and the encoded message.
* Returns null on encode error.
*/
+ @UnsupportedAppUsage
public static SubmitPdu getSubmitPdu(String scAddr, String destAddr, int destPort,
byte[] data, boolean statusReportRequested) {
@@ -305,6 +318,7 @@
* address, if applicable, and the encoded message.
* Returns null on encode error.
*/
+ @UnsupportedAppUsage
public static SubmitPdu getSubmitPdu(String destAddr, UserData userData,
boolean statusReportRequested) {
return privateGetSubmitPdu(destAddr, statusReportRequested, userData);
@@ -321,6 +335,7 @@
* address, if applicable, and the encoded message.
* Returns null on encode error.
*/
+ @UnsupportedAppUsage
public static SubmitPdu getSubmitPdu(String destAddr, UserData userData,
boolean statusReportRequested, int priority) {
return privateGetSubmitPdu(destAddr, statusReportRequested, userData, priority);
@@ -392,6 +407,7 @@
}
/** Return true iff the bearer data message type is DELIVERY_ACK. */
+ @UnsupportedAppUsage
@Override
public boolean isStatusReportMessage() {
return (mBearerData.messageType == BearerData.MESSAGE_TYPE_DELIVERY_ACK);
@@ -414,6 +430,7 @@
* @param isEntireMsg indicates if this is entire msg or a segment in multipart msg
* @return TextEncodingDetails
*/
+ @UnsupportedAppUsage
public static TextEncodingDetails calculateLength(CharSequence messageBody,
boolean use7bitOnly, boolean isEntireMsg) {
CharSequence newMsgBody = null;
@@ -436,6 +453,7 @@
* {@link com.android.internal.telephony.cdma.sms.SmsEnvelope#TELESERVICE_VMN},
* {@link com.android.internal.telephony.cdma.sms.SmsEnvelope#TELESERVICE_WAP}
*/
+ @UnsupportedAppUsage
public int getTeleService() {
return mEnvelope.teleService;
}
@@ -447,6 +465,7 @@
* {@link com.android.internal.telephony.cdma.sms.SmsEnvelope#MESSAGE_TYPE_BROADCAST},
* {@link com.android.internal.telephony.cdma.sms.SmsEnvelope#MESSAGE_TYPE_ACKNOWLEDGE},
*/
+ @UnsupportedAppUsage
public int getMessageType() {
// NOTE: mEnvelope.messageType is not set correctly for cell broadcasts with some RILs.
// Use the service category parameter to detect CMAS and other cell broadcast messages.
@@ -762,6 +781,7 @@
/**
* Parses a SMS message from its BearerData stream.
*/
+ @UnsupportedAppUsage
public void parseSms() {
// Message Waiting Info Record defined in 3GPP2 C.S-0005, 3.7.5.6
// It contains only an 8-bit number with the number of messages waiting
@@ -913,6 +933,7 @@
* binder-call, and hence should be thread-safe, it has been
* synchronized.
*/
+ @UnsupportedAppUsage
public synchronized static int getNextMessageId() {
// Testing and dialog with partners has indicated that
// msgId==0 is (sometimes?) treated specially by lower levels.
@@ -937,6 +958,7 @@
* Creates BearerData and Envelope from parameters for a Submit SMS.
* @return byte stream for SubmitPdu.
*/
+ @UnsupportedAppUsage
private static SubmitPdu privateGetSubmitPdu(String destAddrStr, boolean statusReportRequested,
UserData userData) {
return privateGetSubmitPdu(destAddrStr, statusReportRequested, userData, -1);
@@ -1122,6 +1144,7 @@
/** This function shall be called to get the number of voicemails.
* @hide
*/
+ @UnsupportedAppUsage
public int getNumOfVoicemails() {
return mBearerData.numberOfMessages;
}
@@ -1133,6 +1156,7 @@
* @return byte array uniquely identifying the message.
* @hide
*/
+ @UnsupportedAppUsage
public byte[] getIncomingSmsFingerprint() {
ByteArrayOutputStream output = new ByteArrayOutputStream();
diff --git a/telephony/java/com/android/internal/telephony/cdma/UserData.java b/telephony/java/com/android/internal/telephony/cdma/UserData.java
index f879560..d960f05 100644
--- a/telephony/java/com/android/internal/telephony/cdma/UserData.java
+++ b/telephony/java/com/android/internal/telephony/cdma/UserData.java
@@ -21,8 +21,14 @@
import com.android.internal.telephony.SmsHeader;
import com.android.internal.util.HexDump;
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
public class UserData {
+ @UnsupportedAppUsage
+ public UserData() {
+ }
+
/**
* User data encoding types.
* (See 3GPP2 C.R1001-F, v1.0, table 9.1-1)
@@ -92,6 +98,7 @@
public static final int PRINTABLE_ASCII_MIN_INDEX = 0x20;
public static final int ASCII_NL_INDEX = 0x0A;
public static final int ASCII_CR_INDEX = 0x0D;
+ @UnsupportedAppUsage
public static final SparseIntArray charToAscii = new SparseIntArray();
static {
for (int i = 0; i < ASCII_MAP.length; i++) {
@@ -131,12 +138,15 @@
/**
* Contains the data header of the user data
*/
+ @UnsupportedAppUsage
public SmsHeader userDataHeader;
/**
* Contains the data encoding type for the SMS message
*/
+ @UnsupportedAppUsage
public int msgEncoding;
+ @UnsupportedAppUsage
public boolean msgEncodingSet = false;
public int msgType;
@@ -146,13 +156,16 @@
*/
public int paddingBits;
+ @UnsupportedAppUsage
public int numFields;
/**
* Contains the user data of a SMS message
* (See 3GPP2 C.S0015-B, v2, 4.5.2)
*/
+ @UnsupportedAppUsage
public byte[] payload;
+ @UnsupportedAppUsage
public String payloadStr;
@Override
diff --git a/telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java b/telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java
index dab1436..e9378e7 100644
--- a/telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java
+++ b/telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java
@@ -17,10 +17,10 @@
package com.android.internal.telephony.cdma.sms;
import android.content.res.Resources;
+import android.telephony.Rlog;
import android.telephony.SmsCbCmasInfo;
import android.telephony.cdma.CdmaSmsCbProgramData;
import android.telephony.cdma.CdmaSmsCbProgramResults;
-import android.telephony.Rlog;
import com.android.internal.telephony.GsmAlphabet;
import com.android.internal.telephony.GsmAlphabet.TextEncodingDetails;
@@ -31,6 +31,8 @@
import com.android.internal.util.BitwiseInputStream;
import com.android.internal.util.BitwiseOutputStream;
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
@@ -42,6 +44,10 @@
public final class BearerData {
private final static String LOG_TAG = "BearerData";
+ @UnsupportedAppUsage
+ public BearerData() {
+ }
+
/**
* Bearer Data Subparameter Identifiers
* (See 3GPP2 C.S0015-B, v2.0, table 4.5-1)
@@ -95,6 +101,7 @@
* (Special rules apply for WAP-messages.)
* (See 3GPP2 C.S0015-B, v2, 4.5.1)
*/
+ @UnsupportedAppUsage
public int messageId;
/**
@@ -106,7 +113,9 @@
public static final int PRIORITY_URGENT = 0x2;
public static final int PRIORITY_EMERGENCY = 0x3;
+ @UnsupportedAppUsage
public boolean priorityIndicatorSet = false;
+ @UnsupportedAppUsage
public int priority = PRIORITY_NORMAL;
/**
@@ -144,6 +153,7 @@
public static final int DISPLAY_MODE_USER = 0x2;
public boolean displayModeSet = false;
+ @UnsupportedAppUsage
public int displayMode = DISPLAY_MODE_DEFAULT;
/**
@@ -207,6 +217,7 @@
* presence of a UDH in the structured data, any existing setting
* will be overwritten.
*/
+ @UnsupportedAppUsage
public boolean hasUserDataHeader;
/**
@@ -214,6 +225,7 @@
* (e.g. padding bits, user data, user data header, etc)
* (See 3GPP2 C.S.0015-B, v2, 4.5.2)
*/
+ @UnsupportedAppUsage
public UserData userData;
/**
@@ -244,6 +256,7 @@
private ZoneId mZoneId;
+ @UnsupportedAppUsage
public TimeStamp() {
mZoneId = ZoneId.systemDefault(); // 3GPP2 timestamps use the local timezone
}
@@ -295,6 +308,7 @@
}
}
+ @UnsupportedAppUsage
public TimeStamp msgCenterTimeStamp;
public TimeStamp validityPeriodAbsolute;
public TimeStamp deferredDeliveryTimeAbsolute;
@@ -383,6 +397,7 @@
private static class CodingException extends Exception {
+ @UnsupportedAppUsage
public CodingException(String s) {
super(s);
}
@@ -476,6 +491,7 @@
outStream.skip(3);
}
+ @UnsupportedAppUsage
private static int countAsciiSeptets(CharSequence msg, boolean force) {
int msgLen = msg.length();
if (force) return msgLen;
@@ -518,6 +534,7 @@
return ted;
}
+ @UnsupportedAppUsage
private static byte[] encode7bitAscii(String msg, boolean force)
throws CodingException
{
@@ -949,6 +966,7 @@
*
* @return byte array of raw encoded SMS bearer data.
*/
+ @UnsupportedAppUsage
public static byte[] encode(BearerData bData) {
bData.hasUserDataHeader = ((bData.userData != null) &&
(bData.userData.userDataHeader != null));
@@ -1200,6 +1218,7 @@
}
}
+ @UnsupportedAppUsage
private static void decodeUserDataPayload(UserData userData, boolean hasUserDataHeader)
throws CodingException
{
@@ -1845,6 +1864,7 @@
* @return the number of bits to read from the stream
* @throws CodingException if the specified encoding is not supported
*/
+ @UnsupportedAppUsage
private static int getBitsForNumFields(int msgEncoding, int numFields)
throws CodingException {
switch (msgEncoding) {
diff --git a/telephony/java/com/android/internal/telephony/cdma/sms/CdmaSmsAddress.java b/telephony/java/com/android/internal/telephony/cdma/sms/CdmaSmsAddress.java
index d27a758..b268ee8 100644
--- a/telephony/java/com/android/internal/telephony/cdma/sms/CdmaSmsAddress.java
+++ b/telephony/java/com/android/internal/telephony/cdma/sms/CdmaSmsAddress.java
@@ -20,9 +20,10 @@
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.telephony.SmsAddress;
-import com.android.internal.telephony.cdma.sms.UserData;
import com.android.internal.util.HexDump;
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
public class CdmaSmsAddress extends SmsAddress {
/**
@@ -33,6 +34,7 @@
static public final int DIGIT_MODE_4BIT_DTMF = 0x00;
static public final int DIGIT_MODE_8BIT_CHAR = 0x01;
+ @UnsupportedAppUsage
public int digitMode;
/**
@@ -43,6 +45,7 @@
static public final int NUMBER_MODE_NOT_DATA_NETWORK = 0x00;
static public final int NUMBER_MODE_DATA_NETWORK = 0x01;
+ @UnsupportedAppUsage
public int numberMode;
/**
@@ -70,6 +73,7 @@
* This field shall be set to the number of address digits
* (See 3GPP2 C.S0015-B, v2, 3.4.3.3)
*/
+ @UnsupportedAppUsage
public int numberOfDigits;
/**
@@ -83,6 +87,7 @@
//static protected final int NUMBERING_PLAN_TELEX = 0x4;
//static protected final int NUMBERING_PLAN_PRIVATE = 0x9;
+ @UnsupportedAppUsage
public int numberPlan;
/**
@@ -90,7 +95,7 @@
* are stored in the parent class address and origBytes fields,
* respectively.
*/
-
+ @UnsupportedAppUsage
public CdmaSmsAddress(){
}
@@ -194,6 +199,7 @@
* common punctuation. For alpha addresses, the string is cleaned
* up by removing whitespace.
*/
+ @UnsupportedAppUsage
public static CdmaSmsAddress parse(String address) {
CdmaSmsAddress addr = new CdmaSmsAddress();
addr.address = address;
diff --git a/telephony/java/com/android/internal/telephony/cdma/sms/SmsEnvelope.java b/telephony/java/com/android/internal/telephony/cdma/sms/SmsEnvelope.java
index 49b5f7f..be1eab1 100644
--- a/telephony/java/com/android/internal/telephony/cdma/sms/SmsEnvelope.java
+++ b/telephony/java/com/android/internal/telephony/cdma/sms/SmsEnvelope.java
@@ -19,7 +19,7 @@
import android.telephony.cdma.CdmaSmsCbProgramData;
-import com.android.internal.telephony.cdma.sms.CdmaSmsSubaddress;
+import dalvik.annotation.compat.UnsupportedAppUsage;
public final class SmsEnvelope {
/**
@@ -80,6 +80,7 @@
* or receiving the message.
* (See 3GPP2 C.S0015-B, v2, 3.4.3.1)
*/
+ @UnsupportedAppUsage
public int teleService = TELESERVICE_NOT_SET;
/**
@@ -87,6 +88,7 @@
* by the SMS message.
* (See 3GPP2 C.S0015-B, v2, 3.4.3.2)
*/
+ @UnsupportedAppUsage
public int serviceCategory;
/**
@@ -137,8 +139,10 @@
* encoded bearer data
* (See 3GPP2 C.S0015-B, v2, 3.4.3.7)
*/
+ @UnsupportedAppUsage
public byte[] bearerData;
+ @UnsupportedAppUsage
public SmsEnvelope() {
// nothing to see here
}
diff --git a/telephony/java/com/android/internal/telephony/gsm/GsmSmsAddress.java b/telephony/java/com/android/internal/telephony/gsm/GsmSmsAddress.java
index bd8c83e..19e0b2d 100644
--- a/telephony/java/com/android/internal/telephony/gsm/GsmSmsAddress.java
+++ b/telephony/java/com/android/internal/telephony/gsm/GsmSmsAddress.java
@@ -18,10 +18,13 @@
import android.telephony.PhoneNumberUtils;
-import java.text.ParseException;
import com.android.internal.telephony.GsmAlphabet;
import com.android.internal.telephony.SmsAddress;
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
+import java.text.ParseException;
+
public class GsmSmsAddress extends SmsAddress {
static final int OFFSET_ADDRESS_LENGTH = 0;
@@ -39,6 +42,7 @@
* @throws ParseException
*/
+ @UnsupportedAppUsage
public GsmSmsAddress(byte[] data, int offset, int length) throws ParseException {
origBytes = new byte[length];
System.arraycopy(data, offset, origBytes, 0, length);
@@ -136,6 +140,7 @@
* address indicating a "set" of "indicator 1" of type "voice message
* waiting"
*/
+ @UnsupportedAppUsage
public boolean isCphsVoiceMessageSet() {
// 0x11 means "set" "voice message waiting" "indicator 1"
return isCphsVoiceMessageIndicatorAddress()
@@ -148,6 +153,7 @@
* address indicating a "clear" of "indicator 1" of type "voice message
* waiting"
*/
+ @UnsupportedAppUsage
public boolean isCphsVoiceMessageClear() {
// 0x10 means "clear" "voice message waiting" "indicator 1"
return isCphsVoiceMessageIndicatorAddress()
diff --git a/telephony/java/com/android/internal/telephony/gsm/SmsCbHeader.java b/telephony/java/com/android/internal/telephony/gsm/SmsCbHeader.java
index 465840f..d85cf15 100644
--- a/telephony/java/com/android/internal/telephony/gsm/SmsCbHeader.java
+++ b/telephony/java/com/android/internal/telephony/gsm/SmsCbHeader.java
@@ -21,6 +21,8 @@
import com.android.internal.telephony.SmsConstants;
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
import java.util.Arrays;
import java.util.Locale;
@@ -110,6 +112,7 @@
private final int mSerialNumber;
/** The Message Identifier in 3GPP is the same as the Service Category in CDMA. */
+ @UnsupportedAppUsage
private final int mMessageIdentifier;
private final int mDataCodingScheme;
@@ -128,6 +131,7 @@
/** CMAS warning notification info. */
private final SmsCbCmasInfo mCmasInfo;
+ @UnsupportedAppUsage
public SmsCbHeader(byte[] pdu) throws IllegalArgumentException {
if (pdu == null || pdu.length < PDU_HEADER_LENGTH) {
throw new IllegalArgumentException("Illegal PDU");
@@ -225,14 +229,17 @@
}
}
+ @UnsupportedAppUsage
int getGeographicalScope() {
return mGeographicalScope;
}
+ @UnsupportedAppUsage
int getSerialNumber() {
return mSerialNumber;
}
+ @UnsupportedAppUsage
int getServiceCategory() {
return mMessageIdentifier;
}
@@ -245,10 +252,12 @@
return mDataCodingSchemeStructedData;
}
+ @UnsupportedAppUsage
int getPageIndex() {
return mPageIndex;
}
+ @UnsupportedAppUsage
int getNumberOfPages() {
return mNrOfPages;
}
diff --git a/telephony/java/com/android/internal/telephony/gsm/SmsMessage.java b/telephony/java/com/android/internal/telephony/gsm/SmsMessage.java
index 17e3bac..e7b385c 100644
--- a/telephony/java/com/android/internal/telephony/gsm/SmsMessage.java
+++ b/telephony/java/com/android/internal/telephony/gsm/SmsMessage.java
@@ -16,18 +16,29 @@
package com.android.internal.telephony.gsm;
+import static com.android.internal.telephony.SmsConstants.ENCODING_16BIT;
+import static com.android.internal.telephony.SmsConstants.ENCODING_7BIT;
+import static com.android.internal.telephony.SmsConstants.ENCODING_8BIT;
+import static com.android.internal.telephony.SmsConstants.ENCODING_KSC5601;
+import static com.android.internal.telephony.SmsConstants.ENCODING_UNKNOWN;
+import static com.android.internal.telephony.SmsConstants.MAX_USER_DATA_BYTES;
+import static com.android.internal.telephony.SmsConstants.MAX_USER_DATA_SEPTETS;
+import static com.android.internal.telephony.SmsConstants.MessageClass;
+
+import android.content.res.Resources;
import android.telephony.PhoneNumberUtils;
import android.telephony.Rlog;
-import android.content.res.Resources;
import android.text.TextUtils;
import com.android.internal.telephony.EncodeException;
import com.android.internal.telephony.GsmAlphabet;
import com.android.internal.telephony.GsmAlphabet.TextEncodingDetails;
-import com.android.internal.telephony.uicc.IccUtils;
+import com.android.internal.telephony.Sms7BitEncodingTranslator;
import com.android.internal.telephony.SmsHeader;
import com.android.internal.telephony.SmsMessageBase;
-import com.android.internal.telephony.Sms7BitEncodingTranslator;
+import com.android.internal.telephony.uicc.IccUtils;
+
+import dalvik.annotation.compat.UnsupportedAppUsage;
import java.io.ByteArrayOutputStream;
import java.io.UnsupportedEncodingException;
@@ -35,16 +46,6 @@
import java.time.LocalDateTime;
import java.time.ZoneOffset;
-import static com.android.internal.telephony.SmsConstants.MessageClass;
-import static com.android.internal.telephony.SmsConstants.ENCODING_UNKNOWN;
-import static com.android.internal.telephony.SmsConstants.ENCODING_7BIT;
-import static com.android.internal.telephony.SmsConstants.ENCODING_8BIT;
-import static com.android.internal.telephony.SmsConstants.ENCODING_16BIT;
-import static com.android.internal.telephony.SmsConstants.ENCODING_KSC5601;
-import static com.android.internal.telephony.SmsConstants.MAX_USER_DATA_SEPTETS;
-import static com.android.internal.telephony.SmsConstants.MAX_USER_DATA_BYTES;
-import static com.android.internal.telephony.SmsConstants.MAX_USER_DATA_BYTES_WITH_HEADER;
-
/**
* A Short Message Service message.
*
@@ -99,12 +100,20 @@
private static final int INVALID_VALIDITY_PERIOD = -1;
+ @UnsupportedAppUsage
+ public SmsMessage() {
+ }
+
public static class SubmitPdu extends SubmitPduBase {
+ @UnsupportedAppUsage
+ public SubmitPdu() {
+ }
}
/**
* Create an SmsMessage from a raw PDU.
*/
+ @UnsupportedAppUsage
public static SmsMessage createFromPdu(byte[] pdu) {
try {
SmsMessage msg = new SmsMessage();
@@ -169,6 +178,7 @@
*
* @hide
*/
+ @UnsupportedAppUsage
public static SmsMessage createFromEfRecord(int index, byte[] data) {
try {
SmsMessage msg = new SmsMessage();
@@ -259,6 +269,7 @@
* Returns null on encode error.
* @hide
*/
+ @UnsupportedAppUsage
public static SubmitPdu getSubmitPdu(String scAddress,
String destinationAddress, String message,
boolean statusReportRequested, byte[] header) {
@@ -281,6 +292,7 @@
* Returns null on encode error.
* @hide
*/
+ @UnsupportedAppUsage
public static SubmitPdu getSubmitPdu(String scAddress,
String destinationAddress, String message,
boolean statusReportRequested, byte[] header, int encoding,
@@ -304,6 +316,7 @@
* Returns null on encode error.
* @hide
*/
+ @UnsupportedAppUsage
public static SubmitPdu getSubmitPdu(String scAddress,
String destinationAddress, String message,
boolean statusReportRequested, byte[] header, int encoding,
@@ -444,6 +457,7 @@
* @throws UnsupportedEncodingException
* @throws EncodeException if String is too large to encode
*/
+ @UnsupportedAppUsage
private static byte[] encodeUCS2(String message, byte[] header)
throws UnsupportedEncodingException, EncodeException {
byte[] userData, textPart;
@@ -478,6 +492,7 @@
* address, if applicable, and the encoded message.
* Returns null on encode error.
*/
+ @UnsupportedAppUsage
public static SubmitPdu getSubmitPdu(String scAddress,
String destinationAddress, String message,
boolean statusReportRequested) {
@@ -496,6 +511,7 @@
* address, if applicable, and the encoded message.
* Returns null on encode error.
*/
+ @UnsupportedAppUsage
public static SubmitPdu getSubmitPdu(String scAddress,
String destinationAddress, String message,
boolean statusReportRequested, int validityPeriod) {
@@ -576,6 +592,7 @@
* @param ret <code>SubmitPdu</code> containing the encoded SC
* address, if applicable, and the encoded message. Returns null on encode error.
*/
+ @UnsupportedAppUsage
private static ByteArrayOutputStream getSubmitPduHead(
String scAddress, String destinationAddress, byte mtiByte,
boolean statusReportRequested, SubmitPdu ret) {
@@ -622,12 +639,16 @@
}
private static class PduParser {
+ @UnsupportedAppUsage
byte mPdu[];
+ @UnsupportedAppUsage
int mCur;
SmsHeader mUserDataHeader;
byte[] mUserData;
+ @UnsupportedAppUsage
int mUserDataSeptetPadding;
+ @UnsupportedAppUsage
PduParser(byte[] pdu) {
mPdu = pdu;
mCur = 0;
@@ -667,6 +688,7 @@
/**
* returns non-sign-extended byte value
*/
+ @UnsupportedAppUsage
int getByte() {
return mPdu[mCur++] & 0xff;
}
@@ -808,6 +830,7 @@
*
* @return the user data payload, not including the headers
*/
+ @UnsupportedAppUsage
byte[] getUserData() {
return mUserData;
}
@@ -864,6 +887,7 @@
* @param byteCount the number of bytes in the user data payload
* @return a String with the decoded characters
*/
+ @UnsupportedAppUsage
String getUserDataUCS2(int byteCount) {
String ret;
@@ -912,6 +936,7 @@
* @param use7bitOnly ignore (but still count) illegal characters if true
* @return TextEncodingDetails
*/
+ @UnsupportedAppUsage
public static TextEncodingDetails calculateLength(CharSequence msgBody,
boolean use7bitOnly) {
CharSequence newMsgBody = null;
@@ -959,6 +984,7 @@
}
/** {@inheritDoc} */
+ @UnsupportedAppUsage
@Override
public boolean isMWIClearMessage() {
if (mIsMwi && !mMwiSense) {
@@ -970,6 +996,7 @@
}
/** {@inheritDoc} */
+ @UnsupportedAppUsage
@Override
public boolean isMWISetMessage() {
if (mIsMwi && mMwiSense) {
@@ -981,6 +1008,7 @@
}
/** {@inheritDoc} */
+ @UnsupportedAppUsage
@Override
public boolean isMwiDontStore() {
if (mIsMwi && mMwiDontStore) {
@@ -1000,12 +1028,14 @@
}
/** {@inheritDoc} */
+ @UnsupportedAppUsage
@Override
public int getStatus() {
return mStatus;
}
/** {@inheritDoc} */
+ @UnsupportedAppUsage
@Override
public boolean isStatusReportMessage() {
return mIsStatusReportMessage;
diff --git a/telephony/java/com/android/internal/telephony/uicc/IccUtils.java b/telephony/java/com/android/internal/telephony/uicc/IccUtils.java
index 96e215c..f2d4624 100644
--- a/telephony/java/com/android/internal/telephony/uicc/IccUtils.java
+++ b/telephony/java/com/android/internal/telephony/uicc/IccUtils.java
@@ -25,6 +25,8 @@
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.telephony.GsmAlphabet;
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
import java.io.UnsupportedEncodingException;
import java.util.List;
@@ -53,6 +55,7 @@
*
* Stops on invalid BCD value, returning string so far
*/
+ @UnsupportedAppUsage
public static String
bcdToString(byte[] data, int offset, int length) {
StringBuilder ret = new StringBuilder(length*2);
@@ -180,6 +183,7 @@
/**
* Decode cdma byte into String.
*/
+ @UnsupportedAppUsage
public static String
cdmaBcdToString(byte[] data, int offset, int length) {
StringBuilder ret = new StringBuilder(length);
@@ -215,6 +219,7 @@
* assume the digit is set to 0 but shall store the entire field
* exactly as received"
*/
+ @UnsupportedAppUsage
public static int
gsmBcdByteToInt(byte b) {
int ret = 0;
@@ -237,6 +242,7 @@
* is in the least significant nibble and the most significant
* is in the most significant nibble.
*/
+ @UnsupportedAppUsage
public static int
cdmaBcdByteToInt(byte b) {
int ret = 0;
@@ -288,6 +294,7 @@
* contain a 16 bit number which defines the complete 16 bit
* base pointer to a "half page" in the UCS2 code space...
*/
+ @UnsupportedAppUsage
public static String
adnStringFieldToString(byte[] data, int offset, int length) {
if (length == 0) {
@@ -379,6 +386,7 @@
return GsmAlphabet.gsm8BitUnpackedToString(data, offset, length, defaultCharset.trim());
}
+ @UnsupportedAppUsage
public static int
hexCharToInt(char c) {
if (c >= '0' && c <= '9') return (c - '0');
@@ -398,6 +406,7 @@
*
* @throws RuntimeException on invalid format
*/
+ @UnsupportedAppUsage
public static byte[]
hexStringToBytes(String s) {
byte[] ret;
@@ -424,6 +433,7 @@
*
* @return hex string representation of bytes array
*/
+ @UnsupportedAppUsage
public static String
bytesToHexString(byte[] bytes) {
if (bytes == null) return null;
@@ -451,6 +461,7 @@
* "offset" points to "octet 3", the coding scheme byte
* empty string returned on decode error
*/
+ @UnsupportedAppUsage
public static String
networkNameToString(byte[] data, int offset, int length) {
String ret;
@@ -501,6 +512,7 @@
* @param length The length of image body
* @return The bitmap
*/
+ @UnsupportedAppUsage
public static Bitmap parseToBnW(byte[] data, int length){
int valueIndex = 0;
int width = data[valueIndex++] & 0xFF;
@@ -543,6 +555,7 @@
* @param transparency with or without transparency
* @return The color bitmap
*/
+ @UnsupportedAppUsage
public static Bitmap parseToRGB(byte[] data, int length,
boolean transparency) {
int valueIndex = 0;
diff --git a/tests/BootImageProfileTest/src/com/android/bootimageprofile/BootImageProfileTest.java b/tests/BootImageProfileTest/src/com/android/bootimageprofile/BootImageProfileTest.java
index f8e338e..59f0162 100644
--- a/tests/BootImageProfileTest/src/com/android/bootimageprofile/BootImageProfileTest.java
+++ b/tests/BootImageProfileTest/src/com/android/bootimageprofile/BootImageProfileTest.java
@@ -73,51 +73,65 @@
res = mTestDevice.executeShellCommand("truncate -s 0 " + SYSTEM_SERVER_PROFILE).trim();
assertTrue(res, res.length() == 0);
// Wait up to 20 seconds for the profile to be saved.
- for (int i = 0; i < 20; ++i) {
+ final int numIterations = 20;
+ for (int i = 1; i <= numIterations; ++i) {
// Force save the profile since we truncated it.
if (forceSaveProfile("system_server")) {
// Might fail if system server is not yet running.
String s = mTestDevice.executeShellCommand(
"wc -c <" + SYSTEM_SERVER_PROFILE).trim();
- if (!"0".equals(s)) {
- break;
+ if ("0".equals(s)) {
+ Thread.sleep(1000);
+ continue;
}
}
+
+ // In case the profile is partially saved, wait an extra second.
Thread.sleep(1000);
- }
- // In case the profile is partially saved, wait an extra second.
- Thread.sleep(1000);
- // Validate that the profile is non empty.
- res = mTestDevice.executeShellCommand("profman --dump-only --profile-file="
- + SYSTEM_SERVER_PROFILE);
- boolean sawFramework = false;
- boolean sawServices = false;
- for (String line : res.split("\n")) {
- if (line.contains("framework.jar")) {
- sawFramework = true;
- } else if (line.contains("services.jar")) {
- sawServices = true;
+
+ // Validate that the profile is non empty.
+ res = mTestDevice.executeShellCommand("profman --dump-only --profile-file="
+ + SYSTEM_SERVER_PROFILE);
+ boolean sawFramework = false;
+ boolean sawServices = false;
+ for (String line : res.split("\n")) {
+ if (line.contains("framework.jar")) {
+ sawFramework = true;
+ } else if (line.contains("services.jar")) {
+ sawServices = true;
+ }
+ }
+ if (i == numIterations) {
+ // Only assert for last iteration since there are race conditions where the package
+ // manager might not be started whewn the profile saves.
+ assertTrue("Did not see framework.jar in " + res, sawFramework);
+ assertTrue("Did not see services.jar in " + res, sawServices);
+ }
+
+ // Test the profile contents contain common methods for core-oj that would normally be
+ // AOT compiled. Also test that services.jar has PackageManagerService.<init> since the
+ // package manager service should always be created during boot.
+ res = mTestDevice.executeShellCommand(
+ "profman --dump-classes-and-methods --profile-file="
+ + SYSTEM_SERVER_PROFILE + " --apk=/apex/com.android.art/javalib/core-oj.jar"
+ + " --apk=/system/framework/services.jar");
+ boolean sawObjectInit = false;
+ boolean sawPmInit = false;
+ for (String line : res.split("\n")) {
+ if (line.contains("Ljava/lang/Object;-><init>()V")) {
+ sawObjectInit = true;
+ } else if (line.contains("Lcom/android/server/pm/PackageManagerService;-><init>")) {
+ sawPmInit = true;
+ }
+ }
+ if (i == numIterations) {
+ assertTrue("Did not see Object.<init> in " + res, sawObjectInit);
+ assertTrue("Did not see PackageManagerService.<init> in " + res, sawPmInit);
+ }
+
+ if (sawFramework && sawServices && sawObjectInit && sawPmInit) {
+ break; // Asserts passed, exit.
}
}
- assertTrue("Did not see framework.jar in " + res, sawFramework);
- assertTrue("Did not see services.jar in " + res, sawServices);
-
-
- // Test the profile contents contain common methods for core-oj that would normally be AOT
- // compiled.
- res = mTestDevice.executeShellCommand("profman --dump-classes-and-methods --profile-file="
- + SYSTEM_SERVER_PROFILE + " --apk=/apex/com.android.art/javalib/core-oj.jar"
- + " --apk=/system/framework/services.jar");
- boolean sawObjectInit = false;
- boolean sawPmInit = false;
- for (String line : res.split("\n")) {
- if (line.contains("Ljava/lang/Object;-><init>()V")) {
- sawObjectInit = true;
- } else if (line.contains("Lcom/android/server/pm/PackageManagerService;-><init>")) {
- sawPmInit = true;
- }
- }
- assertTrue("Did not see Object.<init> in " + res, sawObjectInit);
- assertTrue("Did not see PackageManagerService.<init> in " + res, sawPmInit);
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/CommonTransitions.java b/tests/FlickerTests/src/com/android/server/wm/flicker/CommonTransitions.java
index fd31aa5..e033d0a 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/CommonTransitions.java
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/CommonTransitions.java
@@ -78,6 +78,7 @@
return TransitionRunner.newBuilder()
.withTag("OpenAppWarm_" + testApp.getLauncherName()
+ rotationToString(beginRotation))
+ .recordAllRuns()
.runBeforeAll(AutomationUtils::wakeUpAndGoToHomeScreen)
.runBeforeAll(() -> setRotation(device, beginRotation))
.runBeforeAll(testApp::open)
@@ -94,6 +95,7 @@
device) {
return TransitionRunner.newBuilder()
.withTag("closeAppWithBackKey_" + testApp.getLauncherName())
+ .recordAllRuns()
.runBeforeAll(AutomationUtils::wakeUpAndGoToHomeScreen)
.runBefore(testApp::open)
.runBefore(device::waitForIdle)
@@ -108,6 +110,7 @@
device) {
return TransitionRunner.newBuilder()
.withTag("closeAppWithHomeKey_" + testApp.getLauncherName())
+ .recordAllRuns()
.runBeforeAll(AutomationUtils::wakeUpAndGoToHomeScreen)
.runBefore(testApp::open)
.runBefore(device::waitForIdle)
@@ -123,6 +126,7 @@
return TransitionRunner.newBuilder()
.withTag("OpenAppCold_" + testApp.getLauncherName()
+ rotationToString(beginRotation))
+ .recordAllRuns()
.runBeforeAll(AutomationUtils::wakeUpAndGoToHomeScreen)
.runBefore(device::pressHome)
.runBeforeAll(() -> setRotation(device, beginRotation))
@@ -140,6 +144,7 @@
.withTag("changeAppRotation_" + testApp.getLauncherName()
+ rotationToString(beginRotation) + "_" +
rotationToString(endRotation))
+ .recordAllRuns()
.runBeforeAll(AutomationUtils::wakeUpAndGoToHomeScreen)
.runBeforeAll(testApp::open)
.runBefore(() -> setRotation(device, beginRotation))
@@ -156,6 +161,7 @@
rotationToString(beginRotation) + "_" + rotationToString(endRotation);
return TransitionRunner.newBuilder()
.withTag(testTag)
+ .recordAllRuns()
.runBeforeAll(AutomationUtils::wakeUpAndGoToHomeScreen)
.runBeforeAll(() -> {
context.startActivity(intent);
@@ -173,6 +179,7 @@
static TransitionBuilder appToSplitScreen(IAppHelper testApp, UiDevice device) {
return TransitionRunner.newBuilder()
.withTag("appToSplitScreen_" + testApp.getLauncherName())
+ .recordAllRuns()
.runBeforeAll(AutomationUtils::wakeUpAndGoToHomeScreen)
.runBefore(testApp::open)
.runBefore(device::waitForIdle)
@@ -186,6 +193,7 @@
static TransitionBuilder splitScreenToLauncher(IAppHelper testApp, UiDevice device) {
return TransitionRunner.newBuilder()
.withTag("splitScreenToLauncher_" + testApp.getLauncherName())
+ .recordAllRuns()
.runBeforeAll(AutomationUtils::wakeUpAndGoToHomeScreen)
.runBefore(testApp::open)
.runBefore(device::waitForIdle)
@@ -200,6 +208,7 @@
return TransitionRunner.newBuilder()
.withTag("editTextSetFocus_" + testApp.getLauncherName()
+ rotationToString(beginRotation))
+ .recordAllRuns()
.runBeforeAll(AutomationUtils::wakeUpAndGoToHomeScreen)
.runBefore(device::pressHome)
.runBefore(() -> setRotation(device, beginRotation))
@@ -218,6 +227,7 @@
+ rotationToString(beginRotation);
return TransitionRunner.newBuilder()
.withTag(testTag)
+ .recordAllRuns()
.runBeforeAll(AutomationUtils::wakeUpAndGoToHomeScreen)
.runBeforeAll(() -> setRotation(device, beginRotation))
.runBeforeAll(() -> clearRecents(device))
@@ -246,6 +256,7 @@
return TransitionRunner.newBuilder()
.withTag("editTextLoseFocusToHome_" + testApp.getLauncherName()
+ rotationToString(beginRotation))
+ .recordAllRuns()
.runBeforeAll(AutomationUtils::wakeUpAndGoToHomeScreen)
.runBefore(device::pressHome)
.runBefore(() -> setRotation(device, beginRotation))
@@ -262,6 +273,7 @@
return TransitionRunner.newBuilder()
.withTag("editTextLoseFocusToApp_" + testApp.getLauncherName()
+ rotationToString(beginRotation))
+ .recordAllRuns()
.runBeforeAll(AutomationUtils::wakeUpAndGoToHomeScreen)
.runBefore(device::pressHome)
.runBefore(() -> setRotation(device, beginRotation))
diff --git a/tests/RollbackTest/StagedRollbackTest/src/com/android/tests/rollback/host/StagedRollbackTest.java b/tests/RollbackTest/StagedRollbackTest/src/com/android/tests/rollback/host/StagedRollbackTest.java
index bad2947..b767b08 100644
--- a/tests/RollbackTest/StagedRollbackTest/src/com/android/tests/rollback/host/StagedRollbackTest.java
+++ b/tests/RollbackTest/StagedRollbackTest/src/com/android/tests/rollback/host/StagedRollbackTest.java
@@ -19,6 +19,7 @@
import static org.junit.Assert.assertTrue;
import com.android.ddmlib.Log.LogLevel;
+import com.android.tradefed.device.DeviceNotAvailableException;
import com.android.tradefed.log.LogUtil.CLog;
import com.android.tradefed.testtype.DeviceJUnit4ClassRunner;
import com.android.tradefed.testtype.junit4.BaseHostJUnit4Test;
@@ -95,7 +96,7 @@
+ "watchdog_request_timeout_millis 300000");
// Simulate re-installation of new NetworkStack with rollbacks enabled
getDevice().executeShellCommand("pm install -r --staged --enable-rollback "
- + "/system/priv-app/NetworkStack/NetworkStack.apk");
+ + getNetworkStackPath());
// Sleep to allow writes to disk before reboot
Thread.sleep(5000);
@@ -141,7 +142,7 @@
+ "watchdog_request_timeout_millis 300000");
// Simulate re-installation of new NetworkStack with rollbacks enabled
getDevice().executeShellCommand("pm install -r --staged --enable-rollback "
- + "/system/priv-app/NetworkStack/NetworkStack.apk");
+ + getNetworkStackPath());
// Sleep to allow writes to disk before reboot
Thread.sleep(5000);
@@ -165,4 +166,9 @@
// Verify rollback was not executed after health check deadline
runPhase("assertNoNetworkStackRollbackCommitted");
}
+
+ private String getNetworkStackPath() throws DeviceNotAvailableException {
+ // Find the NetworkStack path (can be NetworkStack.apk or NetworkStackNext.apk)
+ return getDevice().executeShellCommand("ls /system/priv-app/NetworkStack*/*.apk");
+ }
}
diff --git a/tests/net/integration/AndroidManifest.xml b/tests/net/integration/AndroidManifest.xml
index 91b3cd9..4dd3b5a 100644
--- a/tests/net/integration/AndroidManifest.xml
+++ b/tests/net/integration/AndroidManifest.xml
@@ -17,7 +17,6 @@
*/
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
package="com.android.server.net.integrationtests">
<!-- For ConnectivityService registerReceiverAsUser (receiving broadcasts) -->
@@ -26,13 +25,19 @@
<uses-permission android:name="android.permission.MANAGE_USERS" />
<!-- ConnectivityService sends notifications to BatteryStats -->
<uses-permission android:name="android.permission.UPDATE_DEVICE_STATS" />
+ <!-- Reading network status -->
+ <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
+ <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
+ <uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" />
+ <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
+ <!-- Reading DeviceConfig flags -->
+ <uses-permission android:name="android.permission.READ_DEVICE_CONFIG" />
<application android:debuggable="true">
<uses-library android:name="android.test.runner" />
<!-- This manifest is merged with the base manifest of the real NetworkStack app.
Remove the NetworkStackService from the base (real) manifest, and replace with a test
service that responds to the same intent -->
- <service android:name="com.android.server.NetworkStackService" tools:node="remove"/>
<service android:name=".TestNetworkStackService"
android:process="com.android.server.net.integrationtests.testnetworkstack">
<intent-filter>
@@ -45,9 +50,9 @@
<action android:name=".INetworkStackInstrumentation"/>
</intent-filter>
</service>
- <service tools:replace="android:process"
- android:name="com.android.server.connectivity.ipmemorystore.RegularMaintenanceJobService"
- android:process="com.android.server.net.integrationtests.testnetworkstack"/>
+ <service android:name="com.android.server.connectivity.ipmemorystore.RegularMaintenanceJobService"
+ android:process="com.android.server.net.integrationtests.testnetworkstack"
+ android:permission="android.permission.BIND_JOB_SERVICE"/>
</application>
diff --git a/tests/net/java/android/net/netlink/InetDiagSocketTest.java b/tests/net/java/android/net/netlink/InetDiagSocketTest.java
index 1f2bb0a..84c5784 100644
--- a/tests/net/java/android/net/netlink/InetDiagSocketTest.java
+++ b/tests/net/java/android/net/netlink/InetDiagSocketTest.java
@@ -46,7 +46,6 @@
import libcore.util.HexEncoding;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -202,14 +201,29 @@
checkGetConnectionOwnerUid("::1", "::1");
}
- @Ignore("Times out on Marlin/Sailfish")
/* Verify fix for b/141603906 */
@Test
public void testB141603906() throws Exception {
final InetSocketAddress src = new InetSocketAddress(0);
final InetSocketAddress dst = new InetSocketAddress(0);
- for (int i = 1; i <= 100000; i++) {
- mCm.getConnectionOwnerUid(IPPROTO_TCP, src, dst);
+ final int numThreads = 8;
+ final int numSockets = 5000;
+ final Thread[] threads = new Thread[numThreads];
+
+ for (int i = 0; i < numThreads; i++) {
+ threads[i] = new Thread(() -> {
+ for (int j = 0; j < numSockets; j++) {
+ mCm.getConnectionOwnerUid(IPPROTO_TCP, src, dst);
+ }
+ });
+ }
+
+ for (Thread thread : threads) {
+ thread.start();
+ }
+
+ for (Thread thread : threads) {
+ thread.join();
}
}
diff --git a/tests/touchlag/Android.bp b/tests/touchlag/Android.bp
deleted file mode 100644
index 092eea9..0000000
--- a/tests/touchlag/Android.bp
+++ /dev/null
@@ -1,14 +0,0 @@
-cc_test {
- name: "test-touchlag",
- gtest: false,
- srcs: ["touchlag.cpp"],
- shared_libs: [
- "libcutils",
- "libutils",
- ],
- cflags: [
- "-Wall",
- "-Wextra",
- "-Werror",
- ],
-}
diff --git a/tests/touchlag/touchlag.cpp b/tests/touchlag/touchlag.cpp
deleted file mode 100644
index 9264a25..0000000
--- a/tests/touchlag/touchlag.cpp
+++ /dev/null
@@ -1,294 +0,0 @@
-/*
- * Copyright (C) 2012 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.
- */
-
-#include <stdint.h>
-#include <sys/types.h>
-
-#include <fcntl.h>
-#include <sys/ioctl.h>
-#include <linux/fb.h>
-#include <linux/input.h>
-#include <errno.h>
-#include <string.h>
-#include <stdio.h>
-#include <cutils/memory.h>
-#include <asm-generic/mman.h>
-#include <sys/mman.h>
-#include <utils/threads.h>
-#include <unistd.h>
-#include <math.h>
-
-using namespace android;
-
-#ifndef FBIO_WAITFORVSYNC
-#define FBIO_WAITFORVSYNC _IOW('F', 0x20, __u32)
-#endif
-
-struct Buffer {
- size_t w;
- size_t h;
- size_t s;
- union {
- void* addr;
- uint32_t* pixels;
- };
-};
-
-void clearBuffer(Buffer* buf, uint32_t pixel) {
- android_memset32(buf->pixels, pixel, buf->s * buf->h * 4);
-}
-
-void drawTwoPixels(Buffer* buf, uint32_t pixel, ssize_t x, ssize_t y, size_t w) {
- if (y>0 && y<ssize_t(buf->h)) {
- uint32_t* bits = buf->pixels + y * buf->s;
- if (x>=0 && x<ssize_t(buf->w)) {
- bits[x] = pixel;
- }
- ssize_t W(w);
- if ((x+W)>=0 && (x+W)<ssize_t(buf->w)) {
- bits[x+W] = pixel;
- }
- }
-}
-
-void drawHLine(Buffer* buf, uint32_t pixel, ssize_t x, ssize_t y, size_t w) {
- if (y>0 && y<ssize_t(buf->h)) {
- ssize_t W(w);
- if (x<0) {
- W += x;
- x = 0;
- }
- if (x+w > buf->w) {
- W = buf->w - x;
- }
- if (W>0) {
- uint32_t* bits = buf->pixels + y * buf->s + x;
- android_memset32(bits, pixel, W*4);
- }
- }
-}
-
-void drawRect(Buffer* buf, uint32_t pixel, ssize_t x, ssize_t y, size_t w, size_t h) {
- ssize_t W(w), H(h);
- if (x<0) {
- w += x;
- x = 0;
- }
- if (y<0) {
- h += y;
- y = 0;
- }
- if (x+w > buf->w) W = buf->w - x;
- if (y+h > buf->h) H = buf->h - y;
- if (W>0 && H>0) {
- uint32_t* bits = buf->pixels + y * buf->s + x;
- for (ssize_t i=0 ; i<H ; i++) {
- android_memset32(bits, pixel, W*4);
- bits += buf->s;
- }
- }
-}
-
-void drawCircle(Buffer* buf, uint32_t pixel,
- size_t x0, size_t y0, size_t radius, bool filled = false) {
- ssize_t f = 1 - radius;
- ssize_t ddF_x = 1;
- ssize_t ddF_y = -2 * radius;
- ssize_t x = 0;
- ssize_t y = radius;
- if (filled) {
- drawHLine(buf, pixel, x0-radius, y0, 2*radius);
- } else {
- drawTwoPixels(buf, pixel, x0-radius, y0, 2*radius);
- }
- while (x < y) {
- if (f >= 0) {
- y--;
- ddF_y += 2;
- f += ddF_y;
- }
- x++;
- ddF_x += 2;
- f += ddF_x;
- if (filled) {
- drawHLine(buf, pixel, x0-x, y0+y, 2*x);
- drawHLine(buf, pixel, x0-x, y0-y, 2*x);
- drawHLine(buf, pixel, x0-y, y0+x, 2*y);
- drawHLine(buf, pixel, x0-y, y0-x, 2*y);
- } else {
- drawTwoPixels(buf, pixel, x0-x, y0+y, 2*x);
- drawTwoPixels(buf, pixel, x0-x, y0-y, 2*x);
- drawTwoPixels(buf, pixel, x0-y, y0+x, 2*y);
- drawTwoPixels(buf, pixel, x0-y, y0-x, 2*y);
- }
- }
-}
-
-class TouchEvents {
- class EventThread : public Thread {
- int fd;
-
- virtual bool threadLoop() {
- input_event event;
- int first_down = 0;
- do {
- read(fd, &event, sizeof(event));
- if (event.type == EV_ABS) {
- if (event.code == ABS_MT_TRACKING_ID) {
- down = event.value == -1 ? 0 : 1;
- first_down = down;
- }
- if (event.code == ABS_MT_POSITION_X) {
- x = event.value;
- }
- if (event.code == ABS_MT_POSITION_Y) {
- y = event.value;
- }
- }
- } while (event.type == EV_SYN);
- return true;
- }
-
- public:
- int x, y, down;
- EventThread() : Thread(false),
- x(0), y(0), down(0)
- {
- fd = open("/dev/input/event1", O_RDONLY);
- }
-};
- sp<EventThread> thread;
-
-public:
- TouchEvents() {
- thread = new EventThread();
- thread->run("EventThread", PRIORITY_URGENT_DISPLAY);
- }
-
- int getMostRecentPosition(int* x, int* y) {
- *x = thread->x;
- *y = thread->y;
- return thread->down;
- }
-};
-
-
-struct Queue {
- struct position {
- int x, y;
- };
- int index;
- position q[16];
- Queue() : index(0) { }
- void push(int x, int y) {
- index++;
- index &= 0xF;
- q[index].x = x;
- q[index].y = y;
- }
- void get(int lag, int* x, int* y) {
- const int i = (index - lag) & 0xF;
- *x = q[i].x;
- *y = q[i].y;
- }
-};
-
-extern char *optarg;
-extern int optind;
-extern int optopt;
-extern int opterr;
-extern int optreset;
-
-void usage(const char* name) {
- printf("\nusage: %s [-h] [-l lag]\n", name);
-}
-
-int main(int argc, char** argv) {
- fb_var_screeninfo vi;
- fb_fix_screeninfo fi;
-
- int lag = 0;
- int fd = open("/dev/graphics/fb0", O_RDWR);
- ioctl(fd, FBIOGET_VSCREENINFO, &vi);
- ioctl(fd, FBIOGET_FSCREENINFO, &fi);
- void* bits = mmap(0, fi.smem_len, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
- Buffer framebuffer;
- framebuffer.w = vi.xres;
- framebuffer.h = vi.yres;
- framebuffer.s = fi.line_length / (vi.bits_per_pixel >> 3);
- framebuffer.addr = bits;
-
- int ch;
- while ((ch = getopt(argc, argv, "hl:")) != -1) {
- switch (ch) {
- case 'l':
- lag = atoi(optarg);
- break;
- case 'h':
- default:
- usage(argv[0]);
- exit(0);
- }
- }
- argc -= optind;
- argv += optind;
-
-
- TouchEvents touch;
- Queue queue;
-
-
- int x=0, y=0;
- int lag_x=0, lag_y=0;
-
- clearBuffer(&framebuffer, 0);
- while (true) {
- uint32_t crt = 0;
- ioctl(fd, FBIO_WAITFORVSYNC, &crt);
-
- // draw beam marker
- drawRect(&framebuffer, 0x400000, framebuffer.w-2, 0, 2, framebuffer.h);
- // erase screen
- if (lag) {
- drawCircle(&framebuffer, 0, lag_x, lag_y, 100);
- drawHLine(&framebuffer, 0, 0, lag_y, 32);
- }
- drawCircle(&framebuffer, 0, x, y, 100, true);
- drawHLine(&framebuffer, 0, 0, y, 32);
-
- // draw a line at y=1000
- drawHLine(&framebuffer, 0x808080, 0, 1000, framebuffer.w);
-
- // get touch events
- touch.getMostRecentPosition(&x, &y);
- queue.push(x, y);
- queue.get(lag, &lag_x, &lag_y);
-
- if (lag) {
- drawCircle(&framebuffer, 0x00FF00, lag_x, lag_y, 100);
- drawHLine(&framebuffer, 0x00FF00, 0, lag_y, 32);
- }
-
- drawCircle(&framebuffer, 0xFFFFFF, x, y, 100, true);
- drawHLine(&framebuffer, 0xFFFFFF, 0, y, 32);
-
- // draw end of frame beam marker
- drawRect(&framebuffer, 0x004000, framebuffer.w-2, 0, 2, framebuffer.h);
- }
-
- close(fd);
- return 0;
-}
diff --git a/tools/aapt2/java/ProguardRules.cpp b/tools/aapt2/java/ProguardRules.cpp
index 05ba8f0..806f4e3 100644
--- a/tools/aapt2/java/ProguardRules.cpp
+++ b/tools/aapt2/java/ProguardRules.cpp
@@ -404,12 +404,15 @@
for (const auto& entry : keep_set.conditional_class_set_) {
std::set<UsageLocation> locations;
- bool can_be_conditional = true;
- for (const UsageLocation& location : entry.second) {
- can_be_conditional &= CollectLocations(location, keep_set, &locations);
+ bool can_be_conditional = false;
+ if (keep_set.conditional_keep_rules_) {
+ can_be_conditional = true;
+ for (const UsageLocation& location : entry.second) {
+ can_be_conditional &= CollectLocations(location, keep_set, &locations);
+ }
}
- if (keep_set.conditional_keep_rules_ && can_be_conditional) {
+ if (can_be_conditional) {
for (const UsageLocation& location : locations) {
printer.Print("# Referenced at ").Println(location.source.to_string());
printer.Print("-if class **.R$layout { int ")