diff options
722 files changed, 5557 insertions, 2229 deletions
diff --git a/Android.bp b/Android.bp index 35879df4b852..eb1718efbef6 100644 --- a/Android.bp +++ b/Android.bp @@ -447,7 +447,6 @@ java_library { name: "framework-internal-utils", static_libs: [ "apex_aidl_interface-java", - "suspend_control_aidl_interface-java", "framework-protos", "updatable-driver-protos", "android.hidl.base-V1.0-java", @@ -480,6 +479,8 @@ java_library { "android.hardware.vibrator-V1.1-java", "android.hardware.vibrator-V1.2-java", "android.hardware.vibrator-V1.3-java", + "android.system.keystore2-java", + "android.system.suspend.control.internal-java", "devicepolicyprotosnano", "com.android.sysprop.apex", @@ -554,6 +555,7 @@ java_library { "framework-platform-compat-config", // TODO: remove gps_debug and protolog.conf.json when the build system propagates "required" properly. "gps_debug.conf", + "icu4j-platform-compat-config", "libcore-platform-compat-config", "protolog.conf.json.gz", "services-platform-compat-config", diff --git a/StubLibraries.bp b/StubLibraries.bp index 9047df5aba5c..7060347922b9 100644 --- a/StubLibraries.bp +++ b/StubLibraries.bp @@ -225,7 +225,7 @@ droidstubs { } droidstubs { - name: "test-api-stubs-docs", + name: "test-api-stubs-docs-non-updatable", defaults: ["metalava-non-updatable-api-stubs-default"], arg_files: [ "core/res/AndroidManifest.xml", @@ -237,12 +237,12 @@ droidstubs { + "\\)", check_api: { current: { - api_file: "api/test-current.txt", - removed_api_file: "api/test-removed.txt", + api_file: "core/api/test-current.txt", + removed_api_file: "core/api/test-removed.txt", }, api_lint: { enabled: true, - baseline_file: "api/test-lint-baseline.txt", + baseline_file: "core/api/test-lint-baseline.txt", }, }, dist: { @@ -312,14 +312,7 @@ java_defaults { } java_library_static { - name: "android_monolith_stubs_current", - srcs: [ ":api-stubs-docs" ], - static_libs: [ "private-stub-annotations-jar" ], - defaults: ["android_defaults_stubs_current"], -} - -java_library_static { - name: "android_merged_stubs_current", + name: "android_stubs_current", srcs: [ ":api-stubs-docs-non-updatable" ], static_libs: [ "conscrypt.module.public.api.stubs", @@ -332,19 +325,6 @@ java_library_static { "framework-wifi.stubs", "private-stub-annotations-jar", ], - defaults: ["android_defaults_stubs_current"], -} - -java_library_static { - name: "android_stubs_current", - static_libs: ["android_merged_stubs_current"], - defaults: ["android_defaults_stubs_current"], -} - -java_library_static { - name: "android_system_monolith_stubs_current", - srcs: [ ":system-api-stubs-docs" ], - static_libs: [ "private-stub-annotations-jar" ], defaults: [ "android_defaults_stubs_current", "android_stubs_dists_default", @@ -363,7 +343,7 @@ java_library_static { } java_library_static { - name: "android_system_merged_stubs_current", + name: "android_system_stubs_current", srcs: [ ":system-api-stubs-docs-non-updatable" ], static_libs: [ "conscrypt.module.public.api.stubs", @@ -380,14 +360,8 @@ java_library_static { } java_library_static { - name: "android_system_stubs_current", - static_libs: ["android_system_merged_stubs_current"], - defaults: ["android_defaults_stubs_current"], -} - -java_library_static { name: "android_test_stubs_current", - srcs: [ ":test-api-stubs-docs" ], + srcs: [ ":test-api-stubs-docs-non-updatable" ], static_libs: [ // Modules do not have test APIs, but we want to include their SystemApis, like we include // the SystemApi of framework-non-updatable-sources. diff --git a/apex/Android.bp b/apex/Android.bp index c5b4901a9b79..0a535a8fe9b9 100644 --- a/apex/Android.bp +++ b/apex/Android.bp @@ -112,6 +112,8 @@ java_defaults { ], stubs_source_visibility: ["//visibility:private"], + defaults_visibility: ["//visibility:private"], + // Collates API usages from each module for further analysis. plugins: ["java_api_finder"], diff --git a/apex/jobscheduler/framework/java/android/app/job/JobInfo.java b/apex/jobscheduler/framework/java/android/app/job/JobInfo.java index 9f98f8efc774..c2d530d00058 100644 --- a/apex/jobscheduler/framework/java/android/app/job/JobInfo.java +++ b/apex/jobscheduler/framework/java/android/app/job/JobInfo.java @@ -210,7 +210,7 @@ public class JobInfo implements Parcelable { public static final int PRIORITY_BOUND_FOREGROUND_SERVICE = 30; /** @hide For backward compatibility. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int PRIORITY_FOREGROUND_APP = PRIORITY_BOUND_FOREGROUND_SERVICE; /** @@ -218,7 +218,7 @@ public class JobInfo implements Parcelable { * JobInfo priority if it is smaller). * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int PRIORITY_FOREGROUND_SERVICE = 35; /** @@ -257,7 +257,7 @@ public class JobInfo implements Parcelable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int FLAG_WILL_BE_FOREGROUND = 1 << 0; /** @@ -1007,14 +1007,14 @@ public class JobInfo implements Parcelable { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Builder setPriority(int priority) { mPriority = priority; return this; } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Builder setFlags(int flags) { mFlags = flags; return this; diff --git a/apex/jobscheduler/framework/java/android/os/IDeviceIdleController.aidl b/apex/jobscheduler/framework/java/android/os/IDeviceIdleController.aidl index 643d47ca5c6a..7d02d2d6cd29 100644 --- a/apex/jobscheduler/framework/java/android/os/IDeviceIdleController.aidl +++ b/apex/jobscheduler/framework/java/android/os/IDeviceIdleController.aidl @@ -31,13 +31,13 @@ interface IDeviceIdleController { String[] getSystemPowerWhitelistExceptIdle(); String[] getSystemPowerWhitelist(); String[] getUserPowerWhitelist(); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) String[] getFullPowerWhitelistExceptIdle(); String[] getFullPowerWhitelist(); int[] getAppIdWhitelistExceptIdle(); int[] getAppIdWhitelist(); int[] getAppIdUserWhitelist(); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) int[] getAppIdTempWhitelist(); boolean isPowerSaveWhitelistExceptIdleApp(String name); boolean isPowerSaveWhitelistApp(String name); diff --git a/api/Android.bp b/api/Android.bp index 4d7f58edd870..ae0d59635e8f 100644 --- a/api/Android.bp +++ b/api/Android.bp @@ -19,7 +19,7 @@ package { genrule { name: "current-api-xml", tools: ["metalava"], - srcs: ["current.txt"], + srcs: [":frameworks-base-api-current.txt"], out: ["current.api"], cmd: "$(location metalava) --no-banner -convert2xmlnostrip $(in) $(out)", visibility: ["//visibility:public"], diff --git a/api/current.txt b/api/current.txt index c2e75cd14968..5d46a686ebc9 100644 --- a/api/current.txt +++ b/api/current.txt @@ -38641,6 +38641,9 @@ package android.provider { ctor public CallLog.Calls(); method public static String getLastOutgoingCall(android.content.Context); field public static final int ANSWERED_EXTERNALLY_TYPE = 7; // 0x7 + field public static final long AUTO_MISSED_EMERGENCY_CALL = 1L; // 0x1L + field public static final long AUTO_MISSED_MAXIMUM_DIALING = 4L; // 0x4L + field public static final long AUTO_MISSED_MAXIMUM_RINGING = 2L; // 0x2L field public static final int BLOCKED_TYPE = 6; // 0x6 field public static final String BLOCK_REASON = "block_reason"; field public static final int BLOCK_REASON_BLOCKED_NUMBER = 3; // 0x3 @@ -38686,6 +38689,8 @@ package android.provider { field public static final String IS_READ = "is_read"; field public static final String LAST_MODIFIED = "last_modified"; field public static final String LIMIT_PARAM_KEY = "limit"; + field public static final String MISSED_REASON = "missed_reason"; + field public static final long MISSED_REASON_NOT_MISSED = 0L; // 0x0L field public static final int MISSED_TYPE = 3; // 0x3 field public static final String NEW = "new"; field public static final String NUMBER = "number"; @@ -38702,6 +38707,13 @@ package android.provider { field public static final int REJECTED_TYPE = 5; // 0x5 field public static final String TRANSCRIPTION = "transcription"; field public static final String TYPE = "type"; + field public static final long USER_MISSED_CALL_FILTERS_TIMEOUT = 4194304L; // 0x400000L + field public static final long USER_MISSED_CALL_SCREENING_SERVICE_SILENCED = 2097152L; // 0x200000L + field public static final long USER_MISSED_DND_MODE = 262144L; // 0x40000L + field public static final long USER_MISSED_LOW_RING_VOLUME = 524288L; // 0x80000L + field public static final long USER_MISSED_NO_ANSWER = 65536L; // 0x10000L + field public static final long USER_MISSED_NO_VIBRATE = 1048576L; // 0x100000L + field public static final long USER_MISSED_SHORT_RING = 131072L; // 0x20000L field public static final String VIA_NUMBER = "via_number"; field public static final int VOICEMAIL_TYPE = 4; // 0x4 field public static final String VOICEMAIL_URI = "voicemail_uri"; @@ -42868,6 +42880,11 @@ package android.security.keystore { field public static final int PURPOSE_SIGN = 4; // 0x4 field public static final int PURPOSE_VERIFY = 8; // 0x8 field public static final int PURPOSE_WRAP_KEY = 32; // 0x20 + field public static final int SECURITY_LEVEL_SOFTWARE = 0; // 0x0 + field public static final int SECURITY_LEVEL_STRONGBOX = 2; // 0x2 + field public static final int SECURITY_LEVEL_TRUSTED_ENVIRONMENT = 1; // 0x1 + field public static final int SECURITY_LEVEL_UNKNOWN = -2; // 0xfffffffe + field public static final int SECURITY_LEVEL_UNKNOWN_SECURE = -1; // 0xffffffff field public static final String SIGNATURE_PADDING_RSA_PKCS1 = "PKCS1"; field public static final String SIGNATURE_PADDING_RSA_PSS = "PSS"; } diff --git a/api/system-current.txt b/api/system-current.txt index 5ea8e438d064..55cc12e63a16 100755 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -369,6 +369,7 @@ package android.app { field public static final String OPSTR_ACCEPT_HANDOVER = "android:accept_handover"; field public static final String OPSTR_ACCESS_ACCESSIBILITY = "android:access_accessibility"; field public static final String OPSTR_ACCESS_NOTIFICATIONS = "android:access_notifications"; + field public static final String OPSTR_ACTIVATE_PLATFORM_VPN = "android:activate_platform_vpn"; field public static final String OPSTR_ACTIVATE_VPN = "android:activate_vpn"; field public static final String OPSTR_ASSIST_SCREENSHOT = "android:assist_screenshot"; field public static final String OPSTR_ASSIST_STRUCTURE = "android:assist_structure"; @@ -11255,6 +11256,7 @@ package android.telephony { method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isIdle(); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isLteCdmaEvdoGsmWcdmaEnabled(); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isMobileDataPolicyEnabled(int); + method public boolean isNrDualConnectivityEnabled(); method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isOffhook(); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isOpportunisticNetworkEnabled(); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isPotentialEmergencyNumber(@NonNull String); @@ -11287,6 +11289,7 @@ package android.telephony { method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDataRoamingEnabled(boolean); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setMobileDataPolicyEnabledStatus(int, boolean); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setMultiSimCarrierRestriction(boolean); + method public int setNrDualConnectivityState(int); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setOpportunisticNetworkState(boolean); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setPreferredNetworkTypeBitmask(long); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setRadio(boolean); @@ -11326,6 +11329,11 @@ package android.telephony { field public static final int CARRIER_PRIVILEGE_STATUS_HAS_ACCESS = 1; // 0x1 field public static final int CARRIER_PRIVILEGE_STATUS_NO_ACCESS = 0; // 0x0 field public static final int CARRIER_PRIVILEGE_STATUS_RULES_NOT_LOADED = -1; // 0xffffffff + field public static final int ENABLE_NR_DUAL_CONNECTIVITY_INVALID_STATE = 4; // 0x4 + field public static final int ENABLE_NR_DUAL_CONNECTIVITY_NOT_SUPPORTED = 1; // 0x1 + field public static final int ENABLE_NR_DUAL_CONNECTIVITY_RADIO_ERROR = 3; // 0x3 + field public static final int ENABLE_NR_DUAL_CONNECTIVITY_RADIO_NOT_AVAILABLE = 2; // 0x2 + field public static final int ENABLE_NR_DUAL_CONNECTIVITY_SUCCESS = 0; // 0x0 field public static final String EXTRA_ANOMALY_DESCRIPTION = "android.telephony.extra.ANOMALY_DESCRIPTION"; field public static final String EXTRA_ANOMALY_ID = "android.telephony.extra.ANOMALY_ID"; field public static final String EXTRA_PHONE_IN_ECM_STATE = "android.telephony.extra.PHONE_IN_ECM_STATE"; @@ -11358,6 +11366,9 @@ package android.telephony { field public static final long NETWORK_TYPE_BITMASK_TD_SCDMA = 65536L; // 0x10000L field public static final long NETWORK_TYPE_BITMASK_UMTS = 4L; // 0x4L field public static final long NETWORK_TYPE_BITMASK_UNKNOWN = 0L; // 0x0L + field public static final int NR_DUAL_CONNECTIVITY_DISABLE = 2; // 0x2 + field public static final int NR_DUAL_CONNECTIVITY_DISABLE_IMMEDIATE = 3; // 0x3 + field public static final int NR_DUAL_CONNECTIVITY_ENABLE = 1; // 0x1 field public static final int RADIO_POWER_OFF = 0; // 0x0 field public static final int RADIO_POWER_ON = 1; // 0x1 field public static final int RADIO_POWER_UNAVAILABLE = 2; // 0x2 @@ -11735,6 +11746,17 @@ package android.telephony.euicc { package android.telephony.ims { + public final class AudioCodecAttributes implements android.os.Parcelable { + ctor public AudioCodecAttributes(float, @NonNull android.util.Range<java.lang.Float>, float, @NonNull android.util.Range<java.lang.Float>); + method public int describeContents(); + method public float getBandwidthKhz(); + method @NonNull public android.util.Range<java.lang.Float> getBandwidthRangeKhz(); + method public float getBitrateKbps(); + method @NonNull public android.util.Range<java.lang.Float> getBitrateRangeKbps(); + method public void writeToParcel(@NonNull android.os.Parcel, int); + field @NonNull public static final android.os.Parcelable.Creator<android.telephony.ims.AudioCodecAttributes> CREATOR; + } + public final class ImsCallForwardInfo implements android.os.Parcelable { ctor public ImsCallForwardInfo(int, int, int, int, @NonNull String, int); method public int describeContents(); @@ -11764,6 +11786,7 @@ package android.telephony.ims { ctor public ImsCallProfile(int, int); ctor public ImsCallProfile(int, int, android.os.Bundle, android.telephony.ims.ImsStreamMediaProfile); method public int describeContents(); + method @NonNull public java.util.Set<android.telephony.ims.RtpHeaderExtensionType> getAcceptedRtpHeaderExtensionTypes(); method public String getCallExtra(String); method public String getCallExtra(String, String); method public boolean getCallExtraBoolean(String); @@ -11778,6 +11801,7 @@ package android.telephony.ims { method public int getEmergencyServiceCategories(); method @NonNull public java.util.List<java.lang.String> getEmergencyUrns(); method public android.telephony.ims.ImsStreamMediaProfile getMediaProfile(); + method @NonNull public java.util.Set<android.telephony.ims.RtpHeaderExtensionType> getOfferedRtpHeaderExtensionTypes(); method @NonNull public android.os.Bundle getProprietaryCallExtras(); method public int getRestrictCause(); method public int getServiceType(); @@ -11788,6 +11812,7 @@ package android.telephony.ims { method public boolean isVideoCall(); method public boolean isVideoPaused(); method public static int presentationToOir(int); + method public void setAcceptedRtpHeaderExtensionTypes(@NonNull java.util.Set<android.telephony.ims.RtpHeaderExtensionType>); method public void setCallExtra(String, String); method public void setCallExtraBoolean(String, boolean); method public void setCallExtraInt(String, int); @@ -11798,6 +11823,7 @@ package android.telephony.ims { method public void setEmergencyServiceCategories(int); method public void setEmergencyUrns(@NonNull java.util.List<java.lang.String>); method public void setHasKnownUserIntentEmergency(boolean); + method public void setOfferedRtpHeaderExtensionTypes(@NonNull java.util.Set<android.telephony.ims.RtpHeaderExtensionType>); method public void updateCallExtras(android.telephony.ims.ImsCallProfile); method public void updateCallType(android.telephony.ims.ImsCallProfile); method public void updateMediaProfile(android.telephony.ims.ImsCallProfile); @@ -11857,6 +11883,7 @@ package android.telephony.ims { method public void callSessionConferenceExtendReceived(android.telephony.ims.stub.ImsCallSessionImplBase, android.telephony.ims.ImsCallProfile); method public void callSessionConferenceExtended(android.telephony.ims.stub.ImsCallSessionImplBase, android.telephony.ims.ImsCallProfile); method public void callSessionConferenceStateUpdated(android.telephony.ims.ImsConferenceState); + method public void callSessionDtmfReceived(char); method @Deprecated public void callSessionHandover(int, int, android.telephony.ims.ImsReasonInfo); method @Deprecated public void callSessionHandoverFailed(int, int, android.telephony.ims.ImsReasonInfo); method public void callSessionHeld(android.telephony.ims.ImsCallProfile); @@ -11877,6 +11904,7 @@ package android.telephony.ims { method public void callSessionResumeFailed(android.telephony.ims.ImsReasonInfo); method public void callSessionResumeReceived(android.telephony.ims.ImsCallProfile); method public void callSessionResumed(android.telephony.ims.ImsCallProfile); + method public void callSessionRtpHeaderExtensionsReceived(@NonNull java.util.Set<android.telephony.ims.RtpHeaderExtension>); method public void callSessionRttAudioIndicatorChanged(@NonNull android.telephony.ims.ImsStreamMediaProfile); method public void callSessionRttMessageReceived(String); method public void callSessionRttModifyRequestReceived(android.telephony.ims.ImsCallProfile); @@ -12103,6 +12131,7 @@ package android.telephony.ims { ctor public ImsStreamMediaProfile(int, int, int, int, int); method public void copyFrom(android.telephony.ims.ImsStreamMediaProfile); method public int describeContents(); + method @Nullable public android.telephony.ims.AudioCodecAttributes getAudioCodecAttributes(); method public int getAudioDirection(); method public int getAudioQuality(); method public int getRttMode(); @@ -12110,6 +12139,7 @@ package android.telephony.ims { method public int getVideoQuality(); method public boolean isReceivingRttAudio(); method public boolean isRttCall(); + method public void setAudioCodecAttributes(@NonNull android.telephony.ims.AudioCodecAttributes); method public void setReceivingRttAudio(boolean); method public void setRttMode(int); method public void writeToParcel(android.os.Parcel, int); @@ -12231,6 +12261,24 @@ package android.telephony.ims { method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setUceSettingEnabled(boolean) throws android.telephony.ims.ImsException; } + public final class RtpHeaderExtension implements android.os.Parcelable { + ctor public RtpHeaderExtension(@IntRange(from=1, to=14) int, @NonNull byte[]); + method public int describeContents(); + method @NonNull public byte[] getExtensionData(); + method @IntRange(from=1, to=14) public int getLocalIdentifier(); + method public void writeToParcel(@NonNull android.os.Parcel, int); + field @NonNull public static final android.os.Parcelable.Creator<android.telephony.ims.RtpHeaderExtension> CREATOR; + } + + public final class RtpHeaderExtensionType implements android.os.Parcelable { + ctor public RtpHeaderExtensionType(@IntRange(from=1, to=14) int, @NonNull android.net.Uri); + method public int describeContents(); + method @IntRange(from=1, to=14) public int getLocalIdentifier(); + method @NonNull public android.net.Uri getUri(); + method public void writeToParcel(@NonNull android.os.Parcel, int); + field @NonNull public static final android.os.Parcelable.Creator<android.telephony.ims.RtpHeaderExtensionType> CREATOR; + } + public class SipDelegateManager { method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isSupported() throws android.telephony.ims.ImsException; } @@ -12347,6 +12395,7 @@ package android.telephony.ims.stub { method public void removeParticipants(String[]); method public void resume(android.telephony.ims.ImsStreamMediaProfile); method public void sendDtmf(char, android.os.Message); + method public void sendRtpHeaderExtensions(@NonNull java.util.Set<android.telephony.ims.RtpHeaderExtension>); method public void sendRttMessage(String); method public void sendRttModifyRequest(android.telephony.ims.ImsCallProfile); method public void sendRttModifyResponse(boolean); diff --git a/cmds/statsd/src/atoms.proto b/cmds/statsd/src/atoms.proto index 12ef9ba0fb8b..cca6299b74b8 100644 --- a/cmds/statsd/src/atoms.proto +++ b/cmds/statsd/src/atoms.proto @@ -58,6 +58,7 @@ import "frameworks/base/core/proto/android/stats/mediaprovider/mediaprovider_enu import "frameworks/base/core/proto/android/stats/storage/storage_enums.proto"; import "frameworks/base/core/proto/android/stats/style/style_enums.proto"; import "frameworks/base/core/proto/android/stats/sysui/notification_enums.proto"; +import "frameworks/base/core/proto/android/stats/tls/enums.proto"; import "frameworks/base/core/proto/android/telecomm/enums.proto"; import "frameworks/base/core/proto/android/telephony/enums.proto"; import "frameworks/base/core/proto/android/view/enums.proto"; @@ -485,6 +486,7 @@ message Atom { NetworkTetheringReported network_tethering_reported = 303 [(module) = "network_tethering"]; ImeTouchReported ime_touch_reported = 304 [(module) = "sysui"]; + TlsHandshakeReported tls_handshake_reported = 317 [(module) = "conscrypt"]; // StatsdStats tracks platform atoms with ids upto 500. // Update StatsdStats::kMaxPushedAtomId when atom ids here approach that value. @@ -11197,3 +11199,19 @@ message BlobInfo { // List of leasees of this Blob optional BlobLeaseeListProto leasees = 5; } + +/** + * Pushes TLS handshake counters from Conscrypt. + * Pulled from: + * external/conscrypt/common/src/main/java/org/conscrypt/ConscryptEngineSocket.java + * external/conscrypt/common/src/main/java/org/conscrypt/ConscryptFileDescriptorSocket.java + */ + message TlsHandshakeReported { + optional bool success = 1; + + optional android.stats.tls.Protocol protocol = 2; + + optional android.stats.tls.CipherSuite cipher_suite = 3; + + optional int32 handshake_duration_millis = 4; +} diff --git a/core/api/current.txt b/core/api/current.txt index ab0aec73346b..b3561a3c1a27 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -37208,6 +37208,9 @@ package android.provider { ctor public CallLog.Calls(); method public static String getLastOutgoingCall(android.content.Context); field public static final int ANSWERED_EXTERNALLY_TYPE = 7; // 0x7 + field public static final long AUTO_MISSED_EMERGENCY_CALL = 1L; // 0x1L + field public static final long AUTO_MISSED_MAXIMUM_DIALING = 4L; // 0x4L + field public static final long AUTO_MISSED_MAXIMUM_RINGING = 2L; // 0x2L field public static final int BLOCKED_TYPE = 6; // 0x6 field public static final String BLOCK_REASON = "block_reason"; field public static final int BLOCK_REASON_BLOCKED_NUMBER = 3; // 0x3 @@ -37253,6 +37256,8 @@ package android.provider { field public static final String IS_READ = "is_read"; field public static final String LAST_MODIFIED = "last_modified"; field public static final String LIMIT_PARAM_KEY = "limit"; + field public static final String MISSED_REASON = "missed_reason"; + field public static final long MISSED_REASON_NOT_MISSED = 0L; // 0x0L field public static final int MISSED_TYPE = 3; // 0x3 field public static final String NEW = "new"; field public static final String NUMBER = "number"; @@ -37269,6 +37274,13 @@ package android.provider { field public static final int REJECTED_TYPE = 5; // 0x5 field public static final String TRANSCRIPTION = "transcription"; field public static final String TYPE = "type"; + field public static final long USER_MISSED_CALL_FILTERS_TIMEOUT = 4194304L; // 0x400000L + field public static final long USER_MISSED_CALL_SCREENING_SERVICE_SILENCED = 2097152L; // 0x200000L + field public static final long USER_MISSED_DND_MODE = 262144L; // 0x40000L + field public static final long USER_MISSED_LOW_RING_VOLUME = 524288L; // 0x80000L + field public static final long USER_MISSED_NO_ANSWER = 65536L; // 0x10000L + field public static final long USER_MISSED_NO_VIBRATE = 1048576L; // 0x100000L + field public static final long USER_MISSED_SHORT_RING = 131072L; // 0x20000L field public static final String VIA_NUMBER = "via_number"; field public static final int VOICEMAIL_TYPE = 4; // 0x4 field public static final String VOICEMAIL_URI = "voicemail_uri"; @@ -41036,6 +41048,11 @@ package android.security.keystore { field public static final int PURPOSE_SIGN = 4; // 0x4 field public static final int PURPOSE_VERIFY = 8; // 0x8 field public static final int PURPOSE_WRAP_KEY = 32; // 0x20 + field public static final int SECURITY_LEVEL_SOFTWARE = 0; // 0x0 + field public static final int SECURITY_LEVEL_STRONGBOX = 2; // 0x2 + field public static final int SECURITY_LEVEL_TRUSTED_ENVIRONMENT = 1; // 0x1 + field public static final int SECURITY_LEVEL_UNKNOWN = -2; // 0xfffffffe + field public static final int SECURITY_LEVEL_UNKNOWN_SECURE = -1; // 0xffffffff field public static final String SIGNATURE_PADDING_RSA_PKCS1 = "PKCS1"; field public static final String SIGNATURE_PADDING_RSA_PSS = "PSS"; } diff --git a/core/api/system-current.txt b/core/api/system-current.txt index 7db113db8e7e..dc9789f2483a 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -369,6 +369,7 @@ package android.app { field public static final String OPSTR_ACCEPT_HANDOVER = "android:accept_handover"; field public static final String OPSTR_ACCESS_ACCESSIBILITY = "android:access_accessibility"; field public static final String OPSTR_ACCESS_NOTIFICATIONS = "android:access_notifications"; + field public static final String OPSTR_ACTIVATE_PLATFORM_VPN = "android:activate_platform_vpn"; field public static final String OPSTR_ACTIVATE_VPN = "android:activate_vpn"; field public static final String OPSTR_ASSIST_SCREENSHOT = "android:assist_screenshot"; field public static final String OPSTR_ASSIST_STRUCTURE = "android:assist_structure"; @@ -10137,6 +10138,7 @@ package android.telephony { method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isIdle(); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isLteCdmaEvdoGsmWcdmaEnabled(); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isMobileDataPolicyEnabled(int); + method public boolean isNrDualConnectivityEnabled(); method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isOffhook(); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isOpportunisticNetworkEnabled(); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isPotentialEmergencyNumber(@NonNull String); @@ -10169,6 +10171,7 @@ package android.telephony { method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDataRoamingEnabled(boolean); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setMobileDataPolicyEnabledStatus(int, boolean); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setMultiSimCarrierRestriction(boolean); + method public int setNrDualConnectivityState(int); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setOpportunisticNetworkState(boolean); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setPreferredNetworkTypeBitmask(long); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setRadio(boolean); @@ -10208,6 +10211,11 @@ package android.telephony { field public static final int CARRIER_PRIVILEGE_STATUS_HAS_ACCESS = 1; // 0x1 field public static final int CARRIER_PRIVILEGE_STATUS_NO_ACCESS = 0; // 0x0 field public static final int CARRIER_PRIVILEGE_STATUS_RULES_NOT_LOADED = -1; // 0xffffffff + field public static final int ENABLE_NR_DUAL_CONNECTIVITY_INVALID_STATE = 4; // 0x4 + field public static final int ENABLE_NR_DUAL_CONNECTIVITY_NOT_SUPPORTED = 1; // 0x1 + field public static final int ENABLE_NR_DUAL_CONNECTIVITY_RADIO_ERROR = 3; // 0x3 + field public static final int ENABLE_NR_DUAL_CONNECTIVITY_RADIO_NOT_AVAILABLE = 2; // 0x2 + field public static final int ENABLE_NR_DUAL_CONNECTIVITY_SUCCESS = 0; // 0x0 field public static final String EXTRA_ANOMALY_DESCRIPTION = "android.telephony.extra.ANOMALY_DESCRIPTION"; field public static final String EXTRA_ANOMALY_ID = "android.telephony.extra.ANOMALY_ID"; field public static final String EXTRA_PHONE_IN_ECM_STATE = "android.telephony.extra.PHONE_IN_ECM_STATE"; @@ -10240,6 +10248,9 @@ package android.telephony { field public static final long NETWORK_TYPE_BITMASK_TD_SCDMA = 65536L; // 0x10000L field public static final long NETWORK_TYPE_BITMASK_UMTS = 4L; // 0x4L field public static final long NETWORK_TYPE_BITMASK_UNKNOWN = 0L; // 0x0L + field public static final int NR_DUAL_CONNECTIVITY_DISABLE = 2; // 0x2 + field public static final int NR_DUAL_CONNECTIVITY_DISABLE_IMMEDIATE = 3; // 0x3 + field public static final int NR_DUAL_CONNECTIVITY_ENABLE = 1; // 0x1 field public static final int RADIO_POWER_OFF = 0; // 0x0 field public static final int RADIO_POWER_ON = 1; // 0x1 field public static final int RADIO_POWER_UNAVAILABLE = 2; // 0x2 @@ -10617,6 +10628,17 @@ package android.telephony.euicc { package android.telephony.ims { + public final class AudioCodecAttributes implements android.os.Parcelable { + ctor public AudioCodecAttributes(float, @NonNull android.util.Range<java.lang.Float>, float, @NonNull android.util.Range<java.lang.Float>); + method public int describeContents(); + method public float getBandwidthKhz(); + method @NonNull public android.util.Range<java.lang.Float> getBandwidthRangeKhz(); + method public float getBitrateKbps(); + method @NonNull public android.util.Range<java.lang.Float> getBitrateRangeKbps(); + method public void writeToParcel(@NonNull android.os.Parcel, int); + field @NonNull public static final android.os.Parcelable.Creator<android.telephony.ims.AudioCodecAttributes> CREATOR; + } + public final class ImsCallForwardInfo implements android.os.Parcelable { ctor public ImsCallForwardInfo(int, int, int, int, @NonNull String, int); method public int describeContents(); @@ -10646,6 +10668,7 @@ package android.telephony.ims { ctor public ImsCallProfile(int, int); ctor public ImsCallProfile(int, int, android.os.Bundle, android.telephony.ims.ImsStreamMediaProfile); method public int describeContents(); + method @NonNull public java.util.Set<android.telephony.ims.RtpHeaderExtensionType> getAcceptedRtpHeaderExtensionTypes(); method public String getCallExtra(String); method public String getCallExtra(String, String); method public boolean getCallExtraBoolean(String); @@ -10660,6 +10683,7 @@ package android.telephony.ims { method public int getEmergencyServiceCategories(); method @NonNull public java.util.List<java.lang.String> getEmergencyUrns(); method public android.telephony.ims.ImsStreamMediaProfile getMediaProfile(); + method @NonNull public java.util.Set<android.telephony.ims.RtpHeaderExtensionType> getOfferedRtpHeaderExtensionTypes(); method @NonNull public android.os.Bundle getProprietaryCallExtras(); method public int getRestrictCause(); method public int getServiceType(); @@ -10670,6 +10694,7 @@ package android.telephony.ims { method public boolean isVideoCall(); method public boolean isVideoPaused(); method public static int presentationToOir(int); + method public void setAcceptedRtpHeaderExtensionTypes(@NonNull java.util.Set<android.telephony.ims.RtpHeaderExtensionType>); method public void setCallExtra(String, String); method public void setCallExtraBoolean(String, boolean); method public void setCallExtraInt(String, int); @@ -10680,6 +10705,7 @@ package android.telephony.ims { method public void setEmergencyServiceCategories(int); method public void setEmergencyUrns(@NonNull java.util.List<java.lang.String>); method public void setHasKnownUserIntentEmergency(boolean); + method public void setOfferedRtpHeaderExtensionTypes(@NonNull java.util.Set<android.telephony.ims.RtpHeaderExtensionType>); method public void updateCallExtras(android.telephony.ims.ImsCallProfile); method public void updateCallType(android.telephony.ims.ImsCallProfile); method public void updateMediaProfile(android.telephony.ims.ImsCallProfile); @@ -10739,6 +10765,7 @@ package android.telephony.ims { method public void callSessionConferenceExtendReceived(android.telephony.ims.stub.ImsCallSessionImplBase, android.telephony.ims.ImsCallProfile); method public void callSessionConferenceExtended(android.telephony.ims.stub.ImsCallSessionImplBase, android.telephony.ims.ImsCallProfile); method public void callSessionConferenceStateUpdated(android.telephony.ims.ImsConferenceState); + method public void callSessionDtmfReceived(char); method @Deprecated public void callSessionHandover(int, int, android.telephony.ims.ImsReasonInfo); method @Deprecated public void callSessionHandoverFailed(int, int, android.telephony.ims.ImsReasonInfo); method public void callSessionHeld(android.telephony.ims.ImsCallProfile); @@ -10759,6 +10786,7 @@ package android.telephony.ims { method public void callSessionResumeFailed(android.telephony.ims.ImsReasonInfo); method public void callSessionResumeReceived(android.telephony.ims.ImsCallProfile); method public void callSessionResumed(android.telephony.ims.ImsCallProfile); + method public void callSessionRtpHeaderExtensionsReceived(@NonNull java.util.Set<android.telephony.ims.RtpHeaderExtension>); method public void callSessionRttAudioIndicatorChanged(@NonNull android.telephony.ims.ImsStreamMediaProfile); method public void callSessionRttMessageReceived(String); method public void callSessionRttModifyRequestReceived(android.telephony.ims.ImsCallProfile); @@ -10985,6 +11013,7 @@ package android.telephony.ims { ctor public ImsStreamMediaProfile(int, int, int, int, int); method public void copyFrom(android.telephony.ims.ImsStreamMediaProfile); method public int describeContents(); + method @Nullable public android.telephony.ims.AudioCodecAttributes getAudioCodecAttributes(); method public int getAudioDirection(); method public int getAudioQuality(); method public int getRttMode(); @@ -10992,6 +11021,7 @@ package android.telephony.ims { method public int getVideoQuality(); method public boolean isReceivingRttAudio(); method public boolean isRttCall(); + method public void setAudioCodecAttributes(@NonNull android.telephony.ims.AudioCodecAttributes); method public void setReceivingRttAudio(boolean); method public void setRttMode(int); method public void writeToParcel(android.os.Parcel, int); @@ -11113,6 +11143,24 @@ package android.telephony.ims { method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setUceSettingEnabled(boolean) throws android.telephony.ims.ImsException; } + public final class RtpHeaderExtension implements android.os.Parcelable { + ctor public RtpHeaderExtension(@IntRange(from=1, to=14) int, @NonNull byte[]); + method public int describeContents(); + method @NonNull public byte[] getExtensionData(); + method @IntRange(from=1, to=14) public int getLocalIdentifier(); + method public void writeToParcel(@NonNull android.os.Parcel, int); + field @NonNull public static final android.os.Parcelable.Creator<android.telephony.ims.RtpHeaderExtension> CREATOR; + } + + public final class RtpHeaderExtensionType implements android.os.Parcelable { + ctor public RtpHeaderExtensionType(@IntRange(from=1, to=14) int, @NonNull android.net.Uri); + method public int describeContents(); + method @IntRange(from=1, to=14) public int getLocalIdentifier(); + method @NonNull public android.net.Uri getUri(); + method public void writeToParcel(@NonNull android.os.Parcel, int); + field @NonNull public static final android.os.Parcelable.Creator<android.telephony.ims.RtpHeaderExtensionType> CREATOR; + } + public class SipDelegateManager { method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isSupported() throws android.telephony.ims.ImsException; } @@ -11229,6 +11277,7 @@ package android.telephony.ims.stub { method public void removeParticipants(String[]); method public void resume(android.telephony.ims.ImsStreamMediaProfile); method public void sendDtmf(char, android.os.Message); + method public void sendRtpHeaderExtensions(@NonNull java.util.Set<android.telephony.ims.RtpHeaderExtension>); method public void sendRttMessage(String); method public void sendRttModifyRequest(android.telephony.ims.ImsCallProfile); method public void sendRttModifyResponse(boolean); diff --git a/api/test-current.txt b/core/api/test-current.txt index 9c517296d35c..9c517296d35c 100644 --- a/api/test-current.txt +++ b/core/api/test-current.txt diff --git a/api/test-lint-baseline.txt b/core/api/test-lint-baseline.txt index f5ab40abdf37..f5ab40abdf37 100644 --- a/api/test-lint-baseline.txt +++ b/core/api/test-lint-baseline.txt diff --git a/api/test-removed.txt b/core/api/test-removed.txt index d802177e249b..d802177e249b 100644 --- a/api/test-removed.txt +++ b/core/api/test-removed.txt diff --git a/core/java/android/accessibilityservice/AccessibilityServiceInfo.java b/core/java/android/accessibilityservice/AccessibilityServiceInfo.java index ca22bf4a62dc..38d378169ec9 100644 --- a/core/java/android/accessibilityservice/AccessibilityServiceInfo.java +++ b/core/java/android/accessibilityservice/AccessibilityServiceInfo.java @@ -861,7 +861,7 @@ public class AccessibilityServiceInfo implements Parcelable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setCapabilities(int capabilities) { mCapabilities = capabilities; } diff --git a/core/java/android/accounts/Account.java b/core/java/android/accounts/Account.java index 9a18880a353b..ac372a033ab3 100644 --- a/core/java/android/accounts/Account.java +++ b/core/java/android/accounts/Account.java @@ -20,6 +20,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.os.RemoteException; @@ -38,7 +39,7 @@ import java.util.Set; * suitable for use as the key of a {@link java.util.Map} */ public class Account implements Parcelable { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final String TAG = "Account"; @GuardedBy("sAccessedAccounts") @@ -47,7 +48,7 @@ public class Account implements Parcelable { public final String name; public final String type; private String mSafeName; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final @Nullable String accessId; public boolean equals(Object o) { diff --git a/core/java/android/accounts/AccountManager.java b/core/java/android/accounts/AccountManager.java index f2702a864c2f..8bbef5d38b6a 100644 --- a/core/java/android/accounts/AccountManager.java +++ b/core/java/android/accounts/AccountManager.java @@ -418,7 +418,7 @@ public class AccountManager { /** * @hide used for testing only */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public AccountManager(Context context, IAccountManager service, Handler handler) { mContext = context; mService = service; @@ -712,7 +712,7 @@ public class AccountManager { /** @hide Same as {@link #getAccountsByType(String)} but for a specific user. */ @NonNull - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Account[] getAccountsByTypeAsUser(String type, UserHandle userHandle) { try { return mService.getAccountsAsUser(type, userHandle.getIdentifier(), @@ -2003,7 +2003,7 @@ public class AccountManager { * Same as {@link #confirmCredentials(Account, Bundle, Activity, AccountManagerCallback, Handler)} * but for the specified user. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public AccountManagerFuture<Bundle> confirmCredentialsAsUser(final Account account, final Bundle options, final Activity activity, diff --git a/core/java/android/animation/Animator.java b/core/java/android/animation/Animator.java index 3cdd691fd5dd..eb525d301986 100644 --- a/core/java/android/animation/Animator.java +++ b/core/java/android/animation/Animator.java @@ -20,6 +20,7 @@ import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; import android.content.pm.ActivityInfo.Config; import android.content.res.ConstantState; +import android.os.Build; import java.util.ArrayList; @@ -461,7 +462,7 @@ public abstract class Animator implements Cloneable { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void reverse() { throw new IllegalStateException("Reverse is not supported"); } diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java index 8ddca15a9959..bd09eacfebd1 100644 --- a/core/java/android/app/Activity.java +++ b/core/java/android/app/Activity.java @@ -756,7 +756,7 @@ public class Activity extends ContextThemeWrapper */ public static final int FINISH_TASK_WITH_ACTIVITY = 2; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) static final String FRAGMENTS_TAG = "android:fragments"; private static final String LAST_AUTOFILL_ID = "android:lastAutofillId"; @@ -2939,7 +2939,7 @@ public class Activity extends ContextThemeWrapper * @see View#onMovedToDisplay(int, Configuration) * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @TestApi public void onMovedToDisplay(int displayId, Configuration config) { } @@ -3209,7 +3209,7 @@ public class Activity extends ContextThemeWrapper * @deprecated Use {@link CursorLoader} instead. */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final Cursor managedQuery(Uri uri, String[] projection, String selection, String sortOrder) { Cursor c = getContentResolver().query(uri, projection, selection, null, sortOrder); @@ -6026,7 +6026,7 @@ public class Activity extends ContextThemeWrapper * @hide */ @Override - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void startActivityForResult( String who, Intent intent, int requestCode, @Nullable Bundle options) { Uri referrer = onProvideReferrer(); @@ -6358,7 +6358,7 @@ public class Activity extends ContextThemeWrapper * Finishes the current activity and specifies whether to remove the task associated with this * activity. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private void finish(int finishTask) { if (mParent == null) { int resultCode; @@ -7888,7 +7888,7 @@ public class Activity extends ContextThemeWrapper mParent = parent; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) final void attach(Context context, ActivityThread aThread, Instrumentation instr, IBinder token, int ident, Application application, Intent intent, ActivityInfo info, @@ -7984,7 +7984,7 @@ public class Activity extends ContextThemeWrapper performCreate(icicle, null); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) final void performCreate(Bundle icicle, PersistableBundle persistentState) { dispatchActivityPreCreated(icicle); mCanEnterPictureInPicture = true; @@ -8299,7 +8299,7 @@ public class Activity extends ContextThemeWrapper } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) void dispatchActivityResult(String who, int requestCode, int resultCode, Intent data, String reason) { if (false) Log.v( diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java index 795ebc7c02db..f3dfe09d256f 100644 --- a/core/java/android/app/ActivityManager.java +++ b/core/java/android/app/ActivityManager.java @@ -507,18 +507,18 @@ public class ActivityManager { public static final int PROCESS_STATE_BOUND_TOP = 3; /** @hide Process is hosting a foreground service. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int PROCESS_STATE_FOREGROUND_SERVICE = 4; /** @hide Process is hosting a foreground service due to a system binding. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int PROCESS_STATE_BOUND_FOREGROUND_SERVICE = 5; /** @hide Process is important to the user, and something they are aware of. */ public static final int PROCESS_STATE_IMPORTANT_FOREGROUND = 6; /** @hide Process is important to the user, but not something they are aware of. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int PROCESS_STATE_IMPORTANT_BACKGROUND = 7; /** @hide Process is in the background transient so we will try to keep running. */ @@ -530,14 +530,14 @@ public class ActivityManager { /** @hide Process is in the background running a service. Unlike oom_adj, this level * is used for both the normal running in background state and the executing * operations state. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int PROCESS_STATE_SERVICE = 10; /** @hide Process is in the background running a receiver. Note that from the * perspective of oom_adj, receivers run at a higher foreground level, but for our * prioritization here that is not necessary and putting them below services means * many fewer changes in some process states as they receive broadcasts. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int PROCESS_STATE_RECEIVER = 11; /** @hide Same as {@link #PROCESS_STATE_TOP} but while device is sleeping. */ @@ -548,14 +548,14 @@ public class ActivityManager { public static final int PROCESS_STATE_HEAVY_WEIGHT = 13; /** @hide Process is in the background but hosts the home activity. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int PROCESS_STATE_HOME = 14; /** @hide Process is in the background but hosts the last shown activity. */ public static final int PROCESS_STATE_LAST_ACTIVITY = 15; /** @hide Process is being cached for later use and contains activities. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int PROCESS_STATE_CACHED_ACTIVITY = 16; /** @hide Process is being cached for later use and is a client of another cached @@ -2193,7 +2193,7 @@ public class ActivityManager { /** * @return The size of the task at the point this snapshot was taken. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Point getTaskSize() { return mTaskSize; } @@ -2735,13 +2735,13 @@ public class ActivityManager { public boolean lowMemory; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public long hiddenAppThreshold; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public long secondaryServerThreshold; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public long visibleAppThreshold; /** @hide */ @UnsupportedAppUsage @@ -3186,7 +3186,7 @@ public class ActivityManager { * persistent system app. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int FLAG_PERSISTENT = 1<<1; /** @@ -3194,7 +3194,7 @@ public class ActivityManager { * persistent system app. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int FLAG_HAS_ACTIVITIES = 1<<2; /** @@ -3298,7 +3298,7 @@ public class ActivityManager { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @TestApi public static final int IMPORTANCE_CANT_SAVE_STATE_PRE_26 = 170; @@ -3358,7 +3358,7 @@ public class ActivityManager { * will be passed to a client, use {@link #procStateToImportanceForClient}. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static @Importance int procStateToImportance(int procState) { if (procState == PROCESS_STATE_NONEXISTENT) { return IMPORTANCE_GONE; @@ -4317,7 +4317,7 @@ public class ActivityManager { * @param userid the user's id. Zero indicates the default user. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean switchUser(int userid) { try { return getService().switchUser(userid); diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index 7afe8b79f021..5428730c168e 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -184,6 +184,7 @@ import com.android.org.conscrypt.OpenSSLSocketImpl; import com.android.org.conscrypt.TrustedCertificateStore; import com.android.server.am.MemInfoDumpProto; +import dalvik.system.AppSpecializationHooks; import dalvik.system.CloseGuard; import dalvik.system.VMDebug; import dalvik.system.VMRuntime; @@ -345,7 +346,7 @@ public final class ActivityThread extends ClientTransactionHandler { @UnsupportedAppUsage AppBindData mBoundApplication; Profiler mProfiler; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) int mCurDefaultDisplayDpi; @UnsupportedAppUsage boolean mDensityCompatMode; @@ -812,7 +813,7 @@ public final class ActivityThread extends ClientTransactionHandler { boolean trackAllocation; @UnsupportedAppUsage boolean restrictedBackupMode; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) boolean persistent; Configuration config; @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) @@ -2283,7 +2284,7 @@ public final class ActivityThread extends ClientTransactionHandler { return null; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final LoadedApk getPackageInfo(ApplicationInfo ai, CompatibilityInfo compatInfo, int flags) { boolean includeCode = (flags&Context.CONTEXT_INCLUDE_CODE) != 0; @@ -3031,7 +3032,7 @@ public final class ActivityThread extends ClientTransactionHandler { proto.end(asToken); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void registerOnActivityPausedListener(Activity activity, OnActivityPausedListener listener) { synchronized (mOnPauseListeners) { @@ -3044,7 +3045,7 @@ public final class ActivityThread extends ClientTransactionHandler { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void unregisterOnActivityPausedListener(Activity activity, OnActivityPausedListener listener) { synchronized (mOnPauseListeners) { @@ -6384,6 +6385,9 @@ public final class ActivityThread extends ClientTransactionHandler { Process.setStartTimes(SystemClock.elapsedRealtime(), SystemClock.uptimeMillis()); AppCompatCallbacks.install(data.disabledCompatChanges); + // Let libcore handle any compat changes after installing the list of compat changes. + AppSpecializationHooks.handleCompatChangesBeforeBindingApplication(); + mBoundApplication = data; mConfiguration = new Configuration(data.config); mCompatConfiguration = new Configuration(data.config); diff --git a/core/java/android/app/AppOpsManager.java b/core/java/android/app/AppOpsManager.java index 0d5bb115db91..e0eea705bac8 100644 --- a/core/java/android/app/AppOpsManager.java +++ b/core/java/android/app/AppOpsManager.java @@ -778,7 +778,7 @@ public class AppOpsManager { // - add the op to the appropriate template in AppOpsState.OpsTemplate (settings app) /** @hide No operation specified. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int OP_NONE = AppProtoEnums.APP_OP_NONE; /** @hide Access to coarse location information. */ @UnsupportedAppUsage @@ -1133,7 +1133,7 @@ public class AppOpsManager { public static final int OP_RESERVED_102 = 102; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int _NUM_OP = 103; /** Access to coarse location information. */ @@ -1439,6 +1439,7 @@ public class AppOpsManager { @SystemApi public static final String OPSTR_INTERACT_ACROSS_PROFILES = "android:interact_across_profiles"; /** @hide Start Platform VPN without user intervention */ + @SystemApi public static final String OPSTR_ACTIVATE_PLATFORM_VPN = "android:activate_platform_vpn"; /** @hide */ @SystemApi @@ -2548,7 +2549,7 @@ public class AppOpsManager { * Retrieve a non-localized name for the operation, for debugging output. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static String opToName(int op) { if (op == OP_NONE) return "NONE"; return op < sOpNames.length ? sOpNames[op] : ("Unknown(" + op + ")"); @@ -2579,7 +2580,7 @@ public class AppOpsManager { * Retrieve the permission associated with an operation, or null if there is not one. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @TestApi public static String opToPermission(int op) { return sOpPerms[op]; @@ -6792,7 +6793,7 @@ public class AppOpsManager { /** @hide */ @RequiresPermission(android.Manifest.permission.MANAGE_APP_OPS_MODES) - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void resetAllModes() { try { mService.resetAllModes(mContext.getUserId(), null); diff --git a/core/java/android/app/Application.java b/core/java/android/app/Application.java index 941467fad736..146d648fe65a 100644 --- a/core/java/android/app/Application.java +++ b/core/java/android/app/Application.java @@ -26,6 +26,7 @@ import android.content.Context; import android.content.ContextWrapper; import android.content.Intent; import android.content.res.Configuration; +import android.os.Build; import android.os.Bundle; import android.util.Log; import android.view.autofill.AutofillManager; @@ -352,7 +353,7 @@ public class Application extends ContextWrapper implements ComponentCallbacks2 { mLoadedApk = ContextImpl.getImpl(context).mPackageInfo; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) /* package */ void dispatchActivityPreCreated(@NonNull Activity activity, @Nullable Bundle savedInstanceState) { Object[] callbacks = collectActivityLifecycleCallbacks(); @@ -376,7 +377,7 @@ public class Application extends ContextWrapper implements ComponentCallbacks2 { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) /* package */ void dispatchActivityPostCreated(@NonNull Activity activity, @Nullable Bundle savedInstanceState) { Object[] callbacks = collectActivityLifecycleCallbacks(); @@ -388,7 +389,7 @@ public class Application extends ContextWrapper implements ComponentCallbacks2 { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) /* package */ void dispatchActivityPreStarted(@NonNull Activity activity) { Object[] callbacks = collectActivityLifecycleCallbacks(); if (callbacks != null) { @@ -408,7 +409,7 @@ public class Application extends ContextWrapper implements ComponentCallbacks2 { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) /* package */ void dispatchActivityPostStarted(@NonNull Activity activity) { Object[] callbacks = collectActivityLifecycleCallbacks(); if (callbacks != null) { @@ -418,7 +419,7 @@ public class Application extends ContextWrapper implements ComponentCallbacks2 { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) /* package */ void dispatchActivityPreResumed(@NonNull Activity activity) { Object[] callbacks = collectActivityLifecycleCallbacks(); if (callbacks != null) { @@ -438,7 +439,7 @@ public class Application extends ContextWrapper implements ComponentCallbacks2 { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) /* package */ void dispatchActivityPostResumed(@NonNull Activity activity) { Object[] callbacks = collectActivityLifecycleCallbacks(); if (callbacks != null) { @@ -448,7 +449,7 @@ public class Application extends ContextWrapper implements ComponentCallbacks2 { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) /* package */ void dispatchActivityPrePaused(@NonNull Activity activity) { Object[] callbacks = collectActivityLifecycleCallbacks(); if (callbacks != null) { @@ -468,7 +469,7 @@ public class Application extends ContextWrapper implements ComponentCallbacks2 { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) /* package */ void dispatchActivityPostPaused(@NonNull Activity activity) { Object[] callbacks = collectActivityLifecycleCallbacks(); if (callbacks != null) { @@ -478,7 +479,7 @@ public class Application extends ContextWrapper implements ComponentCallbacks2 { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) /* package */ void dispatchActivityPreStopped(@NonNull Activity activity) { Object[] callbacks = collectActivityLifecycleCallbacks(); if (callbacks != null) { @@ -498,7 +499,7 @@ public class Application extends ContextWrapper implements ComponentCallbacks2 { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) /* package */ void dispatchActivityPostStopped(@NonNull Activity activity) { Object[] callbacks = collectActivityLifecycleCallbacks(); if (callbacks != null) { @@ -508,7 +509,7 @@ public class Application extends ContextWrapper implements ComponentCallbacks2 { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) /* package */ void dispatchActivityPreSaveInstanceState(@NonNull Activity activity, @NonNull Bundle outState) { Object[] callbacks = collectActivityLifecycleCallbacks(); @@ -532,7 +533,7 @@ public class Application extends ContextWrapper implements ComponentCallbacks2 { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) /* package */ void dispatchActivityPostSaveInstanceState(@NonNull Activity activity, @NonNull Bundle outState) { Object[] callbacks = collectActivityLifecycleCallbacks(); @@ -544,7 +545,7 @@ public class Application extends ContextWrapper implements ComponentCallbacks2 { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) /* package */ void dispatchActivityPreDestroyed(@NonNull Activity activity) { Object[] callbacks = collectActivityLifecycleCallbacks(); if (callbacks != null) { @@ -564,7 +565,7 @@ public class Application extends ContextWrapper implements ComponentCallbacks2 { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) /* package */ void dispatchActivityPostDestroyed(@NonNull Activity activity) { Object[] callbacks = collectActivityLifecycleCallbacks(); if (callbacks != null) { diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java index c9031b711657..425073c92045 100644 --- a/core/java/android/app/ApplicationPackageManager.java +++ b/core/java/android/app/ApplicationPackageManager.java @@ -1158,7 +1158,7 @@ public class ApplicationPackageManager extends PackageManager { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @Override public boolean setInstantAppCookie(@NonNull byte[] cookie) { try { @@ -2276,7 +2276,7 @@ public class ApplicationPackageManager extends PackageManager { } @Override - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public @Nullable VolumeInfo getPackageCurrentVolume(ApplicationInfo app) { final StorageManager storage = mContext.getSystemService(StorageManager.class); return getPackageCurrentVolume(app, storage); diff --git a/core/java/android/app/ContextImpl.java b/core/java/android/app/ContextImpl.java index 505b498e3cf6..4f065fd166bb 100644 --- a/core/java/android/app/ContextImpl.java +++ b/core/java/android/app/ContextImpl.java @@ -2661,7 +2661,7 @@ class ContextImpl extends Context { return context; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) static ContextImpl createActivityContext(ActivityThread mainThread, LoadedApk packageInfo, ActivityInfo activityInfo, IBinder activityToken, int displayId, Configuration overrideConfiguration) { diff --git a/core/java/android/app/DialogFragment.java b/core/java/android/app/DialogFragment.java index e4c84d7e7997..9fea3f75c2c2 100644 --- a/core/java/android/app/DialogFragment.java +++ b/core/java/android/app/DialogFragment.java @@ -19,6 +19,7 @@ package android.app; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.content.DialogInterface; +import android.os.Build; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; @@ -183,11 +184,11 @@ public class DialogFragment extends Fragment int mTheme = 0; boolean mCancelable = true; boolean mShowsDialog = true; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) int mBackStackId = -1; Dialog mDialog; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) boolean mViewDestroyed; @UnsupportedAppUsage boolean mDismissed; diff --git a/core/java/android/app/DownloadManager.java b/core/java/android/app/DownloadManager.java index 0719422632d1..355092378279 100644 --- a/core/java/android/app/DownloadManager.java +++ b/core/java/android/app/DownloadManager.java @@ -351,7 +351,7 @@ public class DownloadManager { * columns to request from DownloadProvider. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String[] UNDERLYING_COLUMNS = new String[] { DownloadManager.COLUMN_ID, DownloadManager.COLUMN_LOCAL_FILENAME, @@ -1646,7 +1646,7 @@ public class DownloadManager { /** * Get a parameterized SQL WHERE clause to select a bunch of IDs. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) static String getWhereClauseForIds(long[] ids) { StringBuilder whereClause = new StringBuilder(); whereClause.append("("); @@ -1664,7 +1664,7 @@ public class DownloadManager { /** * Get the selection args for a clause returned by {@link #getWhereClauseForIds(long[])}. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) static String[] getWhereArgsForIds(long[] ids) { String[] whereArgs = new String[ids.length]; return getWhereArgsForIds(ids, whereArgs); diff --git a/core/java/android/app/Fragment.java b/core/java/android/app/Fragment.java index f7fb3c34ce1b..aec8f29df9ec 100644 --- a/core/java/android/app/Fragment.java +++ b/core/java/android/app/Fragment.java @@ -306,7 +306,7 @@ public class Fragment implements ComponentCallbacks2, OnCreateContextMenuListene int mTargetRequestCode; // True if the fragment is in the list of added fragments. - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) boolean mAdded; // If set this fragment is being removed from its activity. diff --git a/core/java/android/app/FragmentController.java b/core/java/android/app/FragmentController.java index f021f7690283..150b7a56a36d 100644 --- a/core/java/android/app/FragmentController.java +++ b/core/java/android/app/FragmentController.java @@ -20,6 +20,7 @@ import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.content.res.Configuration; +import android.os.Build; import android.os.Bundle; import android.os.Parcelable; import android.util.ArrayMap; @@ -44,7 +45,7 @@ import java.util.List; */ @Deprecated public class FragmentController { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final FragmentHostCallback<?> mHost; /** diff --git a/core/java/android/app/FragmentManager.java b/core/java/android/app/FragmentManager.java index 904c4735e0ff..5435558b3be5 100644 --- a/core/java/android/app/FragmentManager.java +++ b/core/java/android/app/FragmentManager.java @@ -1101,7 +1101,7 @@ final class FragmentManagerImpl extends FragmentManager implements LayoutInflate } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) Animator loadAnimator(Fragment fragment, int transit, boolean enter, int transitionStyle) { Animator animObj = fragment.onCreateAnimator(transit, enter, fragment.getNextAnim()); diff --git a/core/java/android/app/IActivityManager.aidl b/core/java/android/app/IActivityManager.aidl index 945957738f8e..75d8a19f8182 100644 --- a/core/java/android/app/IActivityManager.aidl +++ b/core/java/android/app/IActivityManager.aidl @@ -113,7 +113,7 @@ interface IActivityManager { in String callingFeatureId, in Intent intent, in String resolvedType, in IBinder resultTo, in String resultWho, int requestCode, int flags, in ProfilerInfo profilerInfo, in Bundle options); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void unhandledBack(); @UnsupportedAppUsage boolean finishActivity(in IBinder token, int code, in Intent data, int finishTask); @@ -172,12 +172,12 @@ interface IActivityManager { @UnsupportedAppUsage boolean unbindService(in IServiceConnection connection); void publishService(in IBinder token, in Intent intent, in IBinder service); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void setDebugApp(in String packageName, boolean waitForDebugger, boolean persistent); void setAgentApp(in String packageName, @nullable String agent); @UnsupportedAppUsage void setAlwaysFinish(boolean enabled); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) boolean startInstrumentation(in ComponentName className, in String profileFile, int flags, in Bundle arguments, in IInstrumentationWatcher watcher, in IUiAutomationConnection connection, int userId, @@ -199,7 +199,7 @@ interface IActivityManager { * @throws RemoteException * @return Returns true if the configuration was updated. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) boolean updateConfiguration(in Configuration values); /** * Updates mcc mnc configuration and applies changes to the entire system. @@ -224,7 +224,7 @@ interface IActivityManager { int mode, int userId); void revokeUriPermission(in IApplicationThread caller, in String targetPkg, in Uri uri, int mode, int userId); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void setActivityController(in IActivityController watcher, boolean imAMonkey); void showWaitingForDebugger(in IApplicationThread who, boolean waiting); /* @@ -278,7 +278,7 @@ interface IActivityManager { List<ActivityManager.RunningAppProcessInfo> getRunningAppProcesses(); IBinder peekService(in Intent service, in String resolvedType, in String callingPackage); // Turn on/off profiling in a particular process. - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) boolean profileControl(in String process, int userId, boolean start, in ProfilerInfo profilerInfo, int profileType); @UnsupportedAppUsage @@ -309,7 +309,7 @@ interface IActivityManager { // Retrieve info of applications installed on external media that are currently // running. List<ApplicationInfo> getRunningExternalApplications(); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void finishHeavyWeightApp(); // A StrictMode violation to be handled. @UnsupportedAppUsage @@ -331,7 +331,7 @@ interface IActivityManager { in RemoteCallback finishCallback); @UnsupportedAppUsage boolean isUserRunning(int userid, int flags); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void setPackageScreenCompatMode(in String packageName, int mode); @UnsupportedAppUsage boolean switchUser(int userid); @@ -347,12 +347,12 @@ interface IActivityManager { @UnsupportedAppUsage long[] getProcessPss(in int[] pids); void showBootMessage(in CharSequence msg, boolean always); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void killAllBackgroundProcesses(); ContentProviderHolder getContentProviderExternal(in String name, int userId, in IBinder token, String tag); /** @deprecated - Use {@link #removeContentProviderExternalAsUser} which takes a user ID. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void removeContentProviderExternal(in String name, in IBinder token); void removeContentProviderExternalAsUser(in String name, in IBinder token, int userId); // Get memory information about the calling process. @@ -380,7 +380,7 @@ interface IActivityManager { in String callingFeatureId, in Intent intent, in String resolvedType, in IBinder resultTo, in String resultWho, int requestCode, int flags, in ProfilerInfo profilerInfo, in Bundle options, int userId); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) int stopUser(int userid, boolean force, in IStopUserCallback callback); /** * Check {@link com.android.server.am.ActivityManagerService#stopUserWithDelayedLocking(int, boolean, IStopUserCallback)} @@ -441,7 +441,7 @@ interface IActivityManager { String getLaunchedFromPackage(in IBinder activityToken); void killUid(int appId, int userId, in String reason); void setUserIsMonkey(boolean monkey); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void hang(in IBinder who, boolean allowRestart); @UnsupportedAppUsage @@ -450,13 +450,13 @@ interface IActivityManager { void moveTaskToStack(int taskId, int stackId, boolean toTop); void setFocusedStack(int stackId); ActivityManager.StackInfo getFocusedStackInfo(); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void restart(); void performIdleMaintenance(); void appNotRespondingViaProvider(in IBinder connection); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) Rect getTaskBounds(int taskId); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) boolean setProcessMemoryTrimLevel(in String process, int uid, int level); @@ -464,7 +464,7 @@ interface IActivityManager { String getTagForIntentSender(in IIntentSender sender, in String prefix); @UnsupportedAppUsage boolean startUserInBackground(int userid); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) boolean isInLockTaskMode(); @UnsupportedAppUsage void startRecentsActivity(in Intent intent, in IAssistDataReceiver assistDataReceiver, @@ -475,7 +475,7 @@ interface IActivityManager { int startActivityFromRecents(int taskId, in Bundle options); @UnsupportedAppUsage void startSystemLockTaskMode(int taskId); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) boolean isTopOfTask(in IBinder token); void bootAnimationComplete(); int checkPermissionWithToken(in String permission, int pid, int uid, @@ -486,11 +486,11 @@ interface IActivityManager { void notifyCleartextNetwork(int uid, in byte[] firstPacket); @UnsupportedAppUsage void setTaskResizeable(int taskId, int resizeableMode); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void resizeTask(int taskId, in Rect bounds, int resizeMode); @UnsupportedAppUsage int getLockTaskModeState(); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void setDumpHeapDebugLimit(in String processName, int uid, long maxMemSize, in String reportPackage); void dumpHeapFinished(in String path); @@ -503,11 +503,11 @@ interface IActivityManager { // Start of N transactions // Start Binder transaction tracking for all applications. - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) boolean startBinderTracking(); // Stop Binder transaction tracking for all applications and dump trace data to the given file // descriptor. - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) boolean stopBinderTrackingAndDump(in ParcelFileDescriptor fd); /** * Try to place task to provided position. The final position might be different depending on @@ -516,12 +516,12 @@ interface IActivityManager { */ @UnsupportedAppUsage void positionTaskInStack(int taskId, int stackId, int position); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void suppressResizeConfigChanges(boolean suppress); @UnsupportedAppUsage boolean moveTopActivityToPinnedStack(int stackId, in Rect bounds); boolean isAppStartModeDisabled(int uid, in String packageName); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) boolean unlockUser(int userid, in byte[] token, in byte[] secret, in IProgressListener listener); void killPackageDependents(in String packageName, int userId); @@ -532,7 +532,7 @@ interface IActivityManager { boolean isVrModePackageEnabled(in ComponentName packageName); void notifyLockedProfile(int userId); void startConfirmDeviceCredentialIntent(in Intent intent, in Bundle options); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void sendIdleJobTrigger(); int sendIntentSender(in IIntentSender target, in IBinder whitelistToken, int code, in Intent intent, in String resolvedType, in IIntentReceiver finishedReceiver, diff --git a/core/java/android/app/IAlarmManager.aidl b/core/java/android/app/IAlarmManager.aidl index 6f624ee672e6..2c51935dc446 100644 --- a/core/java/android/app/IAlarmManager.aidl +++ b/core/java/android/app/IAlarmManager.aidl @@ -29,16 +29,16 @@ import android.os.WorkSource; */ interface IAlarmManager { /** windowLength == 0 means exact; windowLength < 0 means the let the OS decide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void set(String callingPackage, int type, long triggerAtTime, long windowLength, long interval, int flags, in PendingIntent operation, in IAlarmListener listener, String listenerTag, in WorkSource workSource, in AlarmManager.AlarmClockInfo alarmClock); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) boolean setTime(long millis); void setTimeZone(String zone); void remove(in PendingIntent operation, in IAlarmListener listener); long getNextWakeFromIdleTime(); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) AlarmManager.AlarmClockInfo getNextAlarmClock(int userId); long currentNetworkTimeMillis(); } diff --git a/core/java/android/app/IAppTask.aidl b/core/java/android/app/IAppTask.aidl index f41d705e2ba7..d3046c590c4f 100644 --- a/core/java/android/app/IAppTask.aidl +++ b/core/java/android/app/IAppTask.aidl @@ -24,7 +24,7 @@ import android.os.Bundle; /** @hide */ interface IAppTask { void finishAndRemoveTask(); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) ActivityManager.RecentTaskInfo getTaskInfo(); void moveToFront(in IApplicationThread appThread, in String callingPackage); int startActivity(IBinder whoThread, String callingPackage, String callingFeatureId, diff --git a/core/java/android/app/IAssistDataReceiver.aidl b/core/java/android/app/IAssistDataReceiver.aidl index 0d69838e4329..d67fbff4548b 100644 --- a/core/java/android/app/IAssistDataReceiver.aidl +++ b/core/java/android/app/IAssistDataReceiver.aidl @@ -21,8 +21,8 @@ import android.os.Bundle; /** @hide */ oneway interface IAssistDataReceiver { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void onHandleAssistData(in Bundle resultData); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void onHandleAssistScreenshot(in Bitmap screenshot); } diff --git a/core/java/android/app/INotificationManager.aidl b/core/java/android/app/INotificationManager.aidl index 0deef53c478f..1a2dff616c81 100644 --- a/core/java/android/app/INotificationManager.aidl +++ b/core/java/android/app/INotificationManager.aidl @@ -126,7 +126,7 @@ interface INotificationManager StatusBarNotification[] getActiveNotifications(String callingPkg); StatusBarNotification[] getActiveNotificationsWithAttribution(String callingPkg, String callingAttributionTag); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) StatusBarNotification[] getHistoricalNotifications(String callingPkg, int count, boolean includeSnoozed); StatusBarNotification[] getHistoricalNotificationsWithAttribution(String callingPkg, String callingAttributionTag, int count, boolean includeSnoozed); diff --git a/core/java/android/app/IStopUserCallback.aidl b/core/java/android/app/IStopUserCallback.aidl index d3c2ff776128..c99734259f57 100644 --- a/core/java/android/app/IStopUserCallback.aidl +++ b/core/java/android/app/IStopUserCallback.aidl @@ -22,7 +22,7 @@ package android.app; */ interface IStopUserCallback { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void userStopped(int userId); void userStopAborted(int userId); } diff --git a/core/java/android/app/ITransientNotification.aidl b/core/java/android/app/ITransientNotification.aidl index 09a3ba045fc2..537a8f2acdc5 100644 --- a/core/java/android/app/ITransientNotification.aidl +++ b/core/java/android/app/ITransientNotification.aidl @@ -19,7 +19,7 @@ package android.app; /** @hide */ oneway interface ITransientNotification { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void show(IBinder windowToken); void hide(); } diff --git a/core/java/android/app/IWallpaperManager.aidl b/core/java/android/app/IWallpaperManager.aidl index 4cb8d936aa9c..101917bc2e07 100644 --- a/core/java/android/app/IWallpaperManager.aidl +++ b/core/java/android/app/IWallpaperManager.aidl @@ -83,7 +83,7 @@ interface IWallpaperManager { * information about that wallpaper. Otherwise, if it is a static image, * simply return null. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) WallpaperInfo getWallpaperInfo(int userId); /** diff --git a/core/java/android/app/Instrumentation.java b/core/java/android/app/Instrumentation.java index 2ef147b3e903..5a30e2925708 100644 --- a/core/java/android/app/Instrumentation.java +++ b/core/java/android/app/Instrumentation.java @@ -1415,7 +1415,7 @@ public class Instrumentation { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void callActivityOnNewIntent(Activity activity, ReferrerIntent intent) { final String oldReferrer = activity.mReferrer; try { @@ -1761,7 +1761,7 @@ public class Instrumentation { * * {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int execStartActivitiesAsUser(Context who, IBinder contextThread, IBinder token, Activity target, Intent[] intents, Bundle options, int userId) { @@ -1944,7 +1944,7 @@ public class Instrumentation { * Special version! * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public ActivityResult execStartActivityAsCaller( Context who, IBinder contextThread, IBinder token, Activity target, Intent intent, int requestCode, Bundle options, IBinder permissionToken, @@ -1992,7 +1992,7 @@ public class Instrumentation { * Special version! * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void execStartActivityFromAppTask( Context who, IBinder contextThread, IAppTask appTask, Intent intent, Bundle options) { diff --git a/core/java/android/app/KeyguardManager.java b/core/java/android/app/KeyguardManager.java index 2122e92ba5b5..545c3f70d466 100644 --- a/core/java/android/app/KeyguardManager.java +++ b/core/java/android/app/KeyguardManager.java @@ -531,7 +531,7 @@ public class KeyguardManager { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isDeviceSecure(int userId) { try { return mTrustManager.isDeviceSecure(userId); diff --git a/core/java/android/app/LoadedApk.java b/core/java/android/app/LoadedApk.java index f9b48e710148..9a068674c3fc 100644 --- a/core/java/android/app/LoadedApk.java +++ b/core/java/android/app/LoadedApk.java @@ -118,7 +118,7 @@ public final class LoadedApk { private String[] mOverlayDirs; @UnsupportedAppUsage private String mDataDir; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private String mLibDir; @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) private File mDataDirFile; @@ -1695,7 +1695,7 @@ public final class LoadedApk { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public IServiceConnection lookupServiceDispatcher(ServiceConnection c, Context context) { synchronized (mServices) { @@ -1761,7 +1761,7 @@ public final class LoadedApk { static final class ServiceDispatcher { private final ServiceDispatcher.InnerConnection mIServiceConnection; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final ServiceConnection mConnection; @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) private final Context mContext; @@ -1780,7 +1780,7 @@ public final class LoadedApk { } private static class InnerConnection extends IServiceConnection.Stub { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) final WeakReference<LoadedApk.ServiceDispatcher> mDispatcher; InnerConnection(LoadedApk.ServiceDispatcher sd) { @@ -1799,7 +1799,7 @@ public final class LoadedApk { private final ArrayMap<ComponentName, ServiceDispatcher.ConnectionInfo> mActiveConnections = new ArrayMap<ComponentName, ServiceDispatcher.ConnectionInfo>(); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) ServiceDispatcher(ServiceConnection conn, Context context, Handler activityThread, int flags) { mIServiceConnection = new InnerConnection(this); @@ -1864,7 +1864,7 @@ public final class LoadedApk { return mConnection; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) IServiceConnection getIServiceConnection() { return mIServiceConnection; } diff --git a/core/java/android/app/NativeActivity.java b/core/java/android/app/NativeActivity.java index 74bc9e215106..12d16049d1c3 100644 --- a/core/java/android/app/NativeActivity.java +++ b/core/java/android/app/NativeActivity.java @@ -71,7 +71,7 @@ public class NativeActivity extends Activity implements SurfaceHolder.Callback2, private NativeContentView mNativeContentView; private InputMethodManager mIMM; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private long mNativeHandle; private InputQueue mCurInputQueue; @@ -87,7 +87,7 @@ public class NativeActivity extends Activity implements SurfaceHolder.Callback2, private boolean mDestroyed; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private native long loadNativeCode(String path, String funcname, MessageQueue queue, String internalDataPath, String obbPath, String externalDataPath, int sdkVersion, AssetManager assetMgr, byte[] savedState, ClassLoader classLoader, String libraryPath); @@ -315,22 +315,22 @@ public class NativeActivity extends Activity implements SurfaceHolder.Callback2, } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) void setWindowFlags(int flags, int mask) { getWindow().setFlags(flags, mask); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) void setWindowFormat(int format) { getWindow().setFormat(format); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) void showIme(int mode) { mIMM.showSoftInput(mNativeContentView, mode); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) void hideIme(int mode) { mIMM.hideSoftInputFromWindow(mNativeContentView.getWindowToken(), mode); } diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java index 93bff3c41197..7aa51723e3cc 100644 --- a/core/java/android/app/Notification.java +++ b/core/java/android/app/Notification.java @@ -207,7 +207,7 @@ public class Notification implements Parcelable * <p> * Avoids spamming the system with overly large strings such as full e-mails. */ - private static final int MAX_CHARSEQUENCE_LENGTH = 5 * 1024; + private static final int MAX_CHARSEQUENCE_LENGTH = 1024; /** * Maximum entries of reply text that are accepted by Builder and friends. @@ -5233,7 +5233,7 @@ public class Notification implements Parcelable /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public String loadHeaderAppName() { CharSequence name = null; final PackageManager pm = mContext.getPackageManager(); @@ -7830,7 +7830,7 @@ public class Notification implements Parcelable */ public Message(@NonNull CharSequence text, long timestamp, @Nullable Person sender, boolean remoteInputHistory) { - mText = text; + mText = safeCharSequence(text); mTimestamp = timestamp; mSender = sender; mRemoteInputHistory = remoteInputHistory; @@ -7944,7 +7944,7 @@ public class Notification implements Parcelable bundle.putLong(KEY_TIMESTAMP, mTimestamp); if (mSender != null) { // Legacy listeners need this - bundle.putCharSequence(KEY_SENDER, mSender.getName()); + bundle.putCharSequence(KEY_SENDER, safeCharSequence(mSender.getName())); bundle.putParcelable(KEY_SENDER_PERSON, mSender); } if (mDataMimeType != null) { diff --git a/core/java/android/app/NotificationManager.java b/core/java/android/app/NotificationManager.java index a64433ff9ccc..7fe6a249e549 100644 --- a/core/java/android/app/NotificationManager.java +++ b/core/java/android/app/NotificationManager.java @@ -1019,7 +1019,7 @@ public class NotificationManager { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public ZenModeConfig getZenModeConfig() { INotificationManager service = getService(); try { diff --git a/core/java/android/app/PackageDeleteObserver.java b/core/java/android/app/PackageDeleteObserver.java index d8803aa13e42..4ff6f2a5133b 100644 --- a/core/java/android/app/PackageDeleteObserver.java +++ b/core/java/android/app/PackageDeleteObserver.java @@ -19,11 +19,12 @@ package android.app; import android.compat.annotation.UnsupportedAppUsage; import android.content.Intent; import android.content.pm.IPackageDeleteObserver2; +import android.os.Build; /** {@hide} */ public class PackageDeleteObserver { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public PackageDeleteObserver() { } diff --git a/core/java/android/app/PendingIntent.java b/core/java/android/app/PendingIntent.java index cd352e141994..41cac75cbd75 100644 --- a/core/java/android/app/PendingIntent.java +++ b/core/java/android/app/PendingIntent.java @@ -25,6 +25,7 @@ import android.content.IIntentReceiver; import android.content.IIntentSender; import android.content.Intent; import android.content.IntentSender; +import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.IBinder; @@ -281,7 +282,7 @@ public final class PendingIntent implements Parcelable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static void setOnMarshaledListener(OnMarshaledListener listener) { sOnMarshaledListener.set(listener); } diff --git a/core/java/android/app/QueuedWork.java b/core/java/android/app/QueuedWork.java index 82cc2c4daa0b..a99c0aa7418a 100644 --- a/core/java/android/app/QueuedWork.java +++ b/core/java/android/app/QueuedWork.java @@ -17,6 +17,7 @@ package android.app; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Handler; import android.os.HandlerThread; import android.os.Looper; @@ -217,7 +218,7 @@ public class QueuedWork { * @param work The new runnable to process * @param shouldDelay If the message should be delayed */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static void queue(Runnable work, boolean shouldDelay) { Handler handler = getHandler(); diff --git a/core/java/android/app/SearchManager.java b/core/java/android/app/SearchManager.java index dcb53505227a..7dd7c901ff84 100644 --- a/core/java/android/app/SearchManager.java +++ b/core/java/android/app/SearchManager.java @@ -31,6 +31,7 @@ import android.content.res.Configuration; import android.database.Cursor; import android.graphics.Rect; import android.net.Uri; +import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.RemoteException; @@ -778,7 +779,7 @@ public class SearchManager * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isVisible() { return mSearchDialog == null? false : mSearchDialog.isShowing(); } diff --git a/core/java/android/app/SharedPreferencesImpl.java b/core/java/android/app/SharedPreferencesImpl.java index 3df164822f32..bc1bcbc4f80e 100644 --- a/core/java/android/app/SharedPreferencesImpl.java +++ b/core/java/android/app/SharedPreferencesImpl.java @@ -130,7 +130,7 @@ final class SharedPreferencesImpl implements SharedPreferences { startLoadFromDisk(); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private void startLoadFromDisk() { synchronized (mLock) { mLoaded = false; diff --git a/core/java/android/app/StatusBarManager.java b/core/java/android/app/StatusBarManager.java index 1a07cc6735f6..49c9e6cca6fc 100644 --- a/core/java/android/app/StatusBarManager.java +++ b/core/java/android/app/StatusBarManager.java @@ -26,6 +26,7 @@ import android.annotation.TestApi; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.os.Binder; +import android.os.Build; import android.os.IBinder; import android.os.RemoteException; import android.os.ServiceManager; @@ -54,7 +55,7 @@ public class StatusBarManager { /** @hide */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int DISABLE_NOTIFICATION_TICKER = View.STATUS_BAR_DISABLE_NOTIFICATION_TICKER; /** @hide */ @@ -313,7 +314,7 @@ public class StatusBarManager { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void expandSettingsPanel(@Nullable String subPanel) { try { final IStatusBarService svc = getService(); @@ -326,7 +327,7 @@ public class StatusBarManager { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setIcon(String slot, int iconId, int iconLevel, String contentDescription) { try { final IStatusBarService svc = getService(); @@ -340,7 +341,7 @@ public class StatusBarManager { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void removeIcon(String slot) { try { final IStatusBarService svc = getService(); @@ -353,7 +354,7 @@ public class StatusBarManager { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setIconVisibility(String slot, boolean visible) { try { final IStatusBarService svc = getService(); diff --git a/core/java/android/app/TaskInfo.java b/core/java/android/app/TaskInfo.java index f3f00e50715b..5fcf49593268 100644 --- a/core/java/android/app/TaskInfo.java +++ b/core/java/android/app/TaskInfo.java @@ -24,6 +24,7 @@ import android.content.ComponentName; import android.content.Intent; import android.content.pm.ActivityInfo; import android.content.res.Configuration; +import android.os.Build; import android.os.Parcel; import android.os.RemoteException; import android.util.Log; @@ -39,7 +40,7 @@ public class TaskInfo { * The id of the user the task was running as. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int userId; /** diff --git a/core/java/android/app/TaskStackListener.java b/core/java/android/app/TaskStackListener.java index f137d6858a68..4f934f12d778 100644 --- a/core/java/android/app/TaskStackListener.java +++ b/core/java/android/app/TaskStackListener.java @@ -21,6 +21,7 @@ import android.app.ActivityManager.TaskSnapshot; import android.compat.annotation.UnsupportedAppUsage; import android.content.ComponentName; import android.os.Binder; +import android.os.Build; import android.os.IBinder; import android.os.RemoteException; @@ -37,35 +38,35 @@ public abstract class TaskStackListener extends ITaskStackListener.Stub { } @Override - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void onTaskStackChanged() throws RemoteException { } @Override - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void onActivityPinned(String packageName, int userId, int taskId, int stackId) throws RemoteException { } @Override - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void onActivityUnpinned() throws RemoteException { } @Override - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void onActivityRestartAttempt(RunningTaskInfo task, boolean homeTaskVisible, boolean clearedTask, boolean wasVisible) throws RemoteException { } @Override - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void onActivityForcedResizable(String packageName, int taskId, int reason) throws RemoteException { } @Override - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void onActivityDismissingDockedStack() throws RemoteException { } @@ -80,12 +81,12 @@ public abstract class TaskStackListener extends ITaskStackListener.Stub { * #onActivityLaunchOnSecondaryDisplayFailed(RunningTaskInfo, int)} */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void onActivityLaunchOnSecondaryDisplayFailed() throws RemoteException { } @Override - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void onActivityLaunchOnSecondaryDisplayRerouted(RunningTaskInfo taskInfo, int requestedDisplayId) throws RemoteException { } @@ -95,7 +96,7 @@ public abstract class TaskStackListener extends ITaskStackListener.Stub { } @Override - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void onTaskRemoved(int taskId) throws RemoteException { } @@ -109,7 +110,7 @@ public abstract class TaskStackListener extends ITaskStackListener.Stub { * @deprecated see {@link #onTaskMovedToFront(RunningTaskInfo)} */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void onTaskMovedToFront(int taskId) throws RemoteException { } @@ -141,18 +142,18 @@ public abstract class TaskStackListener extends ITaskStackListener.Stub { } @Override - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void onActivityRequestedOrientationChanged(int taskId, int requestedOrientation) throws RemoteException { } @Override - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void onTaskProfileLocked(int taskId, int userId) throws RemoteException { } @Override - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void onTaskSnapshotChanged(int taskId, TaskSnapshot snapshot) throws RemoteException { if (Binder.getCallingPid() != android.os.Process.myPid() && snapshot != null && snapshot.getSnapshot() != null) { @@ -162,7 +163,7 @@ public abstract class TaskStackListener extends ITaskStackListener.Stub { } @Override - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void onSizeCompatModeActivityChanged(int displayId, IBinder activityToken) throws RemoteException { } diff --git a/core/java/android/app/UiAutomationConnection.java b/core/java/android/app/UiAutomationConnection.java index ce51dba76780..d7e442ff24ab 100644 --- a/core/java/android/app/UiAutomationConnection.java +++ b/core/java/android/app/UiAutomationConnection.java @@ -25,6 +25,7 @@ import android.graphics.Bitmap; import android.graphics.Rect; import android.hardware.input.InputManager; import android.os.Binder; +import android.os.Build; import android.os.IBinder; import android.os.ParcelFileDescriptor; import android.os.Process; @@ -88,7 +89,7 @@ public final class UiAutomationConnection extends IUiAutomationConnection.Stub { private int mOwningUid; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public UiAutomationConnection() { } diff --git a/core/java/android/app/VrManager.java b/core/java/android/app/VrManager.java index 08a210b069b9..42b4c5c389bb 100644 --- a/core/java/android/app/VrManager.java +++ b/core/java/android/app/VrManager.java @@ -9,6 +9,7 @@ import android.annotation.SystemService; import android.compat.annotation.UnsupportedAppUsage; import android.content.ComponentName; import android.content.Context; +import android.os.Build; import android.os.RemoteException; import android.service.vr.IPersistentVrStateCallbacks; import android.service.vr.IVrManager; @@ -51,7 +52,7 @@ public class VrManager { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final IVrManager mService; private Map<VrStateCallback, CallbackEntry> mCallbackMap = new ArrayMap<>(); diff --git a/core/java/android/app/WallpaperManager.java b/core/java/android/app/WallpaperManager.java index b1c005c761aa..95f12404bd80 100644 --- a/core/java/android/app/WallpaperManager.java +++ b/core/java/android/app/WallpaperManager.java @@ -1976,7 +1976,7 @@ public class WallpaperManager { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static InputStream openDefaultWallpaper(Context context, @SetWallpaperFlags int which) { final String whichProp; final int defaultResId; diff --git a/core/java/android/app/admin/DeviceAdminInfo.java b/core/java/android/app/admin/DeviceAdminInfo.java index a2f44149e853..25e795a87029 100644 --- a/core/java/android/app/admin/DeviceAdminInfo.java +++ b/core/java/android/app/admin/DeviceAdminInfo.java @@ -483,7 +483,7 @@ public final class DeviceAdminInfo implements Parcelable { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public ArrayList<PolicyInfo> getUsedPolicies() { ArrayList<PolicyInfo> res = new ArrayList<PolicyInfo>(); for (int i=0; i<sPoliciesDisplayOrder.size(); i++) { diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java index 05bf949e66c4..6fa5a7b1fb65 100644 --- a/core/java/android/app/admin/DevicePolicyManager.java +++ b/core/java/android/app/admin/DevicePolicyManager.java @@ -1396,7 +1396,7 @@ public class DevicePolicyManager { * sent to the parent user. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED = "android.app.action.DEVICE_POLICY_MANAGER_STATE_CHANGED"; @@ -4122,7 +4122,7 @@ public class DevicePolicyManager { } /** @hide per-user version */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public long getMaximumTimeToLock(@Nullable ComponentName admin, int userHandle) { if (mService != null) { try { @@ -4204,7 +4204,7 @@ public class DevicePolicyManager { } /** @hide per-user version */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @RequiresFeature(PackageManager.FEATURE_SECURE_LOCK_SCREEN) public long getRequiredStrongAuthTimeout(@Nullable ComponentName admin, @UserIdInt int userId) { if (mService != null) { @@ -4506,7 +4506,7 @@ public class DevicePolicyManager { * of the device admin that sets the proxy. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public @Nullable ComponentName setGlobalProxy(@NonNull ComponentName admin, Proxy proxySpec, List<String> exclusionList ) { throwIfParentInstance("setGlobalProxy"); @@ -6319,7 +6319,7 @@ public class DevicePolicyManager { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setActiveAdmin(@NonNull ComponentName policyReceiver, boolean refreshing, int userHandle) { if (mService != null) { @@ -7033,7 +7033,7 @@ public class DevicePolicyManager { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public @Nullable ComponentName getProfileOwnerAsUser(final int userId) { if (mService != null) { try { @@ -7448,7 +7448,7 @@ public class DevicePolicyManager { } /** @hide per-user version */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @RequiresFeature(PackageManager.FEATURE_SECURE_LOCK_SCREEN) public @Nullable List<PersistableBundle> getTrustAgentConfiguration( @Nullable ComponentName admin, @NonNull ComponentName agent, int userHandle) { @@ -10637,7 +10637,7 @@ public class DevicePolicyManager { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private void throwIfParentInstance(String functionName) { if (mParentInstance) { throw new SecurityException(functionName + " cannot be called on the parent instance"); diff --git a/core/java/android/app/admin/DevicePolicyManagerInternal.java b/core/java/android/app/admin/DevicePolicyManagerInternal.java index 19242ba9bdb5..ffa537e0617e 100644 --- a/core/java/android/app/admin/DevicePolicyManagerInternal.java +++ b/core/java/android/app/admin/DevicePolicyManagerInternal.java @@ -88,6 +88,26 @@ public abstract class DevicePolicyManagerInternal { public abstract boolean isActiveAdminWithPolicy(int uid, int reqPolicy); /** + * Checks if an app with given uid is an active device owner of its user. + * + * <p>This takes the DPMS lock. DO NOT call from PM/UM/AM with their lock held. + * + * @param uid App uid. + * @return true if the uid is an active device owner. + */ + public abstract boolean isActiveDeviceOwner(int uid); + + /** + * Checks if an app with given uid is an active profile owner of its user. + * + * <p>This takes the DPMS lock. DO NOT call from PM/UM/AM with their lock held. + * + * @param uid App uid. + * @return true if the uid is an active profile owner. + */ + public abstract boolean isActiveProfileOwner(int uid); + + /** * Checks if an app with given uid is the active supervision admin. * * <p>This takes the DPMS lock. DO NOT call from PM/UM/AM with their lock held. diff --git a/core/java/android/app/admin/SecurityLog.java b/core/java/android/app/admin/SecurityLog.java index fb7f573d5535..31762721c0d3 100644 --- a/core/java/android/app/admin/SecurityLog.java +++ b/core/java/android/app/admin/SecurityLog.java @@ -20,6 +20,7 @@ import android.annotation.IntDef; import android.annotation.TestApi; import android.compat.annotation.UnsupportedAppUsage; import android.content.ComponentName; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.os.SystemProperties; @@ -523,7 +524,7 @@ public class SecurityLog { * Constructor used by native classes to generate SecurityEvent instances. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) /* package */ SecurityEvent(byte[] data) { this(0, data); } diff --git a/core/java/android/app/backup/BackupDataOutput.java b/core/java/android/app/backup/BackupDataOutput.java index fb161d41acd2..50d7cec0bc71 100644 --- a/core/java/android/app/backup/BackupDataOutput.java +++ b/core/java/android/app/backup/BackupDataOutput.java @@ -18,6 +18,7 @@ package android.app.backup; import android.annotation.SystemApi; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.ParcelFileDescriptor; import java.io.FileDescriptor; @@ -68,7 +69,7 @@ public class BackupDataOutput { private final long mQuota; private final int mTransportFlags; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) long mBackupWriter; /** diff --git a/core/java/android/app/backup/FullBackup.java b/core/java/android/app/backup/FullBackup.java index 587e883edaf2..c854abac291e 100644 --- a/core/java/android/app/backup/FullBackup.java +++ b/core/java/android/app/backup/FullBackup.java @@ -20,6 +20,7 @@ import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.content.pm.PackageManager; import android.content.res.XmlResourceParser; +import android.os.Build; import android.os.ParcelFileDescriptor; import android.os.Process; import android.os.storage.StorageManager; @@ -91,7 +92,7 @@ public class FullBackup { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) static public native int backupToTar(String packageName, String domain, String linkdomain, String rootpath, String path, FullBackupDataOutput output); diff --git a/core/java/android/app/backup/FullBackupDataOutput.java b/core/java/android/app/backup/FullBackupDataOutput.java index d8fa0f586b7a..a47478cc66a7 100644 --- a/core/java/android/app/backup/FullBackupDataOutput.java +++ b/core/java/android/app/backup/FullBackupDataOutput.java @@ -1,6 +1,7 @@ package android.app.backup; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.ParcelFileDescriptor; /** @@ -77,7 +78,7 @@ public class FullBackupDataOutput { public BackupDataOutput getData() { return mData; } /** @hide - used for measurement pass */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void addSize(long size) { if (size > 0) { mSize += size; diff --git a/core/java/android/app/backup/IBackupManager.aidl b/core/java/android/app/backup/IBackupManager.aidl index 4940976133c5..3380bd1bb1fc 100644 --- a/core/java/android/app/backup/IBackupManager.aidl +++ b/core/java/android/app/backup/IBackupManager.aidl @@ -74,7 +74,7 @@ interface IBackupManager { /** * {@link android.app.backup.IBackupManager.clearBackupDataForUser} for the calling user id. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void clearBackupData(String transportName, String packageName); /** @@ -157,7 +157,7 @@ interface IBackupManager { /** * {@link android.app.backup.IBackupManager.setBackupEnabledForUser} for the calling user id. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void setBackupEnabled(boolean isEnabled); /** @@ -181,7 +181,7 @@ interface IBackupManager { /** * {@link android.app.backup.IBackupManager.setAutoRestoreForUser} for the calling user id. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void setAutoRestore(boolean doAutoRestore); /** @@ -198,7 +198,7 @@ interface IBackupManager { /** * {@link android.app.backup.IBackupManager.isBackupEnabledForUser} for the calling user id. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) boolean isBackupEnabled(); /** @@ -327,7 +327,7 @@ interface IBackupManager { * {@link android.app.backup.IBackupManager.acknowledgeFullBackupOrRestoreForUser} for the * calling user id. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void acknowledgeFullBackupOrRestore(int token, boolean allow, in String curPassword, in String encryptionPassword, IFullBackupRestoreObserver observer); @@ -404,7 +404,7 @@ interface IBackupManager { /** * {@link android.app.backup.IBackupManager.listAllTransportsForUser} for the calling user id. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) String[] listAllTransports(); /** @@ -442,7 +442,7 @@ interface IBackupManager { * {@link android.app.backup.IBackupManager.selectBackupTransportForUser} for the calling user * id. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) String selectBackupTransport(String transport); /** @@ -593,7 +593,7 @@ interface IBackupManager { * @param whichUser User handle of the defined user whose backup active state * is being queried. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) boolean isBackupServiceActive(int whichUser); /** diff --git a/core/java/android/app/servertransaction/ActivityResultItem.java b/core/java/android/app/servertransaction/ActivityResultItem.java index 4e743caccad6..25321ee3c81d 100644 --- a/core/java/android/app/servertransaction/ActivityResultItem.java +++ b/core/java/android/app/servertransaction/ActivityResultItem.java @@ -21,6 +21,7 @@ import static android.os.Trace.TRACE_TAG_ACTIVITY_MANAGER; import android.app.ClientTransactionHandler; import android.app.ResultInfo; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.IBinder; import android.os.Parcel; import android.os.Parcelable; @@ -35,7 +36,7 @@ import java.util.Objects; */ public class ActivityResultItem extends ClientTransactionItem { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private List<ResultInfo> mResultInfoList; /* TODO(b/78294732) diff --git a/core/java/android/app/servertransaction/NewIntentItem.java b/core/java/android/app/servertransaction/NewIntentItem.java index 6a4996da38ca..55cc4abd774a 100644 --- a/core/java/android/app/servertransaction/NewIntentItem.java +++ b/core/java/android/app/servertransaction/NewIntentItem.java @@ -21,6 +21,7 @@ import static android.app.servertransaction.ActivityLifecycleItem.UNDEFINED; import android.app.ClientTransactionHandler; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.IBinder; import android.os.Parcel; import android.os.Parcelable; @@ -37,7 +38,7 @@ import java.util.Objects; */ public class NewIntentItem extends ClientTransactionItem { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private List<ReferrerIntent> mIntents; private boolean mResume; diff --git a/core/java/android/app/usage/IUsageStatsManager.aidl b/core/java/android/app/usage/IUsageStatsManager.aidl index ed6ba0c5efa4..2c1e951b6128 100644 --- a/core/java/android/app/usage/IUsageStatsManager.aidl +++ b/core/java/android/app/usage/IUsageStatsManager.aidl @@ -28,10 +28,10 @@ import java.util.Map; * {@hide} */ interface IUsageStatsManager { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) ParceledListSlice queryUsageStats(int bucketType, long beginTime, long endTime, String callingPackage); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) ParceledListSlice queryConfigurationStats(int bucketType, long beginTime, long endTime, String callingPackage); ParceledListSlice queryEventStats(int bucketType, long beginTime, long endTime, @@ -40,9 +40,9 @@ interface IUsageStatsManager { UsageEvents queryEventsForPackage(long beginTime, long endTime, String callingPackage); UsageEvents queryEventsForUser(long beginTime, long endTime, int userId, String callingPackage); UsageEvents queryEventsForPackageForUser(long beginTime, long endTime, int userId, String pkg, String callingPackage); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void setAppInactive(String packageName, boolean inactive, int userId); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) boolean isAppInactive(String packageName, int userId, String callingPackage); void onCarrierPrivilegedAppsChanged(); void reportChooserSelection(String packageName, int userId, String contentType, diff --git a/core/java/android/app/usage/NetworkStatsManager.java b/core/java/android/app/usage/NetworkStatsManager.java index fc8248e1012a..1ddfe0d2479a 100644 --- a/core/java/android/app/usage/NetworkStatsManager.java +++ b/core/java/android/app/usage/NetworkStatsManager.java @@ -34,6 +34,7 @@ import android.net.NetworkTemplate; import android.net.netstats.provider.INetworkStatsProviderCallback; import android.net.netstats.provider.NetworkStatsProvider; import android.os.Binder; +import android.os.Build; import android.os.Handler; import android.os.Looper; import android.os.Message; @@ -129,7 +130,7 @@ public class NetworkStatsManager { /** * {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public NetworkStatsManager(Context context) throws ServiceNotFoundException { this(context, INetworkStatsService.Stub.asInterface( ServiceManager.getServiceOrThrow(Context.NETWORK_STATS_SERVICE))); @@ -153,7 +154,7 @@ public class NetworkStatsManager { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @TestApi public void setPollForce(boolean pollForce) { if (pollForce) { diff --git a/core/java/android/appwidget/AppWidgetHost.java b/core/java/android/appwidget/AppWidgetHost.java index 467b2fba1102..565e4cd7fea0 100644 --- a/core/java/android/appwidget/AppWidgetHost.java +++ b/core/java/android/appwidget/AppWidgetHost.java @@ -25,6 +25,7 @@ import android.content.Context; import android.content.IntentSender; import android.content.pm.PackageManager; import android.os.Binder; +import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.IBinder; @@ -54,7 +55,7 @@ public class AppWidgetHost { static final int HANDLE_UPDATE = 1; static final int HANDLE_PROVIDER_CHANGED = 2; static final int HANDLE_PROVIDERS_CHANGED = 3; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) static final int HANDLE_VIEW_DATA_CHANGED = 4; static final int HANDLE_APP_WIDGET_REMOVED = 5; @@ -173,7 +174,7 @@ public class AppWidgetHost { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public AppWidgetHost(Context context, int hostId, OnClickHandler handler, Looper looper) { mContextOpPackageName = context.getOpPackageName(); mHostId = hostId; diff --git a/core/java/android/appwidget/AppWidgetHostView.java b/core/java/android/appwidget/AppWidgetHostView.java index 3fef92b203b6..a3c3a0e106a3 100644 --- a/core/java/android/appwidget/AppWidgetHostView.java +++ b/core/java/android/appwidget/AppWidgetHostView.java @@ -30,6 +30,7 @@ import android.content.pm.PackageManager.NameNotFoundException; import android.content.res.Resources; import android.graphics.Color; import android.graphics.Rect; +import android.os.Build; import android.os.Bundle; import android.os.CancellationSignal; import android.os.Parcelable; @@ -286,7 +287,7 @@ public class AppWidgetHostView extends FrameLayout { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void updateAppWidgetSize(Bundle newOptions, int minWidth, int minHeight, int maxWidth, int maxHeight, boolean ignorePadding) { if (newOptions == null) { diff --git a/core/java/android/appwidget/AppWidgetManager.java b/core/java/android/appwidget/AppWidgetManager.java index 009ec522e436..37093a10b2f0 100644 --- a/core/java/android/appwidget/AppWidgetManager.java +++ b/core/java/android/appwidget/AppWidgetManager.java @@ -34,6 +34,7 @@ import android.content.ServiceConnection; import android.content.pm.PackageManager; import android.content.pm.ParceledListSlice; import android.content.pm.ShortcutInfo; +import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.RemoteException; @@ -943,7 +944,7 @@ public class AppWidgetManager { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void bindAppWidgetId(int appWidgetId, ComponentName provider, Bundle options) { if (mService == null) { return; @@ -1114,7 +1115,7 @@ public class AppWidgetManager { * @see Context#getServiceDispatcher(ServiceConnection, Handler, int) * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean bindRemoteViewsService(Context context, int appWidgetId, Intent intent, IServiceConnection connection, @Context.BindServiceFlags int flags) { if (mService == null) { diff --git a/core/java/android/bluetooth/BluetoothA2dp.java b/core/java/android/bluetooth/BluetoothA2dp.java index 5374d6d55ee3..c0cb32346821 100644 --- a/core/java/android/bluetooth/BluetoothA2dp.java +++ b/core/java/android/bluetooth/BluetoothA2dp.java @@ -118,7 +118,7 @@ public final class BluetoothA2dp implements BluetoothProfile { * @hide */ @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String ACTION_ACTIVE_DEVICE_CHANGED = "android.bluetooth.a2dp.profile.action.ACTIVE_DEVICE_CHANGED"; @@ -139,7 +139,7 @@ public final class BluetoothA2dp implements BluetoothProfile { * @hide */ @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String ACTION_CODEC_CONFIG_CHANGED = "android.bluetooth.a2dp.profile.action.CODEC_CONFIG_CHANGED"; @@ -409,7 +409,7 @@ public final class BluetoothA2dp implements BluetoothProfile { * @hide */ @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN) - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean setActiveDevice(@Nullable BluetoothDevice device) { if (DBG) log("setActiveDevice(" + device + ")"); try { @@ -433,7 +433,7 @@ public final class BluetoothA2dp implements BluetoothProfile { * is active * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @Nullable @RequiresPermission(Manifest.permission.BLUETOOTH) public BluetoothDevice getActiveDevice() { @@ -651,7 +651,7 @@ public final class BluetoothA2dp implements BluetoothProfile { * @return the current codec status * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @Nullable @RequiresPermission(Manifest.permission.BLUETOOTH) public BluetoothCodecStatus getCodecStatus(@NonNull BluetoothDevice device) { @@ -680,7 +680,7 @@ public final class BluetoothA2dp implements BluetoothProfile { * @param codecConfig the codec configuration preference * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @RequiresPermission(Manifest.permission.BLUETOOTH) public void setCodecConfigPreference(@NonNull BluetoothDevice device, @NonNull BluetoothCodecConfig codecConfig) { @@ -710,7 +710,7 @@ public final class BluetoothA2dp implements BluetoothProfile { * active A2DP Bluetooth device. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @RequiresPermission(Manifest.permission.BLUETOOTH) public void enableOptionalCodecs(@NonNull BluetoothDevice device) { if (DBG) Log.d(TAG, "enableOptionalCodecs(" + device + ")"); @@ -725,7 +725,7 @@ public final class BluetoothA2dp implements BluetoothProfile { * active A2DP Bluetooth device. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @RequiresPermission(Manifest.permission.BLUETOOTH) public void disableOptionalCodecs(@NonNull BluetoothDevice device) { if (DBG) Log.d(TAG, "disableOptionalCodecs(" + device + ")"); @@ -766,7 +766,7 @@ public final class BluetoothA2dp implements BluetoothProfile { * OPTIONAL_CODECS_SUPPORTED. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN) @OptionalCodecsSupportStatus public int isOptionalCodecsSupported(@NonNull BluetoothDevice device) { @@ -792,7 +792,7 @@ public final class BluetoothA2dp implements BluetoothProfile { * OPTIONAL_CODECS_PREF_DISABLED. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN) @OptionalCodecsPreferenceStatus public int isOptionalCodecsEnabled(@NonNull BluetoothDevice device) { @@ -819,7 +819,7 @@ public final class BluetoothA2dp implements BluetoothProfile { * OPTIONAL_CODECS_PREF_DISABLED. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN) public void setOptionalCodecsEnabled(@NonNull BluetoothDevice device, @OptionalCodecsPreferenceStatus int value) { diff --git a/core/java/android/bluetooth/BluetoothA2dpSink.java b/core/java/android/bluetooth/BluetoothA2dpSink.java index 53f87e6bc05b..67f3d7b5d717 100755 --- a/core/java/android/bluetooth/BluetoothA2dpSink.java +++ b/core/java/android/bluetooth/BluetoothA2dpSink.java @@ -24,6 +24,7 @@ import android.annotation.SystemApi; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.os.Binder; +import android.os.Build; import android.os.IBinder; import android.os.RemoteException; import android.util.Log; @@ -158,7 +159,7 @@ public final class BluetoothA2dpSink implements BluetoothProfile { * @return false on immediate error, true otherwise * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN) public boolean disconnect(BluetoothDevice device) { if (DBG) log("disconnect(" + device + ")"); diff --git a/core/java/android/bluetooth/BluetoothAdapter.java b/core/java/android/bluetooth/BluetoothAdapter.java index 7047f73393f8..2dfbb3ae81e4 100644 --- a/core/java/android/bluetooth/BluetoothAdapter.java +++ b/core/java/android/bluetooth/BluetoothAdapter.java @@ -41,6 +41,7 @@ import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.os.BatteryStats; import android.os.Binder; +import android.os.Build; import android.os.IBinder; import android.os.ParcelUuid; import android.os.RemoteException; @@ -1173,7 +1174,7 @@ public final class BluetoothAdapter { * @return true to indicate adapter shutdown has begun, or false on immediate error * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean disable(boolean persist) { try { @@ -1222,7 +1223,7 @@ public final class BluetoothAdapter { * @return true to indicate that the config file was successfully cleared * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean factoryReset() { try { @@ -2594,7 +2595,7 @@ public final class BluetoothAdapter { * permissions, or channel in use. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public BluetoothServerSocket listenUsingEncryptedRfcommWithServiceRecord(String name, UUID uuid) throws IOException { return createNewRfcommSocketAndRecord(name, uuid, false, true); diff --git a/core/java/android/bluetooth/BluetoothDevice.java b/core/java/android/bluetooth/BluetoothDevice.java index cf8cdd4ea9d5..0f864a81c144 100644 --- a/core/java/android/bluetooth/BluetoothDevice.java +++ b/core/java/android/bluetooth/BluetoothDevice.java @@ -28,6 +28,7 @@ import android.annotation.SystemApi; import android.app.PropertyInvalidatedCache; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; +import android.os.Build; import android.os.Handler; import android.os.Parcel; import android.os.ParcelUuid; @@ -349,7 +350,7 @@ public final class BluetoothDevice implements Parcelable { /** @hide */ @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String ACTION_SDP_RECORD = "android.bluetooth.device.action.SDP_RECORD"; @@ -645,7 +646,7 @@ public final class BluetoothDevice implements Parcelable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int UNBOND_REASON_AUTH_FAILED = 1; /** @@ -654,7 +655,7 @@ public final class BluetoothDevice implements Parcelable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int UNBOND_REASON_AUTH_REJECTED = 2; /** @@ -669,7 +670,7 @@ public final class BluetoothDevice implements Parcelable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int UNBOND_REASON_REMOTE_DEVICE_DOWN = 4; /** @@ -677,7 +678,7 @@ public final class BluetoothDevice implements Parcelable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int UNBOND_REASON_DISCOVERY_IN_PROGRESS = 5; /** @@ -685,7 +686,7 @@ public final class BluetoothDevice implements Parcelable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int UNBOND_REASON_AUTH_TIMEOUT = 6; /** @@ -693,7 +694,7 @@ public final class BluetoothDevice implements Parcelable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int UNBOND_REASON_REPEATED_ATTEMPTS = 7; /** @@ -702,7 +703,7 @@ public final class BluetoothDevice implements Parcelable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int UNBOND_REASON_REMOTE_AUTH_CANCELED = 8; /** @@ -781,7 +782,7 @@ public final class BluetoothDevice implements Parcelable { "android.bluetooth.device.extra.SDP_RECORD"; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String EXTRA_SDP_SEARCH_STATUS = "android.bluetooth.device.extra.SDP_SEARCH_STATUS"; @@ -1102,7 +1103,7 @@ public final class BluetoothDevice implements Parcelable { * @return true on success, false on error * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @RequiresPermission(Manifest.permission.BLUETOOTH) public boolean setAlias(@NonNull String alias) { final IBluetooth service = sService; @@ -1541,7 +1542,7 @@ public final class BluetoothDevice implements Parcelable { * @return true pin has been set false for error * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN) public boolean setPin(@NonNull String pin) { byte[] pinBytes = convertPinToBytes(pin); @@ -2155,7 +2156,7 @@ public final class BluetoothDevice implements Parcelable { * operations. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public BluetoothGatt connectGatt(Context context, boolean autoConnect, BluetoothGattCallback callback, int transport, boolean opportunistic, int phy, Handler handler) { diff --git a/core/java/android/bluetooth/BluetoothGatt.java b/core/java/android/bluetooth/BluetoothGatt.java index 6d22eb93fd02..7a6ff79623af 100644 --- a/core/java/android/bluetooth/BluetoothGatt.java +++ b/core/java/android/bluetooth/BluetoothGatt.java @@ -58,9 +58,9 @@ public final class BluetoothGatt implements BluetoothProfile { private int mConnState; private final Object mStateLock = new Object(); private final Object mDeviceBusyLock = new Object(); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private Boolean mDeviceBusy = false; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private int mTransport; private int mPhy; private boolean mOpportunistic; @@ -881,7 +881,7 @@ public final class BluetoothGatt implements BluetoothProfile { * automatically connect as soon as the remote device becomes available (true). * @return true, if the connection attempt was initiated successfully */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) /*package*/ boolean connect(Boolean autoConnect, BluetoothGattCallback callback, Handler handler) { if (DBG) { diff --git a/core/java/android/bluetooth/BluetoothGattService.java b/core/java/android/bluetooth/BluetoothGattService.java index e7809aeb1bb5..23dc7c830855 100644 --- a/core/java/android/bluetooth/BluetoothGattService.java +++ b/core/java/android/bluetooth/BluetoothGattService.java @@ -16,6 +16,7 @@ package android.bluetooth; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.ParcelUuid; import android.os.Parcelable; @@ -385,7 +386,7 @@ public class BluetoothGattService implements Parcelable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setAdvertisePreferred(boolean advertisePreferred) { mAdvertisePreferred = advertisePreferred; } diff --git a/core/java/android/bluetooth/BluetoothHeadset.java b/core/java/android/bluetooth/BluetoothHeadset.java index 6ce05f984cca..adb7e2f773a9 100644 --- a/core/java/android/bluetooth/BluetoothHeadset.java +++ b/core/java/android/bluetooth/BluetoothHeadset.java @@ -27,6 +27,7 @@ import android.compat.annotation.UnsupportedAppUsage; import android.content.ComponentName; import android.content.Context; import android.os.Binder; +import android.os.Build; import android.os.Handler; import android.os.IBinder; import android.os.Looper; @@ -112,7 +113,7 @@ public final class BluetoothHeadset implements BluetoothProfile { * @hide */ @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String ACTION_ACTIVE_DEVICE_CHANGED = "android.bluetooth.headset.profile.action.ACTIVE_DEVICE_CHANGED"; @@ -635,7 +636,7 @@ public final class BluetoothHeadset implements BluetoothProfile { * @return priority of the device * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @RequiresPermission(Manifest.permission.BLUETOOTH) public int getPriority(BluetoothDevice device) { if (VDBG) log("getPriority(" + device + ")"); @@ -782,7 +783,7 @@ public final class BluetoothHeadset implements BluetoothProfile { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getAudioState(BluetoothDevice device) { if (VDBG) log("getAudioState"); final IBluetoothHeadset service = mService; @@ -1030,7 +1031,7 @@ public final class BluetoothHeadset implements BluetoothProfile { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void phoneStateChanged(int numActive, int numHeld, int callState, String number, int type, String name) { final IBluetoothHeadset service = mService; @@ -1129,7 +1130,7 @@ public final class BluetoothHeadset implements BluetoothProfile { * @hide */ @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean setActiveDevice(@Nullable BluetoothDevice device) { if (DBG) { Log.d(TAG, "setActiveDevice: " + device); @@ -1155,7 +1156,7 @@ public final class BluetoothHeadset implements BluetoothProfile { * is active. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @Nullable @RequiresPermission(Manifest.permission.BLUETOOTH) public BluetoothDevice getActiveDevice() { diff --git a/core/java/android/bluetooth/BluetoothHeadsetClient.java b/core/java/android/bluetooth/BluetoothHeadsetClient.java index 28363250ebda..e5b2a1e23cc1 100644 --- a/core/java/android/bluetooth/BluetoothHeadsetClient.java +++ b/core/java/android/bluetooth/BluetoothHeadsetClient.java @@ -22,6 +22,7 @@ import android.annotation.RequiresPermission; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.os.Binder; +import android.os.Build; import android.os.Bundle; import android.os.IBinder; import android.os.RemoteException; @@ -445,7 +446,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean connect(BluetoothDevice device) { if (DBG) log("connect(" + device + ")"); final IBluetoothHeadsetClient service = @@ -471,7 +472,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean disconnect(BluetoothDevice device) { if (DBG) log("disconnect(" + device + ")"); final IBluetoothHeadsetClient service = @@ -780,7 +781,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile { * @return <code>true</code> if command has been issued successfully; <code>false</code> * otherwise; upon completion HFP sends {@link #ACTION_CALL_CHANGED} intent. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean acceptCall(BluetoothDevice device, int flag) { if (DBG) log("acceptCall()"); final IBluetoothHeadsetClient service = @@ -829,7 +830,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile { * #EXTRA_AG_FEATURE_REJECT_CALL}. This method invocation will fail silently when feature is not * supported.</p> */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean rejectCall(BluetoothDevice device) { if (DBG) log("rejectCall()"); final IBluetoothHeadsetClient service = @@ -1014,7 +1015,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile { * * Note: This is an internal function and shouldn't be exposed */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getAudioState(BluetoothDevice device) { if (VDBG) log("getAudioState"); final IBluetoothHeadsetClient service = diff --git a/core/java/android/bluetooth/BluetoothHeadsetClientCall.java b/core/java/android/bluetooth/BluetoothHeadsetClientCall.java index d1a096e605dd..219d1596fbf3 100644 --- a/core/java/android/bluetooth/BluetoothHeadsetClientCall.java +++ b/core/java/android/bluetooth/BluetoothHeadsetClientCall.java @@ -17,6 +17,7 @@ package android.bluetooth; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.os.SystemClock; @@ -144,7 +145,7 @@ public final class BluetoothHeadsetClientCall implements Parcelable { * * @return call id. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getId() { return mId; } @@ -164,7 +165,7 @@ public final class BluetoothHeadsetClientCall implements Parcelable { * * @return state of this particular phone call. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getState() { return mState; } @@ -174,7 +175,7 @@ public final class BluetoothHeadsetClientCall implements Parcelable { * * @return string representing phone number. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public String getNumber() { return mNumber; } @@ -193,7 +194,7 @@ public final class BluetoothHeadsetClientCall implements Parcelable { * * @return <code>true</code> if call is a multi party call, <code>false</code> otherwise. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isMultiParty() { return mMultiParty; } @@ -203,7 +204,7 @@ public final class BluetoothHeadsetClientCall implements Parcelable { * * @return <code>true</code> if its outgoing call, <code>false</code> otherwise. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isOutgoing() { return mOutgoing; } diff --git a/core/java/android/bluetooth/BluetoothHearingAid.java b/core/java/android/bluetooth/BluetoothHearingAid.java index fa62a02499e0..ff78825e0f96 100644 --- a/core/java/android/bluetooth/BluetoothHearingAid.java +++ b/core/java/android/bluetooth/BluetoothHearingAid.java @@ -26,6 +26,7 @@ import android.annotation.SystemApi; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.os.Binder; +import android.os.Build; import android.os.IBinder; import android.os.RemoteException; import android.util.Log; @@ -85,7 +86,7 @@ public final class BluetoothHearingAid implements BluetoothProfile { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) public static final String ACTION_ACTIVE_DEVICE_CHANGED = "android.bluetooth.hearingaid.profile.action.ACTIVE_DEVICE_CHANGED"; @@ -302,7 +303,7 @@ public final class BluetoothHearingAid implements BluetoothProfile { * @return false on immediate error, true otherwise * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean setActiveDevice(@Nullable BluetoothDevice device) { if (DBG) log("setActiveDevice(" + device + ")"); final IBluetoothHearingAid service = getService(); @@ -328,7 +329,7 @@ public final class BluetoothHearingAid implements BluetoothProfile { * is not active, it will be null on that position. Returns empty list on error. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @RequiresPermission(Manifest.permission.BLUETOOTH) public @NonNull List<BluetoothDevice> getActiveDevices() { if (VDBG) log("getActiveDevices()"); diff --git a/core/java/android/bluetooth/BluetoothMap.java b/core/java/android/bluetooth/BluetoothMap.java index 14a71c44673b..35549954007e 100644 --- a/core/java/android/bluetooth/BluetoothMap.java +++ b/core/java/android/bluetooth/BluetoothMap.java @@ -24,6 +24,7 @@ import android.annotation.SystemApi; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.os.Binder; +import android.os.Build; import android.os.IBinder; import android.os.RemoteException; import android.util.CloseGuard; @@ -209,7 +210,7 @@ public final class BluetoothMap implements BluetoothProfile, AutoCloseable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean disconnect(BluetoothDevice device) { if (DBG) log("disconnect(" + device + ")"); final IBluetoothMap service = getService(); diff --git a/core/java/android/bluetooth/BluetoothMapClient.java b/core/java/android/bluetooth/BluetoothMapClient.java index df11d3adac01..ff6cffb272a5 100644 --- a/core/java/android/bluetooth/BluetoothMapClient.java +++ b/core/java/android/bluetooth/BluetoothMapClient.java @@ -24,6 +24,7 @@ import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.net.Uri; import android.os.Binder; +import android.os.Build; import android.os.IBinder; import android.os.RemoteException; import android.util.Log; @@ -388,7 +389,7 @@ public final class BluetoothMapClient implements BluetoothProfile { * @param deliveredIntent intent issued when message is delivered * @return true if the message is enqueued, false on error */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean sendMessage(BluetoothDevice device, Uri[] contacts, String message, PendingIntent sentIntent, PendingIntent deliveredIntent) { if (DBG) Log.d(TAG, "sendMessage(" + device + ", " + contacts + ", " + message); diff --git a/core/java/android/bluetooth/BluetoothPan.java b/core/java/android/bluetooth/BluetoothPan.java index 4698b077ff55..f06dad8232fc 100644 --- a/core/java/android/bluetooth/BluetoothPan.java +++ b/core/java/android/bluetooth/BluetoothPan.java @@ -27,6 +27,7 @@ import android.annotation.SystemApi; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.os.Binder; +import android.os.Build; import android.os.IBinder; import android.os.RemoteException; import android.util.Log; @@ -234,7 +235,7 @@ public final class BluetoothPan implements BluetoothProfile { * @return false on immediate error, true otherwise * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean connect(BluetoothDevice device) { if (DBG) log("connect(" + device + ")"); final IBluetoothPan service = getService(); diff --git a/core/java/android/bluetooth/BluetoothPbap.java b/core/java/android/bluetooth/BluetoothPbap.java index d58a89350195..6e5c45f3d129 100644 --- a/core/java/android/bluetooth/BluetoothPbap.java +++ b/core/java/android/bluetooth/BluetoothPbap.java @@ -27,6 +27,7 @@ import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.ServiceConnection; +import android.os.Build; import android.os.IBinder; import android.os.RemoteException; import android.os.UserHandle; @@ -322,7 +323,7 @@ public class BluetoothPbap implements BluetoothProfile { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean disconnect(BluetoothDevice device) { log("disconnect()"); final IBluetoothPbap service = mService; diff --git a/core/java/android/bluetooth/BluetoothProfile.java b/core/java/android/bluetooth/BluetoothProfile.java index 7538df8bbe5f..db851c4f33b9 100644 --- a/core/java/android/bluetooth/BluetoothProfile.java +++ b/core/java/android/bluetooth/BluetoothProfile.java @@ -23,6 +23,7 @@ import android.annotation.RequiresPermission; import android.annotation.SuppressLint; import android.annotation.SystemApi; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -219,7 +220,7 @@ public interface BluetoothProfile { * * @hide **/ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) int PRIORITY_AUTO_CONNECT = 1000; /** diff --git a/core/java/android/bluetooth/BluetoothSap.java b/core/java/android/bluetooth/BluetoothSap.java index 48e8c1ada255..0d70dbdd8427 100644 --- a/core/java/android/bluetooth/BluetoothSap.java +++ b/core/java/android/bluetooth/BluetoothSap.java @@ -21,6 +21,7 @@ import android.annotation.RequiresPermission; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.os.Binder; +import android.os.Build; import android.os.IBinder; import android.os.RemoteException; import android.util.Log; @@ -219,7 +220,7 @@ public final class BluetoothSap implements BluetoothProfile { * @return false on error, true otherwise * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean disconnect(BluetoothDevice device) { if (DBG) log("disconnect(" + device + ")"); final IBluetoothSap service = getService(); diff --git a/core/java/android/bluetooth/BluetoothSocket.java b/core/java/android/bluetooth/BluetoothSocket.java index d41a6d064d1f..65381dbb2372 100644 --- a/core/java/android/bluetooth/BluetoothSocket.java +++ b/core/java/android/bluetooth/BluetoothSocket.java @@ -18,6 +18,7 @@ package android.bluetooth; import android.compat.annotation.UnsupportedAppUsage; import android.net.LocalSocket; +import android.os.Build; import android.os.ParcelFileDescriptor; import android.os.ParcelUuid; import android.os.RemoteException; @@ -111,7 +112,7 @@ public final class BluetoothSocket implements Closeable { public static final int TYPE_L2CAP_LE = 4; /*package*/ static final int EBADFD = 77; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) /*package*/ static final int EADDRINUSE = 98; /*package*/ static final int SEC_FLAG_ENCRYPT = 1; diff --git a/core/java/android/companion/AssociationRequest.java b/core/java/android/companion/AssociationRequest.java index 1f57c7d9d2f1..7733dc14ace4 100644 --- a/core/java/android/companion/AssociationRequest.java +++ b/core/java/android/companion/AssociationRequest.java @@ -19,6 +19,7 @@ package android.companion; import android.annotation.NonNull; import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.provider.OneTimeUseBuilder; @@ -60,14 +61,14 @@ public final class AssociationRequest implements Parcelable { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isSingleDevice() { return mSingleDevice; } /** @hide */ @NonNull - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public List<DeviceFilter<?>> getDeviceFilters() { return mDeviceFilters; } diff --git a/core/java/android/companion/BluetoothDeviceFilter.java b/core/java/android/companion/BluetoothDeviceFilter.java index cf9eeca0d739..04c9693f8908 100644 --- a/core/java/android/companion/BluetoothDeviceFilter.java +++ b/core/java/android/companion/BluetoothDeviceFilter.java @@ -27,6 +27,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.bluetooth.BluetoothDevice; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.ParcelUuid; import android.provider.OneTimeUseBuilder; @@ -100,7 +101,7 @@ public final class BluetoothDeviceFilter implements DeviceFilter<BluetoothDevice /** @hide */ @Nullable - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public String getAddress() { return mAddress; } diff --git a/core/java/android/companion/BluetoothDeviceFilterUtils.java b/core/java/android/companion/BluetoothDeviceFilterUtils.java index 8e687413b7e1..5e2340cee0f9 100644 --- a/core/java/android/companion/BluetoothDeviceFilterUtils.java +++ b/core/java/android/companion/BluetoothDeviceFilterUtils.java @@ -25,6 +25,7 @@ import android.bluetooth.BluetoothDevice; import android.bluetooth.le.ScanFilter; import android.compat.annotation.UnsupportedAppUsage; import android.net.wifi.ScanResult; +import android.os.Build; import android.os.ParcelUuid; import android.os.Parcelable; import android.util.Log; @@ -120,17 +121,17 @@ public class BluetoothDeviceFilterUtils { Log.i(LOG_TAG, getDeviceDisplayNameInternal(device) + (result ? " ~ " : " !~ ") + criteria); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static String getDeviceDisplayNameInternal(@NonNull BluetoothDevice device) { return firstNotEmpty(device.getAlias(), device.getAddress()); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static String getDeviceDisplayNameInternal(@NonNull ScanResult device) { return firstNotEmpty(device.SSID, device.BSSID); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static String getDeviceMacAddress(@NonNull Parcelable device) { if (device instanceof BluetoothDevice) { return ((BluetoothDevice) device).getAddress(); diff --git a/core/java/android/companion/BluetoothLeDeviceFilter.java b/core/java/android/companion/BluetoothLeDeviceFilter.java index 8c071fe99104..129190ee5b65 100644 --- a/core/java/android/companion/BluetoothLeDeviceFilter.java +++ b/core/java/android/companion/BluetoothLeDeviceFilter.java @@ -30,6 +30,7 @@ import android.bluetooth.le.ScanFilter; import android.bluetooth.le.ScanRecord; import android.bluetooth.le.ScanResult; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.provider.OneTimeUseBuilder; import android.text.TextUtils; @@ -94,7 +95,7 @@ public final class BluetoothLeDeviceFilter implements DeviceFilter<ScanResult> { /** @hide */ @NonNull - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public ScanFilter getScanFilter() { return mScanFilter; } diff --git a/core/java/android/companion/DeviceFilter.java b/core/java/android/companion/DeviceFilter.java index c9cb072904b4..37191a246f00 100644 --- a/core/java/android/companion/DeviceFilter.java +++ b/core/java/android/companion/DeviceFilter.java @@ -20,6 +20,7 @@ package android.companion; import android.annotation.IntDef; import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcelable; import java.lang.annotation.Retention; @@ -45,11 +46,11 @@ public interface DeviceFilter<D extends Parcelable> extends Parcelable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) boolean matches(D device); /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) String getDeviceDisplayName(D device); /** @hide */ diff --git a/core/java/android/companion/IFindDeviceCallback.aidl b/core/java/android/companion/IFindDeviceCallback.aidl index 405277b50f5b..a3a47a9fc857 100644 --- a/core/java/android/companion/IFindDeviceCallback.aidl +++ b/core/java/android/companion/IFindDeviceCallback.aidl @@ -20,7 +20,7 @@ import android.app.PendingIntent; /** @hide */ interface IFindDeviceCallback { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) oneway void onSuccess(in PendingIntent launcher); oneway void onFailure(in CharSequence reason); } diff --git a/core/java/android/content/ComponentName.java b/core/java/android/content/ComponentName.java index 1967a01549c9..9286c91ca3bb 100644 --- a/core/java/android/content/ComponentName.java +++ b/core/java/android/content/ComponentName.java @@ -19,6 +19,7 @@ package android.content; import android.annotation.NonNull; import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.text.TextUtils; @@ -241,14 +242,14 @@ public final class ComponentName implements Parcelable, Cloneable, Comparable<Co } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static void appendShortString(StringBuilder sb, String packageName, String className) { sb.append(packageName).append('/'); appendShortClassName(sb, packageName, className); } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static void printShortString(PrintWriter pw, String packageName, String className) { pw.print(packageName); pw.print('/'); diff --git a/core/java/android/content/ContentProvider.java b/core/java/android/content/ContentProvider.java index 33be50d34777..586519300762 100644 --- a/core/java/android/content/ContentProvider.java +++ b/core/java/android/content/ContentProvider.java @@ -129,7 +129,7 @@ public abstract class ContentProvider implements ContentInterface, ComponentCall // performance. @UnsupportedAppUsage private String mAuthority; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private String[] mAuthorities; @UnsupportedAppUsage private String mReadPermission; @@ -2341,7 +2341,7 @@ public abstract class ContentProvider implements ContentInterface, ComponentCall * when directly instantiating the provider for testing. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void attachInfoForTesting(Context context, ProviderInfo info) { attachInfo(context, info, true); } diff --git a/core/java/android/content/ContentResolver.java b/core/java/android/content/ContentResolver.java index 2d0c7e459c5b..a941756595ad 100644 --- a/core/java/android/content/ContentResolver.java +++ b/core/java/android/content/ContentResolver.java @@ -49,6 +49,7 @@ import android.graphics.Point; import android.graphics.drawable.Drawable; import android.graphics.drawable.Icon; import android.net.Uri; +import android.os.Build; import android.os.Bundle; import android.os.CancellationSignal; import android.os.DeadObjectException; @@ -567,7 +568,7 @@ public abstract class ContentResolver implements ContentInterface { public static final String MIME_TYPE_DEFAULT = ClipDescription.MIMETYPE_UNKNOWN; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int SYNC_ERROR_SYNC_ALREADY_IN_PROGRESS = 1; /** @hide */ public static final int SYNC_ERROR_AUTHENTICATION = 2; @@ -624,7 +625,7 @@ public abstract class ContentResolver implements ContentInterface { public static final int SYNC_OBSERVER_TYPE_PENDING = 1<<1; public static final int SYNC_OBSERVER_TYPE_ACTIVE = 1<<2; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int SYNC_OBSERVER_TYPE_STATUS = 1<<3; /** @hide */ public static final int SYNC_OBSERVER_TYPE_ALL = 0x7fffffff; @@ -3534,7 +3535,7 @@ public abstract class ContentResolver implements ContentInterface { * @see #getSyncStatus(Account, String) * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static SyncStatusInfo getSyncStatusAsUser(Account account, String authority, @UserIdInt int userId) { try { diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java index 392dd64b3e49..a98bd6a3a492 100644 --- a/core/java/android/content/Context.java +++ b/core/java/android/content/Context.java @@ -1916,7 +1916,7 @@ public abstract class Context { * {@link #startActivityForResult(String, Intent, int, Bundle)}. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean canStartActivityForResult() { return false; } @@ -2416,7 +2416,7 @@ public abstract class Context { * @hide */ @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS) - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public abstract void sendBroadcastAsUser(@RequiresPermission Intent intent, UserHandle user, @Nullable String receiverPermission, int appOp); @@ -2462,7 +2462,7 @@ public abstract class Context { * @hide */ @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS) - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public abstract void sendOrderedBroadcastAsUser(Intent intent, UserHandle user, @Nullable String receiverPermission, int appOp, BroadcastReceiver resultReceiver, @Nullable Handler scheduler, int initialCode, @Nullable String initialData, @@ -5191,7 +5191,7 @@ public abstract class Context { /** @hide */ @PackageManager.PermissionResult - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public abstract int checkPermission(@NonNull String permission, int pid, int uid, IBinder callerToken); diff --git a/core/java/android/content/ContextWrapper.java b/core/java/android/content/ContextWrapper.java index 89abfc95d634..3d724f0a2d48 100644 --- a/core/java/android/content/ContextWrapper.java +++ b/core/java/android/content/ContextWrapper.java @@ -35,6 +35,7 @@ import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.graphics.Bitmap; import android.graphics.drawable.Drawable; import android.net.Uri; +import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.IBinder; @@ -739,7 +740,7 @@ public class ContextWrapper extends Context { /** @hide */ @Override - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public ComponentName startForegroundServiceAsUser(Intent service, UserHandle user) { return mBase.startForegroundServiceAsUser(service, user); } @@ -942,7 +943,7 @@ public class ContextWrapper extends Context { /** @hide */ @Override - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Context createApplicationContext(ApplicationInfo application, int flags) throws PackageManager.NameNotFoundException { return mBase.createApplicationContext(application, flags); diff --git a/core/java/android/content/CursorLoader.java b/core/java/android/content/CursorLoader.java index 4ff5ccabbcb7..fda646c7f99c 100644 --- a/core/java/android/content/CursorLoader.java +++ b/core/java/android/content/CursorLoader.java @@ -19,6 +19,7 @@ package android.content; import android.compat.annotation.UnsupportedAppUsage; import android.database.Cursor; import android.net.Uri; +import android.os.Build; import android.os.CancellationSignal; import android.os.OperationCanceledException; @@ -45,7 +46,7 @@ import java.util.Arrays; */ @Deprecated public class CursorLoader extends AsyncTaskLoader<Cursor> { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) final ForceLoadContentObserver mObserver; Uri mUri; @@ -55,7 +56,7 @@ public class CursorLoader extends AsyncTaskLoader<Cursor> { String mSortOrder; Cursor mCursor; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) CancellationSignal mCancellationSignal; /* Runs on a worker thread */ diff --git a/core/java/android/content/IContentProvider.java b/core/java/android/content/IContentProvider.java index 84b0f0e80bab..becba67a0198 100644 --- a/core/java/android/content/IContentProvider.java +++ b/core/java/android/content/IContentProvider.java @@ -152,7 +152,7 @@ public interface IContentProvider extends IInterface { @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) static final String descriptor = "android.content.IContentProvider"; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) static final int QUERY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION; static final int GET_TYPE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION + 1; static final int INSERT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION + 2; diff --git a/core/java/android/content/IContentService.aidl b/core/java/android/content/IContentService.aidl index 03c99e1a2344..2044fc02a7e5 100644 --- a/core/java/android/content/IContentService.aidl +++ b/core/java/android/content/IContentService.aidl @@ -61,7 +61,7 @@ interface IContentService { */ void sync(in SyncRequest request, String callingPackage); void syncAsUser(in SyncRequest request, int userId, String callingPackage); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void cancelSync(in Account account, String authority, in ComponentName cname); void cancelSyncAsUser(in Account account, String authority, in ComponentName cname, int userId); @@ -159,7 +159,7 @@ interface IContentService { * @param cname component to identify sync service, must be null if account/providerName are * non-null. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) boolean isSyncActive(in Account account, String authority, in ComponentName cname); /** diff --git a/core/java/android/content/ISyncAdapter.aidl b/core/java/android/content/ISyncAdapter.aidl index 9242d0289cfa..55210d4aa119 100644 --- a/core/java/android/content/ISyncAdapter.aidl +++ b/core/java/android/content/ISyncAdapter.aidl @@ -32,7 +32,7 @@ oneway interface ISyncAdapter { * * @param cb If called back with {@code false} accounts are not synced. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void onUnsyncableAccount(ISyncAdapterUnsyncableAccountCallback cb); /** diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java index fbc3cc2eaeaa..6bfc12d8d19e 100644 --- a/core/java/android/content/Intent.java +++ b/core/java/android/content/Intent.java @@ -2337,7 +2337,7 @@ public class Intent implements Parcelable, Cloneable { * @hide */ @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String ACTION_ALARM_CHANGED = "android.intent.action.ALARM_CHANGED"; /** @@ -3675,7 +3675,7 @@ public class Intent implements Parcelable, Cloneable { * {@link android.Manifest.permission#MANAGE_USERS} to receive this broadcast. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String ACTION_USER_SWITCHED = "android.intent.action.USER_SWITCHED"; @@ -7382,7 +7382,7 @@ public class Intent implements Parcelable, Cloneable { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static Intent parseCommandArgs(ShellCommand cmd, CommandOptionHandler optionHandler) throws URISyntaxException { Intent intent = new Intent(); @@ -7773,7 +7773,7 @@ public class Intent implements Parcelable, Cloneable { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static void printIntentArgsHelp(PrintWriter pw, String prefix) { final String[] lines = new String[] { "<INTENT> specifications include these flags and arguments:", @@ -8063,7 +8063,7 @@ public class Intent implements Parcelable, Cloneable { } /** {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setAllowFds(boolean allowFds) { if (mExtras != null) { mExtras.setAllowFds(allowFds); @@ -10410,7 +10410,7 @@ public class Intent implements Parcelable, Cloneable { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public String toInsecureString() { StringBuilder b = new StringBuilder(128); @@ -11093,7 +11093,7 @@ public class Intent implements Parcelable, Cloneable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void prepareToLeaveProcess(Context context) { final boolean leavingPackage = (mComponent == null) || !Objects.equals(mComponent.getPackageName(), context.getPackageName()); diff --git a/core/java/android/content/IntentFilter.java b/core/java/android/content/IntentFilter.java index ee9bd3d259fb..79b0b02b03a8 100644 --- a/core/java/android/content/IntentFilter.java +++ b/core/java/android/content/IntentFilter.java @@ -562,7 +562,7 @@ public class IntentFilter implements Parcelable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final void setAutoVerify(boolean autoVerify) { mVerifyState &= ~STATE_VERIFY_AUTO; if (autoVerify) mVerifyState |= STATE_VERIFY_AUTO; @@ -942,7 +942,7 @@ public class IntentFilter implements Parcelable { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final boolean hasExactDataType(String type) { return mDataTypes != null && mDataTypes.contains(type); } @@ -1287,7 +1287,7 @@ public class IntentFilter implements Parcelable { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final boolean hasDataSchemeSpecificPart(PatternMatcher ssp) { if (mDataSchemeSpecificParts == null) { return false; @@ -1371,7 +1371,7 @@ public class IntentFilter implements Parcelable { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final boolean hasDataAuthority(AuthorityEntry auth) { if (mDataAuthorities == null) { return false; @@ -1480,7 +1480,7 @@ public class IntentFilter implements Parcelable { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final boolean hasDataPath(PatternMatcher path) { if (mDataPaths == null) { return false; diff --git a/core/java/android/content/SyncAdapterType.java b/core/java/android/content/SyncAdapterType.java index 7bcdbfd1085c..4acf6f2265e0 100644 --- a/core/java/android/content/SyncAdapterType.java +++ b/core/java/android/content/SyncAdapterType.java @@ -35,11 +35,11 @@ public class SyncAdapterType implements Parcelable { private final boolean userVisible; @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) private final boolean supportsUploading; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final boolean isAlwaysSyncable; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final boolean allowParallelSyncs; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final String settingsActivity; private final String packageName; diff --git a/core/java/android/content/UndoManager.java b/core/java/android/content/UndoManager.java index ed9cd86927ae..87afbf874b37 100644 --- a/core/java/android/content/UndoManager.java +++ b/core/java/android/content/UndoManager.java @@ -17,6 +17,7 @@ package android.content; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.text.TextUtils; import android.util.ArrayMap; @@ -85,11 +86,11 @@ public class UndoManager { */ public static final int MERGE_MODE_ANY = 2; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public UndoManager() { } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public UndoOwner getOwner(String tag, Object data) { if (tag == null) { throw new NullPointerException("tag can't be null"); @@ -126,7 +127,7 @@ public class UndoManager { * Flatten the current undo state into a Parcel object, which can later be restored * with {@link #restoreInstanceState(android.os.Parcel, java.lang.ClassLoader)}. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void saveInstanceState(Parcel p) { if (mUpdateCount > 0) { throw new IllegalStateException("Can't save state while updating"); @@ -175,7 +176,7 @@ public class UndoManager { * associated with each {@link UndoOwner}, which requires separate calls to * {@link #getOwner(String, Object)} to re-associate the owner with its data. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void restoreInstanceState(Parcel p, ClassLoader loader) { if (mUpdateCount > 0) { throw new IllegalStateException("Can't save state while updating"); @@ -236,7 +237,7 @@ public class UndoManager { * @param count Number of undo states to pop. * @return Returns the number of undo states that were actually popped. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int undo(UndoOwner[] owners, int count) { if (mWorking != null) { throw new IllegalStateException("Can't be called during an update"); @@ -274,7 +275,7 @@ public class UndoManager { * @param count Number of undo states to pop. * @return Returns the number of undo states that were actually redone. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int redo(UndoOwner[] owners, int count) { if (mWorking != null) { throw new IllegalStateException("Can't be called during an update"); @@ -303,12 +304,12 @@ public class UndoManager { * useful for editors to know whether they should be generating new undo state * when they see edit operations happening. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isInUndo() { return mInUndo; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int forgetUndos(UndoOwner[] owners, int count) { if (count < 0) { count = mUndos.size(); @@ -330,7 +331,7 @@ public class UndoManager { return removed; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int forgetRedos(UndoOwner[] owners, int count) { if (count < 0) { count = mRedos.size(); @@ -357,7 +358,7 @@ public class UndoManager { * @param owners If non-null, only those states containing an operation with one of * the owners supplied here will be counted. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int countUndos(UndoOwner[] owners) { if (owners == null) { return mUndos.size(); @@ -377,7 +378,7 @@ public class UndoManager { * @param owners If non-null, only those states containing an operation with one of * the owners supplied here will be counted. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int countRedos(UndoOwner[] owners) { if (owners == null) { return mRedos.size(); @@ -417,7 +418,7 @@ public class UndoManager { * they are all matched by a later call to {@link #endUpdate}. * @param label Optional user-visible label for this new undo state. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void beginUpdate(CharSequence label) { if (mInUndo) { throw new IllegalStateException("Can't being update while performing undo/redo"); @@ -450,7 +451,7 @@ public class UndoManager { * Forcibly set a new for the new undo state being built within a {@link #beginUpdate}. * Any existing label will be replaced with this one. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setUndoLabel(CharSequence label) { if (mWorking == null) { throw new IllegalStateException("Must be called during an update"); @@ -525,7 +526,7 @@ public class UndoManager { * @param mergeMode May be either {@link #MERGE_MODE_NONE}, {@link #MERGE_MODE_UNIQUE}, * or {@link #MERGE_MODE_ANY}. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public <T extends UndoOperation> T getLastOperation(Class<T> clazz, UndoOwner owner, int mergeMode) { if (mWorking == null) { @@ -555,7 +556,7 @@ public class UndoManager { * @param mergeMode May be either {@link #MERGE_MODE_NONE}, {@link #MERGE_MODE_UNIQUE}, * or {@link #MERGE_MODE_ANY}. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void addOperation(UndoOperation<?> op, int mergeMode) { if (mWorking == null) { throw new IllegalStateException("Must be called during an update"); @@ -582,7 +583,7 @@ public class UndoManager { * Finish the creation of an undo state, matching a previous call to * {@link #beginUpdate}. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void endUpdate() { if (mWorking == null) { throw new IllegalStateException("Must be called during an update"); @@ -631,7 +632,7 @@ public class UndoManager { * @return Returns an integer identifier for the committed undo state, which * can later be used to try to uncommit the state to perform further edits on it. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int commitState(UndoOwner owner) { if (mWorking != null && mWorking.hasData()) { if (owner == null || mWorking.hasOperation(owner)) { diff --git a/core/java/android/content/UndoOperation.java b/core/java/android/content/UndoOperation.java index 235d72123ff6..25aeca3290f3 100644 --- a/core/java/android/content/UndoOperation.java +++ b/core/java/android/content/UndoOperation.java @@ -17,6 +17,7 @@ package android.content; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -35,7 +36,7 @@ public abstract class UndoOperation<DATA> implements Parcelable { * @param owner Who owns the data being modified by this undo state; must be * returned by {@link UndoManager#getOwner(String, Object) UndoManager.getOwner}. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public UndoOperation(UndoOwner owner) { mOwner = owner; } @@ -43,7 +44,7 @@ public abstract class UndoOperation<DATA> implements Parcelable { /** * Construct from a Parcel. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) protected UndoOperation(Parcel src, ClassLoader loader) { } diff --git a/core/java/android/content/om/IOverlayManager.aidl b/core/java/android/content/om/IOverlayManager.aidl index 3d7e3befd9f1..44b5c4482599 100644 --- a/core/java/android/content/om/IOverlayManager.aidl +++ b/core/java/android/content/om/IOverlayManager.aidl @@ -37,7 +37,7 @@ interface IOverlayManager { * mapped to lists of overlays; if no overlays exist for the * requested user, an empty map is returned. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) Map getAllOverlays(in int userId); /** @@ -61,7 +61,7 @@ interface IOverlayManager { * @return The OverlayInfo for the overlay package; or null if no such * overlay package exists. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) OverlayInfo getOverlayInfo(in String packageName, in int userId); /** diff --git a/core/java/android/content/om/OverlayInfo.java b/core/java/android/content/om/OverlayInfo.java index 62815ddcfc19..517e4bda68d7 100644 --- a/core/java/android/content/om/OverlayInfo.java +++ b/core/java/android/content/om/OverlayInfo.java @@ -22,6 +22,7 @@ import android.annotation.Nullable; import android.annotation.SystemApi; import android.annotation.UserIdInt; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -174,7 +175,7 @@ public final class OverlayInfo implements Parcelable { * The state of this OverlayInfo as defined by the STATE_* constants in this class. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final @State int state; /** diff --git a/core/java/android/content/pm/ActivityInfo.java b/core/java/android/content/pm/ActivityInfo.java index 31c77eeb5424..5fcc18c6c3e7 100644 --- a/core/java/android/content/pm/ActivityInfo.java +++ b/core/java/android/content/pm/ActivityInfo.java @@ -24,6 +24,7 @@ import android.content.Intent; import android.content.res.Configuration; import android.content.res.Configuration.NativeConfig; import android.content.res.TypedArray; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.util.Printer; @@ -373,7 +374,7 @@ public class ActivityInfo extends ComponentInfo implements Parcelable { * {@link android.R.attr#showForAllUsers} attribute. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int FLAG_SHOW_FOR_ALL_USERS = 0x0400; /** * Bit in {@link #flags} corresponding to an immersive activity @@ -502,7 +503,7 @@ public class ActivityInfo extends ComponentInfo implements Parcelable { * this activity is launched into such a container a SecurityException will be * thrown. Set from the {@link android.R.attr#allowEmbedded} attribute. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int FLAG_ALLOW_EMBEDDED = 0x80000000; /** @@ -859,7 +860,7 @@ public class ActivityInfo extends ComponentInfo implements Parcelable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static @NativeConfig int activityInfoConfigJavaToNative(@Config int input) { int output = 0; for (int i = 0; i < CONFIG_NATIVE_BITS.length; i++) { diff --git a/core/java/android/content/pm/ApplicationInfo.java b/core/java/android/content/pm/ApplicationInfo.java index 8f4fc261df37..1cca53f369fa 100644 --- a/core/java/android/content/pm/ApplicationInfo.java +++ b/core/java/android/content/pm/ApplicationInfo.java @@ -128,7 +128,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int fullBackupContent = 0; /** @@ -2236,7 +2236,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { /** {@hide} */ public void setGwpAsanMode(@GwpAsanMode int value) { gwpAsanMode = value; } /** {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public String getCodePath() { return scanSourceDir; } /** {@hide} */ public String getBaseCodePath() { return sourceDir; } /** {@hide} */ public String[] getSplitCodePaths() { return splitSourceDirs; } diff --git a/core/java/android/content/pm/BaseParceledListSlice.java b/core/java/android/content/pm/BaseParceledListSlice.java index bd847bfdb719..5c7a5488076b 100644 --- a/core/java/android/content/pm/BaseParceledListSlice.java +++ b/core/java/android/content/pm/BaseParceledListSlice.java @@ -18,6 +18,7 @@ package android.content.pm; import android.compat.annotation.UnsupportedAppUsage; import android.os.Binder; +import android.os.Build; import android.os.IBinder; import android.os.Parcel; import android.os.Parcelable; @@ -133,7 +134,7 @@ abstract class BaseParceledListSlice<T> implements Parcelable { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public List<T> getList() { return mList; } @@ -207,7 +208,7 @@ abstract class BaseParceledListSlice<T> implements Parcelable { protected abstract void writeElement(T parcelable, Parcel reply, int callFlags); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) protected abstract void writeParcelableCreator(T parcelable, Parcel dest); protected abstract Parcelable.Creator<?> readParcelableCreator(Parcel from, ClassLoader loader); diff --git a/core/java/android/content/pm/ComponentInfo.java b/core/java/android/content/pm/ComponentInfo.java index 628bcd70cdf6..c67d00e88707 100644 --- a/core/java/android/content/pm/ComponentInfo.java +++ b/core/java/android/content/pm/ComponentInfo.java @@ -19,6 +19,7 @@ package android.content.pm; import android.compat.annotation.UnsupportedAppUsage; import android.content.ComponentName; import android.graphics.drawable.Drawable; +import android.os.Build; import android.os.Parcel; import android.util.Printer; @@ -158,7 +159,7 @@ public class ComponentInfo extends PackageItemInfo { } /** {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public ComponentName getComponentName() { return new ComponentName(packageName, name); } diff --git a/core/java/android/content/pm/IPackageInstaller.aidl b/core/java/android/content/pm/IPackageInstaller.aidl index 010589617e09..58b2147738c4 100644 --- a/core/java/android/content/pm/IPackageInstaller.aidl +++ b/core/java/android/content/pm/IPackageInstaller.aidl @@ -47,7 +47,7 @@ interface IPackageInstaller { void registerCallback(IPackageInstallerCallback callback, int userId); void unregisterCallback(IPackageInstallerCallback callback); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void uninstall(in VersionedPackage versionedPackage, String callerPackageName, int flags, in IntentSender statusReceiver, int userId); diff --git a/core/java/android/content/pm/IPackageManager.aidl b/core/java/android/content/pm/IPackageManager.aidl index 2138f53e9f54..bd6edb4f4431 100644 --- a/core/java/android/content/pm/IPackageManager.aidl +++ b/core/java/android/content/pm/IPackageManager.aidl @@ -64,7 +64,7 @@ import android.content.IntentSender; */ interface IPackageManager { void checkPackageStartable(String packageName, int userId); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) boolean isPackageAvailable(String packageName, int userId); @UnsupportedAppUsage PackageInfo getPackageInfo(String packageName, int flags, int userId); @@ -132,7 +132,7 @@ interface IPackageManager { boolean canForwardTo(in Intent intent, String resolvedType, int sourceUserId, int targetUserId); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) ParceledListSlice queryIntentActivities(in Intent intent, String resolvedType, int flags, int userId); @@ -177,7 +177,7 @@ interface IPackageManager { * limit that kicks in when flags are included that bloat up the data * returned. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) ParceledListSlice getInstalledApplications(int flags, int userId); /** @@ -198,7 +198,7 @@ interface IPackageManager { * @param outInfo Filled in with a list of the ProviderInfo for each * name in 'outNames'. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void querySyncProviders(inout List<String> outNames, inout List<ProviderInfo> outInfo); @@ -209,7 +209,7 @@ interface IPackageManager { InstrumentationInfo getInstrumentationInfo( in ComponentName className, int flags); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) ParceledListSlice queryInstrumentation( String targetPackage, int flags); @@ -645,7 +645,7 @@ interface IPackageManager { void setSystemAppHiddenUntilInstalled(String packageName, boolean hidden); boolean setSystemAppInstallState(String packageName, boolean installed, int userId); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) IPackageInstaller getPackageInstaller(); boolean setBlockUninstallForUser(String packageName, boolean blockUninstall, int userId); @@ -657,7 +657,7 @@ interface IPackageManager { boolean isPackageSignedByKeySet(String packageName, in KeySet ks); boolean isPackageSignedByKeySetExactly(String packageName, in KeySet ks); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) String getPermissionControllerPackageName(); ParceledListSlice getInstantApps(int userId); @@ -674,9 +674,9 @@ interface IPackageManager { */ void setUpdateAvailable(String packageName, boolean updateAvaialble); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) String getServicesSystemSharedLibraryPackageName(); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) String getSharedSystemSharedLibraryPackageName(); ChangedPackages getChangedPackages(int sequenceNumber, int userId); @@ -752,7 +752,7 @@ interface IPackageManager { //------------------------------------------------------------------------ // We need to keep these in IPackageManager for app compatibility //------------------------------------------------------------------------ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) String[] getAppOpPermissionPackages(String permissionName); @UnsupportedAppUsage @@ -767,10 +767,10 @@ interface IPackageManager { @UnsupportedAppUsage void removePermission(String name); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) int checkPermission(String permName, String pkgName, int userId); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void grantRuntimePermission(String packageName, String permissionName, int userId); //------------------------------------------------------------------------ diff --git a/core/java/android/content/pm/PackageInstaller.java b/core/java/android/content/pm/PackageInstaller.java index 6a553cf2fafd..47f84c823fc4 100644 --- a/core/java/android/content/pm/PackageInstaller.java +++ b/core/java/android/content/pm/PackageInstaller.java @@ -1467,13 +1467,13 @@ public class PackageInstaller { /** {@hide} */ public @InstallReason int installReason = PackageManager.INSTALL_REASON_UNKNOWN; /** {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public long sizeBytes = -1; /** {@hide} */ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) public String appPackageName; /** {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Bitmap appIcon; /** {@hide} */ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) @@ -1483,7 +1483,7 @@ public class PackageInstaller { /** {@hide} */ public Uri originatingUri; /** {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int originatingUid = UID_UNKNOWN; /** {@hide} */ public Uri referrerUri; @@ -2109,13 +2109,13 @@ public class PackageInstaller { @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) public String installerPackageName; /** {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public String resolvedBaseCodePath; /** {@hide} */ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) public float progress; /** {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean sealed; /** {@hide} */ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) @@ -2188,7 +2188,7 @@ public class PackageInstaller { public int rollbackDataPolicy; /** {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public SessionInfo() { } diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java index fbda3ff00146..dbddc2217273 100644 --- a/core/java/android/content/pm/PackageManager.java +++ b/core/java/android/content/pm/PackageManager.java @@ -1768,7 +1768,7 @@ public abstract class PackageManager { * @hide */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int MOVE_INTERNAL = 0x00000001; /** @@ -1777,7 +1777,7 @@ public abstract class PackageManager { * @hide */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int MOVE_EXTERNAL_MEDIA = 0x00000002; /** {@hide} */ @@ -3589,7 +3589,7 @@ public abstract class PackageManager { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @TestApi public static final String SYSTEM_SHARED_LIBRARY_SERVICES = "android.ext.services"; @@ -3602,7 +3602,7 @@ public abstract class PackageManager { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @TestApi public static final String SYSTEM_SHARED_LIBRARY_SHARED = "android.ext.shared"; @@ -7289,14 +7289,14 @@ public abstract class PackageManager { public abstract void unregisterMoveCallback(@NonNull MoveCallback callback); /** {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public abstract int movePackage(@NonNull String packageName, @NonNull VolumeInfo vol); /** {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public abstract @Nullable VolumeInfo getPackageCurrentVolume(@NonNull ApplicationInfo app); /** {@hide} */ @NonNull - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public abstract List<VolumeInfo> getPackageCandidateVolumes( @NonNull ApplicationInfo app); @@ -7387,7 +7387,7 @@ public abstract class PackageManager { /** {@hide} */ @NonNull - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static String installStatusToString(int status, @Nullable String msg) { final String str = installStatusToString(status); if (msg != null) { diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java index a30a6525fab5..f53ec8a04493 100644 --- a/core/java/android/content/pm/PackageParser.java +++ b/core/java/android/content/pm/PackageParser.java @@ -298,7 +298,7 @@ public class PackageParser { public String[] mSeparateProcesses; private boolean mOnlyCoreApps; private DisplayMetrics mMetrics; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Callback mCallback; private File mCacheDir; @@ -1369,7 +1369,7 @@ public class PackageParser { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static void collectCertificates(Package pkg, File apkFile, boolean skipVerify) throws PackageParserException { final String apkPath = apkFile.getAbsolutePath(); @@ -6565,7 +6565,7 @@ public class PackageParser { } /** set the signing certificates by which the APK proved it can be authenticated */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Builder setPastSigningCertificates(Signature[] pastSigningCertificates) { mPastSigningCertificates = pastSigningCertificates; return this; @@ -6779,9 +6779,9 @@ public class PackageParser { /** * Data used to feed the KeySetManagerService */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public ArraySet<String> mUpgradeKeySets; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public ArrayMap<String, ArraySet<PublicKey>> mKeySetMapping; /** diff --git a/core/java/android/content/pm/ParceledListSlice.java b/core/java/android/content/pm/ParceledListSlice.java index 73119e05095b..b54bc5daf31f 100644 --- a/core/java/android/content/pm/ParceledListSlice.java +++ b/core/java/android/content/pm/ParceledListSlice.java @@ -62,7 +62,7 @@ public class ParceledListSlice<T extends Parcelable> extends BaseParceledListSli } @Override - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) protected void writeParcelableCreator(T parcelable, Parcel dest) { dest.writeParcelableCreator((Parcelable) parcelable); } diff --git a/core/java/android/content/pm/PermissionInfo.java b/core/java/android/content/pm/PermissionInfo.java index 474279b20352..db6914bd18b8 100644 --- a/core/java/android/content/pm/PermissionInfo.java +++ b/core/java/android/content/pm/PermissionInfo.java @@ -23,6 +23,7 @@ import android.annotation.StringRes; import android.annotation.SystemApi; import android.annotation.TestApi; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.text.TextUtils; @@ -443,7 +444,7 @@ public class PermissionInfo extends PackageItemInfo implements Parcelable { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static @NonNull String protectionToString(int level) { String protLevel = "????"; switch (level & PROTECTION_MASK_BASE) { diff --git a/core/java/android/content/pm/ResolveInfo.java b/core/java/android/content/pm/ResolveInfo.java index 4f2bf65adfca..fe8e4d7b1bb2 100644 --- a/core/java/android/content/pm/ResolveInfo.java +++ b/core/java/android/content/pm/ResolveInfo.java @@ -21,6 +21,7 @@ import android.compat.annotation.UnsupportedAppUsage; import android.content.ComponentName; import android.content.IntentFilter; import android.graphics.drawable.Drawable; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.os.UserHandle; @@ -183,7 +184,7 @@ public class ResolveInfo implements Parcelable { public boolean handleAllWebDataURI; /** {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public ComponentInfo getComponentInfo() { if (activityInfo != null) return activityInfo; if (serviceInfo != null) return serviceInfo; diff --git a/core/java/android/content/pm/VerifierInfo.java b/core/java/android/content/pm/VerifierInfo.java index 5f8855572ef0..3e69ff555946 100644 --- a/core/java/android/content/pm/VerifierInfo.java +++ b/core/java/android/content/pm/VerifierInfo.java @@ -17,6 +17,7 @@ package android.content.pm; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -44,7 +45,7 @@ public class VerifierInfo implements Parcelable { * not be {@code null} or empty. * @throws IllegalArgumentException if either argument is null or empty. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public VerifierInfo(String packageName, PublicKey publicKey) { if (packageName == null || packageName.length() == 0) { throw new IllegalArgumentException("packageName must not be null or empty"); diff --git a/core/java/android/content/res/AssetManager.java b/core/java/android/content/res/AssetManager.java index ca5aa36861b4..36986dea02a1 100644 --- a/core/java/android/content/res/AssetManager.java +++ b/core/java/android/content/res/AssetManager.java @@ -28,6 +28,7 @@ import android.compat.annotation.UnsupportedAppUsage; import android.content.pm.ActivityInfo; import android.content.res.Configuration.NativeConfig; import android.content.res.loader.ResourcesLoader; +import android.os.Build; import android.os.ParcelFileDescriptor; import android.util.ArraySet; import android.util.Log; @@ -955,7 +956,7 @@ public final class AssetManager implements AutoCloseable { * @see #open(String, int) * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public @NonNull InputStream openNonAsset(@NonNull String fileName, int accessMode) throws IOException { return openNonAsset(0, fileName, accessMode); @@ -968,7 +969,7 @@ public final class AssetManager implements AutoCloseable { * @param fileName Name of the asset to retrieve. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public @NonNull InputStream openNonAsset(int cookie, @NonNull String fileName) throws IOException { return openNonAsset(cookie, fileName, ACCESS_STREAMING); @@ -1105,7 +1106,7 @@ public final class AssetManager implements AutoCloseable { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) void applyStyle(long themePtr, @AttrRes int defStyleAttr, @StyleRes int defStyleRes, @Nullable XmlBlock.Parser parser, @NonNull int[] inAttrs, long outValuesAddress, long outIndicesAddress) { @@ -1128,7 +1129,7 @@ public final class AssetManager implements AutoCloseable { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) boolean resolveAttrs(long themePtr, @AttrRes int defStyleAttr, @StyleRes int defStyleRes, @Nullable int[] inValues, @NonNull int[] inAttrs, @NonNull int[] outValues, @NonNull int[] outIndices) { @@ -1144,7 +1145,7 @@ public final class AssetManager implements AutoCloseable { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) boolean retrieveAttributes(@NonNull XmlBlock.Parser parser, @NonNull int[] inAttrs, @NonNull int[] outValues, @NonNull int[] outIndices) { Objects.requireNonNull(parser, "parser"); @@ -1186,7 +1187,7 @@ public final class AssetManager implements AutoCloseable { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) void setThemeTo(long dstThemePtr, @NonNull AssetManager srcAssetManager, long srcThemePtr) { synchronized (this) { ensureValidLocked(); diff --git a/core/java/android/content/res/ColorStateList.java b/core/java/android/content/res/ColorStateList.java index f23c802d98e2..921c63025a57 100644 --- a/core/java/android/content/res/ColorStateList.java +++ b/core/java/android/content/res/ColorStateList.java @@ -23,6 +23,7 @@ import android.compat.annotation.UnsupportedAppUsage; import android.content.pm.ActivityInfo.Config; import android.content.res.Resources.Theme; import android.graphics.Color; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.util.AttributeSet; @@ -480,7 +481,7 @@ public class ColorStateList extends ComplexColor implements Parcelable { * @hide only for resource preloading */ @Override - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public ColorStateList obtainForTheme(Theme t) { if (t == null || !canApplyTheme()) { return this; @@ -643,7 +644,7 @@ public class ColorStateList extends ComplexColor implements Parcelable { /** * Updates the default color and opacity. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private void onColorsChanged() { int defaultColor = DEFAULT_COLOR; boolean isOpaque = true; diff --git a/core/java/android/content/res/CompatibilityInfo.java b/core/java/android/content/res/CompatibilityInfo.java index c66c70a20729..8aefa6e0ea33 100644 --- a/core/java/android/content/res/CompatibilityInfo.java +++ b/core/java/android/content/res/CompatibilityInfo.java @@ -506,7 +506,7 @@ public class CompatibilityInfo implements Parcelable { * @param outDm If non-null the width and height will be set to their scaled values. * @return Returns the scaling factor for the window. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static float computeCompatibleScaling(DisplayMetrics dm, DisplayMetrics outDm) { final int width = dm.noncompatWidthPixels; final int height = dm.noncompatHeightPixels; diff --git a/core/java/android/content/res/Configuration.java b/core/java/android/content/res/Configuration.java index 89653b344968..ccb8c446acb1 100644 --- a/core/java/android/content/res/Configuration.java +++ b/core/java/android/content/res/Configuration.java @@ -816,7 +816,7 @@ public final class Configuration implements Parcelable, Comparable<Configuration * {@link ActivityInfo#CONFIG_ASSETS_PATHS}. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @TestApi public int assetsSeq; @@ -2272,7 +2272,7 @@ public final class Configuration implements Parcelable, Comparable<Configuration * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static String resourceQualifierString(Configuration config) { return resourceQualifierString(config, null); } diff --git a/core/java/android/content/res/DrawableCache.java b/core/java/android/content/res/DrawableCache.java index 5497e61fa2e9..d0ebe3304065 100644 --- a/core/java/android/content/res/DrawableCache.java +++ b/core/java/android/content/res/DrawableCache.java @@ -18,6 +18,7 @@ package android.content.res; import android.compat.annotation.UnsupportedAppUsage; import android.graphics.drawable.Drawable; +import android.os.Build; /** * Class which can be used to cache Drawable resources against a theme. @@ -37,7 +38,7 @@ class DrawableCache extends ThemedResourceCache<Drawable.ConstantState> { * @return a new instance of the resource, or {@code null} if not in * the cache */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Drawable getInstance(long key, Resources resources, Resources.Theme theme) { final Drawable.ConstantState entry = get(key, theme); if (entry != null) { diff --git a/core/java/android/content/res/ObbInfo.java b/core/java/android/content/res/ObbInfo.java index c477abcea8ba..6cafb3196735 100644 --- a/core/java/android/content/res/ObbInfo.java +++ b/core/java/android/content/res/ObbInfo.java @@ -17,6 +17,7 @@ package android.content.res; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -54,7 +55,7 @@ public class ObbInfo implements Parcelable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public byte[] salt; // Only allow things in this package to instantiate. diff --git a/core/java/android/content/res/Resources.java b/core/java/android/content/res/Resources.java index 0f1c876a1133..6c911f68dbe2 100644 --- a/core/java/android/content/res/Resources.java +++ b/core/java/android/content/res/Resources.java @@ -317,7 +317,7 @@ public class Resources { * class loader * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Resources(@Nullable ClassLoader classLoader) { mClassLoader = classLoader == null ? ClassLoader.getSystemClassLoader() : classLoader; } @@ -394,7 +394,7 @@ public class Resources { * @return the inflater used to create drawable objects * @hide Pending API finalization. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final DrawableInflater getDrawableInflater() { if (mDrawableInflater == null) { mDrawableInflater = new DrawableInflater(this, mClassLoader); @@ -987,7 +987,7 @@ public class Resources { } @NonNull - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) Drawable loadDrawable(@NonNull TypedValue value, int id, int density, @Nullable Theme theme) throws NotFoundException { return mResourcesImpl.loadDrawable(this, value, id, density, theme); @@ -2057,7 +2057,7 @@ public class Resources { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public DisplayAdjustments getDisplayAdjustments() { final DisplayAdjustments overrideDisplayAdjustments = mOverrideDisplayAdjustments; if (overrideDisplayAdjustments != null) { diff --git a/core/java/android/content/res/ResourcesImpl.java b/core/java/android/content/res/ResourcesImpl.java index f40d60dbde5a..c16006a6a619 100644 --- a/core/java/android/content/res/ResourcesImpl.java +++ b/core/java/android/content/res/ResourcesImpl.java @@ -83,9 +83,9 @@ public class ResourcesImpl { static final String TAG_PRELOAD = TAG + ".preload"; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final boolean TRACE_FOR_PRELOAD = false; // Do we still need it? - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final boolean TRACE_FOR_MISS_PRELOAD = false; // Do we still need it? public static final boolean TRACE_FOR_DETAILED_PRELOAD = @@ -102,7 +102,7 @@ public class ResourcesImpl { private static final Object sSync = new Object(); private static boolean sPreloaded; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private boolean mPreloading; // Information about preloaded resources. Note that they are not @@ -160,7 +160,7 @@ public class ResourcesImpl { private PluralRules mPluralRule; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final Configuration mConfiguration = new Configuration(); static { @@ -180,7 +180,7 @@ public class ResourcesImpl { * @param displayAdjustments this resource's Display override and compatibility info. * Must not be null. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public ResourcesImpl(@NonNull AssetManager assets, @Nullable DisplayMetrics metrics, @Nullable Configuration config, @NonNull DisplayAdjustments displayAdjustments) { mAssets = assets; @@ -199,7 +199,7 @@ public class ResourcesImpl { return mAssets; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) DisplayMetrics getDisplayMetrics() { if (DEBUG_CONFIG) Slog.v(TAG, "Returning DisplayMetrics: " + mMetrics.widthPixels + "x" + mMetrics.heightPixels + " " + mMetrics.density); @@ -227,7 +227,7 @@ public class ResourcesImpl { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) void getValue(@AnyRes int id, TypedValue outValue, boolean resolveRefs) throws NotFoundException { boolean found = mAssets.getResourceValue(id, 0, outValue, resolveRefs); diff --git a/core/java/android/content/res/TypedArray.java b/core/java/android/content/res/TypedArray.java index 29c5c935c1bf..5eaa7662b250 100644 --- a/core/java/android/content/res/TypedArray.java +++ b/core/java/android/content/res/TypedArray.java @@ -25,6 +25,7 @@ import android.content.pm.ActivityInfo; import android.content.pm.ActivityInfo.Config; import android.graphics.Typeface; import android.graphics.drawable.Drawable; +import android.os.Build; import android.os.StrictMode; import android.util.AttributeSet; import android.util.DisplayMetrics; @@ -75,17 +76,17 @@ public class TypedArray { @UnsupportedAppUsage private final Resources mResources; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private DisplayMetrics mMetrics; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private AssetManager mAssets; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private boolean mRecycled; @UnsupportedAppUsage /*package*/ XmlBlock.Parser mXml; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) /*package*/ Resources.Theme mTheme; /** * mData is used to hold the value/id and other metadata about each attribute. diff --git a/core/java/android/content/res/XmlBlock.java b/core/java/android/content/res/XmlBlock.java index cb93cbfcbfc9..f4e596c45b4b 100644 --- a/core/java/android/content/res/XmlBlock.java +++ b/core/java/android/content/res/XmlBlock.java @@ -21,6 +21,7 @@ import static android.content.res.Resources.ID_NULL; import android.annotation.AnyRes; import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.util.TypedValue; import com.android.internal.util.XmlUtils; @@ -477,7 +478,7 @@ final class XmlBlock implements AutoCloseable { return mStrings.get(id); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) /*package*/ long mParseState; @UnsupportedAppUsage private final XmlBlock mBlock; diff --git a/core/java/android/database/AbstractWindowedCursor.java b/core/java/android/database/AbstractWindowedCursor.java index daf7d2b1e908..18562034e38c 100644 --- a/core/java/android/database/AbstractWindowedCursor.java +++ b/core/java/android/database/AbstractWindowedCursor.java @@ -17,6 +17,7 @@ package android.database; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; /** * A base class for Cursors that store their data in {@link CursorWindow}s. @@ -181,7 +182,7 @@ public abstract class AbstractWindowedCursor extends AbstractCursor { * Closes the cursor window and sets {@link #mWindow} to null. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) protected void closeWindow() { if (mWindow != null) { mWindow.close(); diff --git a/core/java/android/database/CursorWindow.java b/core/java/android/database/CursorWindow.java index 063a2d00a306..eebacff0a8f6 100644 --- a/core/java/android/database/CursorWindow.java +++ b/core/java/android/database/CursorWindow.java @@ -22,6 +22,7 @@ import android.content.res.Resources; import android.database.sqlite.SQLiteClosable; import android.database.sqlite.SQLiteException; import android.os.Binder; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.os.Process; @@ -770,7 +771,7 @@ public class CursorWindow extends SQLiteClosable implements Parcelable { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private String printStats() { StringBuilder buff = new StringBuilder(); int myPid = Process.myPid(); diff --git a/core/java/android/database/sqlite/SQLiteCustomFunction.java b/core/java/android/database/sqlite/SQLiteCustomFunction.java index 1ace40d7e913..4a15f7010d54 100644 --- a/core/java/android/database/sqlite/SQLiteCustomFunction.java +++ b/core/java/android/database/sqlite/SQLiteCustomFunction.java @@ -27,7 +27,7 @@ import android.os.Build; public final class SQLiteCustomFunction { @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) public final String name; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final int numArgs; public final SQLiteDatabase.CustomFunction callback; @@ -52,7 +52,7 @@ public final class SQLiteCustomFunction { // Called from native. @SuppressWarnings("unused") - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private void dispatchCallback(String[] args) { callback.callback(args); } diff --git a/core/java/android/database/sqlite/SQLiteDatabase.java b/core/java/android/database/sqlite/SQLiteDatabase.java index 0efd883e8b55..eaac370455f4 100644 --- a/core/java/android/database/sqlite/SQLiteDatabase.java +++ b/core/java/android/database/sqlite/SQLiteDatabase.java @@ -31,6 +31,7 @@ import android.database.DatabaseUtils; import android.database.DefaultDatabaseErrorHandler; import android.database.SQLException; import android.database.sqlite.SQLiteDebug.DbStats; +import android.os.Build; import android.os.CancellationSignal; import android.os.Looper; import android.os.OperationCanceledException; @@ -103,7 +104,7 @@ public final class SQLiteDatabase extends SQLiteClosable { // Thread-local for database sessions that belong to this database. // Each thread has its own database session. // INVARIANT: Immutable. - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final ThreadLocal<SQLiteSession> mThreadSession = ThreadLocal .withInitial(this::createSession); diff --git a/core/java/android/database/sqlite/SQLiteDebug.java b/core/java/android/database/sqlite/SQLiteDebug.java index 165f863ccde7..1afa0f8d7090 100644 --- a/core/java/android/database/sqlite/SQLiteDebug.java +++ b/core/java/android/database/sqlite/SQLiteDebug.java @@ -135,7 +135,7 @@ public final class SQLiteDebug { * that overflowed because no space was left in the page cache. * documented at http://www.sqlite.org/c3ref/c_status_malloc_size.html */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int pageCacheOverflow; /** records the largest memory allocation request handed to sqlite3. diff --git a/core/java/android/database/sqlite/SQLiteProgram.java b/core/java/android/database/sqlite/SQLiteProgram.java index de1c54321985..cd4131ce2abb 100644 --- a/core/java/android/database/sqlite/SQLiteProgram.java +++ b/core/java/android/database/sqlite/SQLiteProgram.java @@ -18,6 +18,7 @@ package android.database.sqlite; import android.compat.annotation.UnsupportedAppUsage; import android.database.DatabaseUtils; +import android.os.Build; import android.os.CancellationSignal; import java.util.Arrays; @@ -37,7 +38,7 @@ public abstract class SQLiteProgram extends SQLiteClosable { private final boolean mReadOnly; private final String[] mColumnNames; private final int mNumParameters; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final Object[] mBindArgs; SQLiteProgram(SQLiteDatabase db, String sql, Object[] bindArgs, diff --git a/core/java/android/database/sqlite/SQLiteStatement.java b/core/java/android/database/sqlite/SQLiteStatement.java index 9fda8b011e52..d33eadcfd11b 100644 --- a/core/java/android/database/sqlite/SQLiteStatement.java +++ b/core/java/android/database/sqlite/SQLiteStatement.java @@ -17,6 +17,7 @@ package android.database.sqlite; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.ParcelFileDescriptor; /** @@ -28,7 +29,7 @@ import android.os.ParcelFileDescriptor; * </p> */ public final class SQLiteStatement extends SQLiteProgram { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) SQLiteStatement(SQLiteDatabase db, String sql, Object[] bindArgs) { super(db, sql, bindArgs, null); } diff --git a/core/java/android/ddm/DdmHandleAppName.java b/core/java/android/ddm/DdmHandleAppName.java index 4f55921b0488..35da062329b3 100644 --- a/core/java/android/ddm/DdmHandleAppName.java +++ b/core/java/android/ddm/DdmHandleAppName.java @@ -17,6 +17,7 @@ package android.ddm; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.util.Log; import org.apache.harmony.dalvik.ddmc.Chunk; @@ -80,7 +81,7 @@ public class DdmHandleAppName extends ChunkHandler { * before or after DDMS connects. For the latter we need to send up * an APNM message. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static void setAppName(String appName, String pkgName, int userId) { if (appName == null || appName.isEmpty() || pkgName == null || pkgName.isEmpty()) return; @@ -90,7 +91,7 @@ public class DdmHandleAppName extends ChunkHandler { sendAPNM(appName, pkgName, userId); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static Names getNames() { return sNames; } diff --git a/core/java/android/hardware/Camera.java b/core/java/android/hardware/Camera.java index 25279b31b5d1..af481cfe955b 100644 --- a/core/java/android/hardware/Camera.java +++ b/core/java/android/hardware/Camera.java @@ -245,7 +245,7 @@ public class Camera { * Camera HAL device API version 1.0 * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int CAMERA_HAL_API_VERSION_1_0 = 0x100; /** @@ -1283,7 +1283,7 @@ public class Camera { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static void postEventFromNative(Object camera_ref, int what, int arg1, int arg2, Object obj) { @@ -4477,7 +4477,7 @@ public class Camera { // Splits a comma delimited string to an ArrayList of Area objects. // Example string: "(-10,-10,0,0,300),(0,0,10,10,700)". Return null if // the passing string is null or the size is 0 or (0,0,0,0,0). - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private ArrayList<Area> splitArea(String str) { if (str == null || str.charAt(0) != '(' || str.charAt(str.length() - 1) != ')') { diff --git a/core/java/android/hardware/HardwareBuffer.java b/core/java/android/hardware/HardwareBuffer.java index dd3493063e28..1c42d83af966 100644 --- a/core/java/android/hardware/HardwareBuffer.java +++ b/core/java/android/hardware/HardwareBuffer.java @@ -96,7 +96,7 @@ public final class HardwareBuffer implements Parcelable, AutoCloseable { public static final int S_UI8 = 0x35; // Note: do not rename, this field is used by native code - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private long mNativeObject; // Invoked on destruction diff --git a/core/java/android/hardware/Sensor.java b/core/java/android/hardware/Sensor.java index 0f3cdfca70f5..e913986ae792 100644 --- a/core/java/android/hardware/Sensor.java +++ b/core/java/android/hardware/Sensor.java @@ -509,7 +509,7 @@ public final class Sensor { * * @hide Expected to be used internally for always on display. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int TYPE_PICK_UP_GESTURE = 25; /** @@ -549,7 +549,7 @@ public final class Sensor { * @hide Expected to be used internally for auto-rotate and speaker rotation. * */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int TYPE_DEVICE_ORIENTATION = 27; /** diff --git a/core/java/android/hardware/SerialManager.java b/core/java/android/hardware/SerialManager.java index b51382e01ccd..26e5129b1fb3 100644 --- a/core/java/android/hardware/SerialManager.java +++ b/core/java/android/hardware/SerialManager.java @@ -19,6 +19,7 @@ package android.hardware; import android.annotation.SystemService; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; +import android.os.Build; import android.os.ParcelFileDescriptor; import android.os.RemoteException; @@ -47,7 +48,7 @@ public class SerialManager { * * @return names of available serial ports */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public String[] getSerialPorts() { try { return mService.getSerialPorts(); @@ -67,7 +68,7 @@ public class SerialManager { * @param speed at which to open the serial port * @return the serial port */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public SerialPort openSerialPort(String name, int speed) throws IOException { try { ParcelFileDescriptor pfd = mService.openSerialPort(name); diff --git a/core/java/android/hardware/SerialPort.java b/core/java/android/hardware/SerialPort.java index 0fcaa4989210..2578dd67746e 100644 --- a/core/java/android/hardware/SerialPort.java +++ b/core/java/android/hardware/SerialPort.java @@ -17,6 +17,7 @@ package android.hardware; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.ParcelFileDescriptor; import java.io.FileDescriptor; @@ -31,7 +32,7 @@ public class SerialPort { private static final String TAG = "SerialPort"; // used by the JNI code - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private int mNativeContext; private final String mName; private ParcelFileDescriptor mFileDescriptor; @@ -60,7 +61,7 @@ public class SerialPort { /** * Closes the serial port */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void close() throws IOException { if (mFileDescriptor != null) { mFileDescriptor.close(); @@ -104,7 +105,7 @@ public class SerialPort { * @param buffer to write * @param length number of bytes to write */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void write(ByteBuffer buffer, int length) throws IOException { if (buffer.isDirect()) { native_write_direct(buffer, length); diff --git a/core/java/android/hardware/SystemSensorManager.java b/core/java/android/hardware/SystemSensorManager.java index 974913b290b1..376503e79cfc 100644 --- a/core/java/android/hardware/SystemSensorManager.java +++ b/core/java/android/hardware/SystemSensorManager.java @@ -21,6 +21,7 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; +import android.os.Build; import android.os.Handler; import android.os.Looper; import android.os.MemoryFile; @@ -759,13 +760,13 @@ public class SystemSensorManager extends SensorManager { if (sensor == null) throw new NullPointerException(); return nativeDisableSensor(mNativeSensorEventQueue, sensor.getHandle()); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) protected abstract void dispatchSensorEvent(int handle, float[] values, int accuracy, long timestamp); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) protected abstract void dispatchFlushCompleteEvent(int handle); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) protected void dispatchAdditionalInfoEvent( int handle, int type, int serial, float[] floatValues, int[] intValues) { // default implementation is do nothing diff --git a/core/java/android/hardware/biometrics/BiometricConstants.java b/core/java/android/hardware/biometrics/BiometricConstants.java index 8e3f809e4f88..a59baceeff21 100644 --- a/core/java/android/hardware/biometrics/BiometricConstants.java +++ b/core/java/android/hardware/biometrics/BiometricConstants.java @@ -19,6 +19,7 @@ package android.hardware.biometrics; import static android.hardware.biometrics.BiometricManager.Authenticators; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; /** * Interface containing all of the biometric modality agnostic constants. @@ -149,7 +150,7 @@ public interface BiometricConstants { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) int BIOMETRIC_ERROR_VENDOR_BASE = 1000; // diff --git a/core/java/android/hardware/biometrics/BiometricFingerprintConstants.java b/core/java/android/hardware/biometrics/BiometricFingerprintConstants.java index 46e8cc036809..449f3e257dbe 100644 --- a/core/java/android/hardware/biometrics/BiometricFingerprintConstants.java +++ b/core/java/android/hardware/biometrics/BiometricFingerprintConstants.java @@ -20,6 +20,7 @@ import android.app.KeyguardManager; import android.compat.annotation.UnsupportedAppUsage; import android.hardware.biometrics.BiometricManager.Authenticators; import android.hardware.fingerprint.FingerprintManager; +import android.os.Build; /** * Interface containing all of the fingerprint-specific constants. @@ -142,7 +143,7 @@ public interface BiometricFingerprintConstants { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) int FINGERPRINT_ERROR_VENDOR_BASE = 1000; // diff --git a/core/java/android/hardware/camera2/CameraCharacteristics.java b/core/java/android/hardware/camera2/CameraCharacteristics.java index dc56963ffd8c..4f3c0cb029b8 100644 --- a/core/java/android/hardware/camera2/CameraCharacteristics.java +++ b/core/java/android/hardware/camera2/CameraCharacteristics.java @@ -26,6 +26,7 @@ import android.hardware.camera2.params.RecommendedStreamConfigurationMap; import android.hardware.camera2.params.SessionConfiguration; import android.hardware.camera2.utils.ArrayUtils; import android.hardware.camera2.utils.TypeReference; +import android.os.Build; import android.util.Rational; import java.util.ArrayList; @@ -79,7 +80,7 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Key(String name, Class<T> type, long vendorId) { mKey = new CameraMetadataNative.Key<T>(name, type, vendorId); } @@ -193,7 +194,7 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final CameraMetadataNative mProperties; private List<CameraCharacteristics.Key<?>> mKeys; private List<CameraCharacteristics.Key<?>> mKeysNeedingPermission; diff --git a/core/java/android/hardware/camera2/CaptureRequest.java b/core/java/android/hardware/camera2/CaptureRequest.java index 1b1ccb590e16..bc88cc20deb8 100644 --- a/core/java/android/hardware/camera2/CaptureRequest.java +++ b/core/java/android/hardware/camera2/CaptureRequest.java @@ -26,6 +26,7 @@ import android.hardware.camera2.params.OutputConfiguration; import android.hardware.camera2.utils.HashCodeHelpers; import android.hardware.camera2.utils.SurfaceUtils; import android.hardware.camera2.utils.TypeReference; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.util.ArraySet; @@ -108,7 +109,7 @@ public final class CaptureRequest extends CameraMetadata<CaptureRequest.Key<?>> * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Key(String name, Class<T> type, long vendorId) { mKey = new CameraMetadataNative.Key<T>(name, type, vendorId); } @@ -229,7 +230,7 @@ public final class CaptureRequest extends CameraMetadata<CaptureRequest.Key<?>> private static final ArraySet<Surface> mEmptySurfaceSet = new ArraySet<Surface>(); private String mLogicalCameraId; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private CameraMetadataNative mLogicalCameraSettings; private final HashMap<String, CameraMetadataNative> mPhysicalCameraSettings = new HashMap<String, CameraMetadataNative>(); diff --git a/core/java/android/hardware/camera2/CaptureResult.java b/core/java/android/hardware/camera2/CaptureResult.java index b54696741e2f..cc4d278948f3 100644 --- a/core/java/android/hardware/camera2/CaptureResult.java +++ b/core/java/android/hardware/camera2/CaptureResult.java @@ -24,6 +24,7 @@ import android.hardware.camera2.impl.CaptureResultExtras; import android.hardware.camera2.impl.PublicKey; import android.hardware.camera2.impl.SyntheticKey; import android.hardware.camera2.utils.TypeReference; +import android.os.Build; import android.util.Log; import android.util.Rational; @@ -79,7 +80,7 @@ public class CaptureResult extends CameraMetadata<CaptureResult.Key<?>> { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Key(String name, Class<T> type, long vendorId) { mKey = new CameraMetadataNative.Key<T>(name, type, vendorId); } diff --git a/core/java/android/hardware/camera2/impl/CameraMetadataNative.java b/core/java/android/hardware/camera2/impl/CameraMetadataNative.java index 986e6eafac2a..920d34f09819 100644 --- a/core/java/android/hardware/camera2/impl/CameraMetadataNative.java +++ b/core/java/android/hardware/camera2/impl/CameraMetadataNative.java @@ -64,6 +64,7 @@ import android.hardware.camera2.params.TonemapCurve; import android.hardware.camera2.utils.TypeReference; import android.location.Location; import android.location.LocationManager; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.os.ServiceSpecificException; @@ -260,7 +261,7 @@ public class CameraMetadataNative implements Parcelable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final boolean hasTag() { return mHasTag; } @@ -270,7 +271,7 @@ public class CameraMetadataNative implements Parcelable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final void cacheTag(int tag) { mHasTag = true; mTag = tag; @@ -1683,7 +1684,7 @@ public class CameraMetadataNative implements Parcelable { mDisplaySize = displaySize; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private long mMetadataPtr; // native std::shared_ptr<CameraMetadata>* @FastNative @@ -1706,7 +1707,7 @@ public class CameraMetadataNative implements Parcelable { @FastNative private static synchronized native int nativeGetEntryCount(long ptr); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @FastNative private static synchronized native byte[] nativeReadValues(int tag, long ptr); @FastNative @@ -1715,11 +1716,11 @@ public class CameraMetadataNative implements Parcelable { @FastNative private static synchronized native ArrayList nativeGetAllVendorKeys(long ptr, Class keyClass); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @FastNative private static synchronized native int nativeGetTagFromKeyLocal(long ptr, String keyName) throws IllegalArgumentException; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @FastNative private static synchronized native int nativeGetTypeFromTagLocal(long ptr, int tag) throws IllegalArgumentException; diff --git a/core/java/android/hardware/camera2/utils/HashCodeHelpers.java b/core/java/android/hardware/camera2/utils/HashCodeHelpers.java index 16f3f2ab2023..064d4b31363b 100644 --- a/core/java/android/hardware/camera2/utils/HashCodeHelpers.java +++ b/core/java/android/hardware/camera2/utils/HashCodeHelpers.java @@ -17,6 +17,7 @@ package android.hardware.camera2.utils; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; /** * Provide hashing functions using the Modified Bernstein hash @@ -32,7 +33,7 @@ public final class HashCodeHelpers { * * @return the numeric hash code */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static int hashCode(int... array) { if (array == null) { return 0; diff --git a/core/java/android/hardware/display/DisplayManager.java b/core/java/android/hardware/display/DisplayManager.java index a2400fd3e22a..9271d0e05fa0 100644 --- a/core/java/android/hardware/display/DisplayManager.java +++ b/core/java/android/hardware/display/DisplayManager.java @@ -29,6 +29,7 @@ import android.content.Context; import android.content.res.Resources; import android.graphics.Point; import android.media.projection.MediaProjection; +import android.os.Build; import android.os.Handler; import android.util.Pair; import android.util.SparseArray; @@ -64,7 +65,7 @@ public final class DisplayManager { * </p> * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String ACTION_WIFI_DISPLAY_STATUS_CHANGED = "android.hardware.display.action.WIFI_DISPLAY_STATUS_CHANGED"; @@ -72,7 +73,7 @@ public final class DisplayManager { * Contains a {@link WifiDisplayStatus} object. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String EXTRA_WIFI_DISPLAY_STATUS = "android.hardware.display.extra.WIFI_DISPLAY_STATUS"; diff --git a/core/java/android/hardware/display/WifiDisplayStatus.java b/core/java/android/hardware/display/WifiDisplayStatus.java index e2a825fd990a..0004b39e54e8 100644 --- a/core/java/android/hardware/display/WifiDisplayStatus.java +++ b/core/java/android/hardware/display/WifiDisplayStatus.java @@ -17,6 +17,7 @@ package android.hardware.display; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -35,9 +36,9 @@ public final class WifiDisplayStatus implements Parcelable { private final int mFeatureState; private final int mScanState; private final int mActiveDisplayState; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final WifiDisplay mActiveDisplay; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final WifiDisplay[] mDisplays; /** Session info needed for Miracast Certification */ @@ -50,23 +51,23 @@ public final class WifiDisplayStatus implements Parcelable { /** Feature state: Wifi display is turned off in settings. */ public static final int FEATURE_STATE_OFF = 2; /** Feature state: Wifi display is turned on in settings. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int FEATURE_STATE_ON = 3; /** Scan state: Not currently scanning. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int SCAN_STATE_NOT_SCANNING = 0; /** Scan state: Currently scanning. */ public static final int SCAN_STATE_SCANNING = 1; /** Display state: Not connected. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int DISPLAY_STATE_NOT_CONNECTED = 0; /** Display state: Connecting to active display. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int DISPLAY_STATE_CONNECTING = 1; /** Display state: Connected to active display. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int DISPLAY_STATE_CONNECTED = 2; public static final @android.annotation.NonNull Creator<WifiDisplayStatus> CREATOR = new Creator<WifiDisplayStatus>() { diff --git a/core/java/android/hardware/fingerprint/FingerprintManager.java b/core/java/android/hardware/fingerprint/FingerprintManager.java index d57a7e4b97f0..1ea6f2849b3a 100644 --- a/core/java/android/hardware/fingerprint/FingerprintManager.java +++ b/core/java/android/hardware/fingerprint/FingerprintManager.java @@ -35,6 +35,7 @@ import android.hardware.biometrics.BiometricFingerprintConstants; import android.hardware.biometrics.BiometricPrompt; import android.hardware.biometrics.IBiometricServiceLockoutResetCallback; import android.os.Binder; +import android.os.Build; import android.os.CancellationSignal; import android.os.CancellationSignal.OnCancelListener; import android.os.Handler; @@ -628,7 +629,7 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing * @hide */ @RequiresPermission(USE_FINGERPRINT) - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public List<Fingerprint> getEnrolledFingerprints(int userId) { if (mService != null) try { return mService.getEnrolledFingerprints(userId, mContext.getOpPackageName()); diff --git a/core/java/android/hardware/location/GeofenceHardware.java b/core/java/android/hardware/location/GeofenceHardware.java index a1866af43706..313d8efc19be 100644 --- a/core/java/android/hardware/location/GeofenceHardware.java +++ b/core/java/android/hardware/location/GeofenceHardware.java @@ -169,7 +169,7 @@ public final class GeofenceHardware { GeofenceHardwareMonitorCallbackWrapper>(); /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public GeofenceHardware(IGeofenceHardware service) { mService = service; } diff --git a/core/java/android/hardware/location/IActivityRecognitionHardwareClient.aidl b/core/java/android/hardware/location/IActivityRecognitionHardwareClient.aidl index 2dfaf601c6f5..b32b7e555622 100644 --- a/core/java/android/hardware/location/IActivityRecognitionHardwareClient.aidl +++ b/core/java/android/hardware/location/IActivityRecognitionHardwareClient.aidl @@ -32,6 +32,6 @@ oneway interface IActivityRecognitionHardwareClient { * @param isSupported whether the platform has hardware support for the feature * @param instance the available instance to provide access to the feature */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void onAvailabilityChanged(in boolean isSupported, in IActivityRecognitionHardware instance); } diff --git a/core/java/android/hardware/soundtrigger/SoundTrigger.java b/core/java/android/hardware/soundtrigger/SoundTrigger.java index 1afadd40ede3..bdced4b0df4a 100644 --- a/core/java/android/hardware/soundtrigger/SoundTrigger.java +++ b/core/java/android/hardware/soundtrigger/SoundTrigger.java @@ -37,6 +37,7 @@ import android.media.AudioFormat; import android.media.soundtrigger_middleware.ISoundTriggerMiddlewareService; import android.media.soundtrigger_middleware.SoundTriggerModuleDescriptor; import android.media.soundtrigger_middleware.Status; +import android.os.Build; import android.os.Handler; import android.os.IBinder; import android.os.Looper; @@ -1166,7 +1167,7 @@ public class SoundTrigger { /** @hide */ @TestApi - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public RecognitionEvent(int status, int soundModelHandle, boolean captureAvailable, int captureSession, int captureDelayMs, int capturePreambleMs, boolean triggerInData, @NonNull AudioFormat captureFormat, @Nullable byte[] data) { @@ -1372,7 +1373,7 @@ public class SoundTrigger { public static class RecognitionConfig implements Parcelable { /** True if the DSP should capture the trigger sound and make it available for further * capture. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final boolean captureRequested; /** * True if the service should restart listening after the DSP triggers. @@ -1381,12 +1382,12 @@ public class SoundTrigger { public final boolean allowMultipleTriggers; /** List of all keyphrases in the sound model for which recognition should be performed with * options for each keyphrase. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @NonNull public final KeyphraseRecognitionExtra keyphrases[]; /** Opaque data for use by system applications who know about voice engine internals, * typically during enrollment. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @NonNull public final byte[] data; @@ -1552,7 +1553,7 @@ public class SoundTrigger { public final int id; /** Recognition modes matched for this event */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final int recognitionModes; /** Confidence level for mode RECOGNITION_MODE_VOICE_TRIGGER when user identification @@ -1659,7 +1660,7 @@ public class SoundTrigger { @NonNull public final KeyphraseRecognitionExtra[] keyphraseExtras; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public KeyphraseRecognitionEvent(int status, int soundModelHandle, boolean captureAvailable, int captureSession, int captureDelayMs, int capturePreambleMs, boolean triggerInData, @NonNull AudioFormat captureFormat, @Nullable byte[] data, @@ -1781,7 +1782,7 @@ public class SoundTrigger { * @hide */ public static class GenericRecognitionEvent extends RecognitionEvent implements Parcelable { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public GenericRecognitionEvent(int status, int soundModelHandle, boolean captureAvailable, int captureSession, int captureDelayMs, int capturePreambleMs, boolean triggerInData, @NonNull AudioFormat captureFormat, @@ -1852,7 +1853,7 @@ public class SoundTrigger { @NonNull public final byte[] data; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) SoundModelEvent(int status, int soundModelHandle, @Nullable byte[] data) { this.status = status; this.soundModelHandle = soundModelHandle; diff --git a/core/java/android/hardware/soundtrigger/SoundTriggerModule.java b/core/java/android/hardware/soundtrigger/SoundTriggerModule.java index a2a15b30d578..3d089b18232f 100644 --- a/core/java/android/hardware/soundtrigger/SoundTriggerModule.java +++ b/core/java/android/hardware/soundtrigger/SoundTriggerModule.java @@ -26,6 +26,7 @@ import android.media.soundtrigger_middleware.PhraseRecognitionEvent; import android.media.soundtrigger_middleware.PhraseSoundModel; import android.media.soundtrigger_middleware.RecognitionEvent; import android.media.soundtrigger_middleware.SoundModel; +import android.os.Build; import android.os.Handler; import android.os.IBinder; import android.os.Looper; @@ -45,7 +46,7 @@ public class SoundTriggerModule { private static final int EVENT_RECOGNITION = 1; private static final int EVENT_SERVICE_DIED = 2; private static final int EVENT_SERVICE_STATE_CHANGE = 3; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private int mId; private EventHandlerDelegate mEventHandlerDelegate; private ISoundTriggerModule mService; diff --git a/core/java/android/hardware/usb/UsbDeviceConnection.java b/core/java/android/hardware/usb/UsbDeviceConnection.java index 53a5785f7c76..21634cc544e7 100644 --- a/core/java/android/hardware/usb/UsbDeviceConnection.java +++ b/core/java/android/hardware/usb/UsbDeviceConnection.java @@ -47,7 +47,7 @@ public class UsbDeviceConnection { private Context mContext; // used by the JNI code - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private long mNativeContext; private final CloseGuard mCloseGuard = CloseGuard.get(); diff --git a/core/java/android/hardware/usb/UsbManager.java b/core/java/android/hardware/usb/UsbManager.java index d16f070f7209..0ef55f4a60f9 100644 --- a/core/java/android/hardware/usb/UsbManager.java +++ b/core/java/android/hardware/usb/UsbManager.java @@ -193,7 +193,7 @@ public class UsbManager { * * {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String USB_DATA_UNLOCKED = "unlocked"; /** @@ -709,7 +709,7 @@ public class UsbManager { * {@hide} */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isFunctionEnabled(String function) { try { return mService.isFunctionEnabled(function); diff --git a/core/java/android/hardware/usb/UsbRequest.java b/core/java/android/hardware/usb/UsbRequest.java index 473df712e3f9..d1c6465d62c8 100644 --- a/core/java/android/hardware/usb/UsbRequest.java +++ b/core/java/android/hardware/usb/UsbRequest.java @@ -49,7 +49,7 @@ public class UsbRequest { static final int MAX_USBFS_BUFFER_SIZE = 16384; // used by the JNI code - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private long mNativeContext; private UsbEndpoint mEndpoint; diff --git a/core/java/android/inputmethodservice/InputMethodService.java b/core/java/android/inputmethodservice/InputMethodService.java index 1c5df4825192..6c6bd004e343 100644 --- a/core/java/android/inputmethodservice/InputMethodService.java +++ b/core/java/android/inputmethodservice/InputMethodService.java @@ -1097,7 +1097,7 @@ public class InputMethodService extends AbstractInputMethodService { mService.getContentResolver().unregisterContentObserver(this); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private boolean shouldShowImeWithHardKeyboard() { // Lazily initialize as needed. if (mShowImeWithHardKeyboard == ShowImeWithHardKeyboardType.UNKNOWN) { @@ -1137,7 +1137,7 @@ public class InputMethodService extends AbstractInputMethodService { return "SettingsObserver{mShowImeWithHardKeyboard=" + mShowImeWithHardKeyboard + "}"; } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private SettingsObserver mSettingsObserver; /** diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java index 8fd299504c2f..c28a901fba75 100644 --- a/core/java/android/net/ConnectivityManager.java +++ b/core/java/android/net/ConnectivityManager.java @@ -354,7 +354,7 @@ public class ConnectivityManager { * @hide */ @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String ACTION_TETHER_STATE_CHANGED = TetheringManager.ACTION_TETHER_STATE_CHANGED; @@ -363,7 +363,7 @@ public class ConnectivityManager { * gives a String[] listing all the interfaces configured for * tethering and currently available for tethering. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String EXTRA_AVAILABLE_TETHER = TetheringManager.EXTRA_AVAILABLE_TETHER; /** @@ -378,7 +378,7 @@ public class ConnectivityManager { * gives a String[] listing all the interfaces currently tethered * (ie, has DHCPv4 support and packets potentially forwarded/NATed) */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String EXTRA_ACTIVE_TETHER = TetheringManager.EXTRA_ACTIVE_TETHER; /** @@ -387,7 +387,7 @@ public class ConnectivityManager { * failed. Use {@link #getLastTetherError} to find the error code * for any interfaces listed here. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String EXTRA_ERRORED_TETHER = TetheringManager.EXTRA_ERRORED_TETHER; /** @@ -850,7 +850,7 @@ public class ConnectivityManager { * {@hide} */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static String getNetworkTypeName(int type) { switch (type) { case TYPE_NONE: @@ -1173,7 +1173,7 @@ public class ConnectivityManager { * {@hide} */ @RequiresPermission(android.Manifest.permission.NETWORK_STACK) - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public NetworkInfo getActiveNetworkInfoForUid(int uid) { return getActiveNetworkInfoForUid(uid, false); } @@ -1520,7 +1520,7 @@ public class ConnectivityManager { return 1; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private NetworkCapabilities networkCapabilitiesForFeature(int networkType, String feature) { if (networkType == TYPE_MOBILE) { switch (feature) { @@ -1606,7 +1606,7 @@ public class ConnectivityManager { }; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final HashMap<NetworkCapabilities, LegacyRequest> sLegacyRequests = new HashMap<>(); @@ -1635,7 +1635,7 @@ public class ConnectivityManager { Log.d(TAG, "expireRequest with " + ourSeqNum + ", " + sequenceNum); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private NetworkRequest requestNetworkForFeatureLocked(NetworkCapabilities netCap) { int delay = -1; int type = legacyTypeForNetworkCapabilities(netCap); @@ -1665,7 +1665,7 @@ public class ConnectivityManager { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private boolean removeRequestForFeature(NetworkCapabilities netCap) { final LegacyRequest l; synchronized (sLegacyRequests) { @@ -1732,17 +1732,17 @@ public class ConnectivityManager { /** @hide */ public static class PacketKeepaliveCallback { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public PacketKeepaliveCallback() { } /** The requested keepalive was successfully started. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void onStarted() {} /** The keepalive was successfully stopped. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void onStopped() {} /** An error occurred. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void onError(int error) {} } @@ -1806,7 +1806,7 @@ public class ConnectivityManager { private volatile Integer mSlot; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void stop() { try { mExecutor.execute(() -> { @@ -1875,7 +1875,7 @@ public class ConnectivityManager { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public PacketKeepalive startNattKeepalive( Network network, int intervalSeconds, PacketKeepaliveCallback callback, InetAddress srcAddr, int srcPort, InetAddress dstAddr) { @@ -2110,7 +2110,7 @@ public class ConnectivityManager { /** {@hide} */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public NetworkQuotaInfo getActiveNetworkQuotaInfo() { try { return mService.getActiveNetworkQuotaInfo(); @@ -2408,7 +2408,7 @@ public class ConnectivityManager { * * {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @Deprecated public int tether(String iface) { return mTetheringManager.tether(iface); @@ -2849,7 +2849,7 @@ public class ConnectivityManager { * {@hide} */ @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @Deprecated public int getLastTetherError(String iface) { int error = mTetheringManager.getLastTetherError(iface); @@ -4659,7 +4659,7 @@ public class ConnectivityManager { * @deprecated This is strictly for legacy usage to support {@link #startUsingNetworkFeature}. */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static boolean setProcessDefaultNetworkForHostResolution(Network network) { return NetworkUtils.bindProcessToNetworkForHostResolution( (network == null) ? NETID_UNSET : network.getNetIdForResolv()); @@ -4816,4 +4816,9 @@ public class ConnectivityManager { e.rethrowFromSystemServer(); } } + + private void setOemNetworkPreference(@NonNull OemNetworkPreferences preference) { + Log.d(TAG, "setOemNetworkPreference called with preference: " + + preference.toString()); + } } diff --git a/core/java/android/net/DhcpResults.java b/core/java/android/net/DhcpResults.java index 1ef4f1741e3a..ef0a436235eb 100644 --- a/core/java/android/net/DhcpResults.java +++ b/core/java/android/net/DhcpResults.java @@ -18,6 +18,7 @@ package android.net; import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.text.TextUtils; @@ -40,30 +41,30 @@ import java.util.Objects; public final class DhcpResults implements Parcelable { private static final String TAG = "DhcpResults"; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public LinkAddress ipAddress; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public InetAddress gateway; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final ArrayList<InetAddress> dnsServers = new ArrayList<>(); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public String domains; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Inet4Address serverAddress; /** Vendor specific information (from RFC 2132). */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public String vendorInfo; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int leaseDuration; /** Link MTU option. 0 means unset. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int mtu; public String serverHostName; diff --git a/core/java/android/net/EthernetManager.java b/core/java/android/net/EthernetManager.java index 5860e20ad3b4..84a8e1c3dcc1 100644 --- a/core/java/android/net/EthernetManager.java +++ b/core/java/android/net/EthernetManager.java @@ -23,6 +23,7 @@ import android.annotation.SystemService; import android.annotation.TestApi; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; +import android.os.Build; import android.os.Handler; import android.os.Message; import android.os.RemoteException; @@ -76,7 +77,7 @@ public class EthernetManager { * @param isAvailable {@code true} if Ethernet port exists. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) void onAvailabilityChanged(String iface, boolean isAvailable); } @@ -97,7 +98,7 @@ public class EthernetManager { * @return the Ethernet Configuration, contained in {@link IpConfiguration}. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public IpConfiguration getConfiguration(String iface) { try { return mService.getConfiguration(iface); @@ -110,7 +111,7 @@ public class EthernetManager { * Set Ethernet configuration. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setConfiguration(String iface, IpConfiguration config) { try { mService.setConfiguration(iface, config); @@ -123,7 +124,7 @@ public class EthernetManager { * Indicates whether the system currently has one or more Ethernet interfaces. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isAvailable() { return getAvailableInterfaces().length > 0; } @@ -134,7 +135,7 @@ public class EthernetManager { * @param iface Ethernet interface name * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isAvailable(String iface) { try { return mService.isAvailable(iface); @@ -149,7 +150,7 @@ public class EthernetManager { * @throws IllegalArgumentException If the listener is null. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void addListener(Listener listener) { if (listener == null) { throw new IllegalArgumentException("listener must not be null"); @@ -168,7 +169,7 @@ public class EthernetManager { * Returns an array of available Ethernet interface names. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public String[] getAvailableInterfaces() { try { return mService.getAvailableInterfaces(); @@ -183,7 +184,7 @@ public class EthernetManager { * @throws IllegalArgumentException If the listener is null. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void removeListener(Listener listener) { if (listener == null) { throw new IllegalArgumentException("listener must not be null"); diff --git a/core/java/android/net/IConnectivityManager.aidl b/core/java/android/net/IConnectivityManager.aidl index 059ec28298f9..41732008b4ee 100644 --- a/core/java/android/net/IConnectivityManager.aidl +++ b/core/java/android/net/IConnectivityManager.aidl @@ -73,7 +73,7 @@ interface IConnectivityManager NetworkCapabilities getNetworkCapabilities(in Network network, String callingPackageName); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) NetworkState[] getAllNetworkState(); NetworkQuotaInfo getActiveNetworkQuotaInfo(); @@ -134,7 +134,7 @@ interface IConnectivityManager VpnConfig getVpnConfig(int userId); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void startLegacyVpn(in VpnProfile profile); LegacyVpnInfo getLegacyVpnInfo(int userId); diff --git a/core/java/android/net/INetworkPolicyManager.aidl b/core/java/android/net/INetworkPolicyManager.aidl index 72a6b397a30c..e486052e0e53 100644 --- a/core/java/android/net/INetworkPolicyManager.aidl +++ b/core/java/android/net/INetworkPolicyManager.aidl @@ -67,7 +67,7 @@ interface INetworkPolicyManager { void setDeviceIdleMode(boolean enabled); void setWifiMeteredOverride(String networkId, int meteredOverride); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) NetworkQuotaInfo getNetworkQuotaInfo(in NetworkState state); SubscriptionPlan[] getSubscriptionPlans(int subId, String callingPackage); diff --git a/core/java/android/net/INetworkStatsService.aidl b/core/java/android/net/INetworkStatsService.aidl index 5fa515a14343..1a3dc974480c 100644 --- a/core/java/android/net/INetworkStatsService.aidl +++ b/core/java/android/net/INetworkStatsService.aidl @@ -42,7 +42,7 @@ interface INetworkStatsService { * PACKAGE_USAGE_STATS permission is always checked. If PACKAGE_USAGE_STATS is not granted * READ_NETWORK_USAGE_STATS is checked for. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) INetworkStatsSession openSessionForUsageStats(int flags, String callingPackage); /** Return data layer snapshot of UID network usage. */ diff --git a/core/java/android/net/IpConfiguration.java b/core/java/android/net/IpConfiguration.java index 23d5ff7f3afe..0b205642b321 100644 --- a/core/java/android/net/IpConfiguration.java +++ b/core/java/android/net/IpConfiguration.java @@ -21,6 +21,7 @@ import android.annotation.Nullable; import android.annotation.SuppressLint; import android.annotation.SystemApi; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -98,7 +99,7 @@ public final class IpConfiguration implements Parcelable { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public IpConfiguration(IpAssignment ipAssignment, ProxySettings proxySettings, StaticIpConfiguration staticIpConfiguration, diff --git a/core/java/android/net/LinkProperties.java b/core/java/android/net/LinkProperties.java index 616ccbe50213..aa4b15454721 100644 --- a/core/java/android/net/LinkProperties.java +++ b/core/java/android/net/LinkProperties.java @@ -111,7 +111,7 @@ public final class LinkProperties implements Parcelable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static ProvisioningChange compareProvisioning( LinkProperties before, LinkProperties after) { if (before.isProvisioned() && after.isProvisioned()) { @@ -849,7 +849,7 @@ public final class LinkProperties implements Parcelable { * Returns all the links stacked on top of this link. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public @NonNull List<LinkProperties> getStackedLinks() { if (mStackedLinks.isEmpty()) { return Collections.emptyList(); @@ -1448,7 +1448,7 @@ public final class LinkProperties implements Parcelable { * @return {@code true} if both are identical, {@code false} otherwise. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isIdenticalStackedLinks(@NonNull LinkProperties target) { if (!mStackedLinks.keySet().equals(target.mStackedLinks.keySet())) { return false; diff --git a/core/java/android/net/LinkQualityInfo.java b/core/java/android/net/LinkQualityInfo.java index aa56cff50f63..2bf1fbc848f7 100644 --- a/core/java/android/net/LinkQualityInfo.java +++ b/core/java/android/net/LinkQualityInfo.java @@ -17,6 +17,7 @@ package android.net; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -190,7 +191,7 @@ public class LinkQualityInfo implements Parcelable { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setPacketCount(long packetCount) { mPacketCount = packetCount; } @@ -206,7 +207,7 @@ public class LinkQualityInfo implements Parcelable { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setPacketErrorCount(long packetErrorCount) { mPacketErrorCount = packetErrorCount; } @@ -268,7 +269,7 @@ public class LinkQualityInfo implements Parcelable { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setLastDataSampleTime(long lastDataSampleTime) { mLastDataSampleTime = lastDataSampleTime; } @@ -284,7 +285,7 @@ public class LinkQualityInfo implements Parcelable { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setDataSampleDuration(int dataSampleDuration) { mDataSampleDuration = dataSampleDuration; } diff --git a/core/java/android/net/LocalSocketImpl.java b/core/java/android/net/LocalSocketImpl.java index e80e3a6f93ec..e01e5aecc7e6 100644 --- a/core/java/android/net/LocalSocketImpl.java +++ b/core/java/android/net/LocalSocketImpl.java @@ -17,6 +17,7 @@ package android.net; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.system.ErrnoException; import android.system.Int32Ref; import android.system.Os; @@ -51,7 +52,7 @@ class LocalSocketImpl @UnsupportedAppUsage FileDescriptor[] inboundFileDescriptors; /** file descriptor array that should be written during next write */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) FileDescriptor[] outboundFileDescriptors; /** diff --git a/core/java/android/net/MacAddress.java b/core/java/android/net/MacAddress.java index 0eb3c1e8ad01..178183dbe043 100644 --- a/core/java/android/net/MacAddress.java +++ b/core/java/android/net/MacAddress.java @@ -22,6 +22,7 @@ import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; import android.net.util.MacAddressUtils; import android.net.wifi.WifiInfo; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -58,7 +59,7 @@ public final class MacAddress implements Parcelable { * <p>Not publicly exposed or treated specially since the OUI 00:00:00 is registered. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final MacAddress ALL_ZEROS_ADDRESS = new MacAddress(0); /** @hide */ diff --git a/core/java/android/net/MobileLinkQualityInfo.java b/core/java/android/net/MobileLinkQualityInfo.java index a65de6bb2908..f51c4df2d6b5 100644 --- a/core/java/android/net/MobileLinkQualityInfo.java +++ b/core/java/android/net/MobileLinkQualityInfo.java @@ -17,6 +17,7 @@ package android.net; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; /** @@ -40,7 +41,7 @@ public class MobileLinkQualityInfo extends LinkQualityInfo { private int mLteRssnr = UNKNOWN_INT; private int mLteCqi = UNKNOWN_INT; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public MobileLinkQualityInfo() { } @@ -98,7 +99,7 @@ public class MobileLinkQualityInfo extends LinkQualityInfo { * returns mobile network type as defined by {@link android.telephony.TelephonyManager} * @return network type or {@link android.net.LinkQualityInfo#UNKNOWN_INT} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getMobileNetworkType() { return mMobileNetworkType; } @@ -106,7 +107,7 @@ public class MobileLinkQualityInfo extends LinkQualityInfo { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setMobileNetworkType(int mobileNetworkType) { mMobileNetworkType = mobileNetworkType; } @@ -122,7 +123,7 @@ public class MobileLinkQualityInfo extends LinkQualityInfo { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setRssi(int Rssi) { mRssi = Rssi; } @@ -138,7 +139,7 @@ public class MobileLinkQualityInfo extends LinkQualityInfo { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setGsmErrorRate(int gsmErrorRate) { mGsmErrorRate = gsmErrorRate; } @@ -154,7 +155,7 @@ public class MobileLinkQualityInfo extends LinkQualityInfo { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setCdmaDbm(int cdmaDbm) { mCdmaDbm = cdmaDbm; } @@ -170,7 +171,7 @@ public class MobileLinkQualityInfo extends LinkQualityInfo { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setCdmaEcio(int cdmaEcio) { mCdmaEcio = cdmaEcio; } @@ -186,7 +187,7 @@ public class MobileLinkQualityInfo extends LinkQualityInfo { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setEvdoDbm(int evdoDbm) { mEvdoDbm = evdoDbm; } @@ -202,7 +203,7 @@ public class MobileLinkQualityInfo extends LinkQualityInfo { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setEvdoEcio(int evdoEcio) { mEvdoEcio = evdoEcio; } @@ -218,7 +219,7 @@ public class MobileLinkQualityInfo extends LinkQualityInfo { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setEvdoSnr(int evdoSnr) { mEvdoSnr = evdoSnr; } @@ -234,7 +235,7 @@ public class MobileLinkQualityInfo extends LinkQualityInfo { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setLteSignalStrength(int lteSignalStrength) { mLteSignalStrength = lteSignalStrength; } @@ -250,7 +251,7 @@ public class MobileLinkQualityInfo extends LinkQualityInfo { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setLteRsrp(int lteRsrp) { mLteRsrp = lteRsrp; } @@ -266,7 +267,7 @@ public class MobileLinkQualityInfo extends LinkQualityInfo { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setLteRsrq(int lteRsrq) { mLteRsrq = lteRsrq; } @@ -282,7 +283,7 @@ public class MobileLinkQualityInfo extends LinkQualityInfo { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setLteRssnr(int lteRssnr) { mLteRssnr = lteRssnr; } @@ -298,7 +299,7 @@ public class MobileLinkQualityInfo extends LinkQualityInfo { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setLteCqi(int lteCqi) { mLteCqi = lteCqi; } diff --git a/core/java/android/net/Network.java b/core/java/android/net/Network.java index 25619384ac18..f98a1f8a220d 100644 --- a/core/java/android/net/Network.java +++ b/core/java/android/net/Network.java @@ -19,6 +19,7 @@ package android.net; import android.annotation.NonNull; import android.annotation.SystemApi; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.system.ErrnoException; @@ -109,7 +110,7 @@ public class Network implements Parcelable { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Network(int netId) { this(netId, false); } diff --git a/core/java/android/net/NetworkCapabilities.java b/core/java/android/net/NetworkCapabilities.java index 12ddc628f4bd..f806b565b127 100644 --- a/core/java/android/net/NetworkCapabilities.java +++ b/core/java/android/net/NetworkCapabilities.java @@ -133,7 +133,7 @@ public final class NetworkCapabilities implements Parcelable { * Represents the network's capabilities. If any are specified they will be satisfied * by any Network that matches all of them. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private long mNetworkCapabilities; /** @@ -1288,7 +1288,7 @@ public final class NetworkCapabilities implements Parcelable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean hasSignalStrength() { return mSignalStrength > SIGNAL_STRENGTH_UNSPECIFIED; } @@ -1927,7 +1927,7 @@ public final class NetworkCapabilities implements Parcelable { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static @NonNull String transportNamesOf(@Nullable @Transport int[] types) { StringJoiner joiner = new StringJoiner("|"); if (types != null) { diff --git a/core/java/android/net/NetworkPolicyManager.java b/core/java/android/net/NetworkPolicyManager.java index e9e242e2b08a..a643d09eef49 100644 --- a/core/java/android/net/NetworkPolicyManager.java +++ b/core/java/android/net/NetworkPolicyManager.java @@ -253,7 +253,7 @@ public class NetworkPolicyManager { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getUidPolicy(int uid) { try { return mService.getUidPolicy(uid); @@ -339,7 +339,7 @@ public class NetworkPolicyManager { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setRestrictBackground(boolean restrictBackground) { try { mService.setRestrictBackground(restrictBackground); @@ -349,7 +349,7 @@ public class NetworkPolicyManager { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean getRestrictBackground() { try { return mService.getRestrictBackground(); diff --git a/core/java/android/net/NetworkQuotaInfo.java b/core/java/android/net/NetworkQuotaInfo.java index 2e52d9cd19ab..d39bf29a4ef1 100644 --- a/core/java/android/net/NetworkQuotaInfo.java +++ b/core/java/android/net/NetworkQuotaInfo.java @@ -17,6 +17,7 @@ package android.net; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -37,17 +38,17 @@ public class NetworkQuotaInfo implements Parcelable { public NetworkQuotaInfo(Parcel in) { } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public long getEstimatedBytes() { return 0; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public long getSoftLimitBytes() { return NO_LIMIT; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public long getHardLimitBytes() { return NO_LIMIT; } diff --git a/core/java/android/net/NetworkRequest.java b/core/java/android/net/NetworkRequest.java index 473e6c5a7287..dc16d7422038 100644 --- a/core/java/android/net/NetworkRequest.java +++ b/core/java/android/net/NetworkRequest.java @@ -43,7 +43,7 @@ public class NetworkRequest implements Parcelable { * The {@link NetworkCapabilities} that define this request. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final @NonNull NetworkCapabilities networkCapabilities; /** @@ -52,7 +52,7 @@ public class NetworkRequest implements Parcelable { * the request. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final int requestId; /** diff --git a/core/java/android/net/NetworkStats.java b/core/java/android/net/NetworkStats.java index 34e48eb44f32..cf40ce58d49d 100644 --- a/core/java/android/net/NetworkStats.java +++ b/core/java/android/net/NetworkStats.java @@ -21,6 +21,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.os.SystemClock; @@ -219,11 +220,11 @@ public final class NetworkStats implements Parcelable { * generated. */ private long elapsedRealtime; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private int size; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private int capacity; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private String[] iface; @UnsupportedAppUsage private int[] uid; @@ -231,21 +232,21 @@ public final class NetworkStats implements Parcelable { private int[] set; @UnsupportedAppUsage private int[] tag; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private int[] metered; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private int[] roaming; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private int[] defaultNetwork; @UnsupportedAppUsage private long[] rxBytes; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private long[] rxPackets; @UnsupportedAppUsage private long[] txBytes; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private long[] txPackets; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private long[] operations; /** @@ -258,7 +259,7 @@ public final class NetworkStats implements Parcelable { @SystemApi public static class Entry { /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public String iface; /** @hide */ @UnsupportedAppUsage @@ -267,7 +268,7 @@ public final class NetworkStats implements Parcelable { @UnsupportedAppUsage public int set; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int tag; /** * Note that this is only populated w/ the default value when read from /proc or written @@ -294,20 +295,20 @@ public final class NetworkStats implements Parcelable { @UnsupportedAppUsage public long rxBytes; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public long rxPackets; /** @hide */ @UnsupportedAppUsage public long txBytes; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public long txPackets; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public long operations; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Entry() { this(IFACE_ALL, UID_ALL, SET_DEFAULT, TAG_NONE, 0L, 0L, 0L, 0L, 0L); } @@ -454,7 +455,7 @@ public final class NetworkStats implements Parcelable { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public NetworkStats(Parcel parcel) { elapsedRealtime = parcel.readLong(); size = parcel.readInt(); diff --git a/core/java/android/net/NetworkStatsHistory.java b/core/java/android/net/NetworkStatsHistory.java index 51f09a0103ff..fba75614342d 100644 --- a/core/java/android/net/NetworkStatsHistory.java +++ b/core/java/android/net/NetworkStatsHistory.java @@ -32,6 +32,7 @@ import static android.text.format.DateUtils.SECOND_IN_MILLIS; import static com.android.internal.util.ArrayUtils.total; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.service.NetworkStatsHistoryBucketProto; @@ -91,18 +92,18 @@ public class NetworkStatsHistory implements Parcelable { public static class Entry { public static final long UNKNOWN = -1; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public long bucketDuration; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public long bucketStart; public long activeTime; @UnsupportedAppUsage public long rxBytes; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public long rxPackets; @UnsupportedAppUsage public long txBytes; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public long txPackets; public long operations; } @@ -134,7 +135,7 @@ public class NetworkStatsHistory implements Parcelable { recordEntireHistory(existing); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public NetworkStatsHistory(Parcel in) { bucketDuration = in.readLong(); bucketStart = readLongArray(in); @@ -220,7 +221,7 @@ public class NetworkStatsHistory implements Parcelable { return 0; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int size() { return bucketCount; } @@ -258,7 +259,7 @@ public class NetworkStatsHistory implements Parcelable { * Return index of bucket that contains or is immediately before the * requested time. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getIndexBefore(long time) { int index = Arrays.binarySearch(bucketStart, 0, bucketCount, time); if (index < 0) { @@ -286,7 +287,7 @@ public class NetworkStatsHistory implements Parcelable { /** * Return specific stats entry. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Entry getValues(int i, Entry recycle) { final Entry entry = recycle != null ? recycle : new Entry(); entry.bucketStart = bucketStart[i]; diff --git a/core/java/android/net/NetworkTemplate.java b/core/java/android/net/NetworkTemplate.java index cd26079a7bac..72be835a1cea 100644 --- a/core/java/android/net/NetworkTemplate.java +++ b/core/java/android/net/NetworkTemplate.java @@ -37,6 +37,7 @@ import static android.net.wifi.WifiInfo.sanitizeSsid; import android.annotation.NonNull; import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.telephony.Annotation.NetworkType; @@ -159,7 +160,7 @@ public class NetworkTemplate implements Parcelable { * Template to match metered {@link ConnectivityManager#TYPE_MOBILE} networks, * regardless of IMSI. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static NetworkTemplate buildTemplateMobileWildcard() { return new NetworkTemplate(MATCH_MOBILE_WILDCARD, null, null); } diff --git a/core/java/android/net/NetworkUtils.java b/core/java/android/net/NetworkUtils.java index 1e5b6d5ab5c0..a0faafa779a8 100644 --- a/core/java/android/net/NetworkUtils.java +++ b/core/java/android/net/NetworkUtils.java @@ -98,7 +98,7 @@ public class NetworkUtils { * this socket will go directly to the underlying network, so its traffic will not be * forwarded through the VPN. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static boolean protectFromVpn(FileDescriptor fd) { return protectFromVpn(fd.getInt$()); } @@ -223,7 +223,7 @@ public class NetworkUtils { * @hide * @deprecated use {@link Inet4AddressUtils#netmaskToPrefixLength(Inet4Address)} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @Deprecated public static int netmaskToPrefixLength(Inet4Address netmask) { // This is only here because some apps seem to be using it (@UnsupportedAppUsage). @@ -290,7 +290,7 @@ public class NetworkUtils { /** * Returns the implicit netmask of an IPv4 address, as was the custom before 1993. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static int getImplicitNetmask(Inet4Address address) { // Only here because it seems to be used by apps return Inet4AddressUtils.getImplicitNetmask(address); diff --git a/core/java/android/net/OemNetworkPreferences.aidl b/core/java/android/net/OemNetworkPreferences.aidl new file mode 100644 index 000000000000..2b6a4ceef592 --- /dev/null +++ b/core/java/android/net/OemNetworkPreferences.aidl @@ -0,0 +1,19 @@ +/* + * Copyright (C) 2020 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.net; + +parcelable OemNetworkPreferences; diff --git a/core/java/android/net/OemNetworkPreferences.java b/core/java/android/net/OemNetworkPreferences.java new file mode 100644 index 000000000000..07789433fbe7 --- /dev/null +++ b/core/java/android/net/OemNetworkPreferences.java @@ -0,0 +1,189 @@ +/* + * Copyright (C) 2020 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.net; + +import android.annotation.IntDef; +import android.annotation.NonNull; +import android.os.Parcelable; +import android.util.SparseArray; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Objects; + +/** @hide */ +public final class OemNetworkPreferences implements Parcelable { + /** + * Use default behavior requesting networks. Equivalent to not setting any preference at all. + */ + public static final int OEM_NETWORK_PREFERENCE_DEFAULT = 0; + + /** + * Prefer networks in order: NET_CAPABILITY_NOT_METERED, NET_CAPABILITY_OEM_PAID, default. + */ + public static final int OEM_NETWORK_PREFERENCE_OEM_PAID = 1; + + /** + * Prefer networks in order: NET_CAPABILITY_NOT_METERED, NET_CAPABILITY_OEM_PAID. + */ + public static final int OEM_NETWORK_PREFERENCE_OEM_PAID_NO_FALLBACK = 2; + + /** + * Prefer only NET_CAPABILITY_OEM_PAID networks. + */ + public static final int OEM_NETWORK_PREFERENCE_OEM_PAID_ONLY = 3; + + /** + * Prefer only NET_CAPABILITY_OEM_PRIVATE networks. + */ + public static final int OEM_NETWORK_PREFERENCE_OEM_PRIVATE_ONLY = 4; + + @NonNull + private final SparseArray<List<String>> mNetworkMappings; + + @NonNull + public SparseArray<List<String>> getNetworkPreferences() { + return mNetworkMappings.clone(); + } + + private OemNetworkPreferences(@NonNull SparseArray<List<String>> networkMappings) { + Objects.requireNonNull(networkMappings); + mNetworkMappings = networkMappings.clone(); + } + + @Override + public String toString() { + return "OemNetworkPreferences{" + "mNetworkMappings=" + mNetworkMappings + '}'; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + OemNetworkPreferences that = (OemNetworkPreferences) o; + + return mNetworkMappings.size() == that.mNetworkMappings.size() + && mNetworkMappings.toString().equals(that.mNetworkMappings.toString()); + } + + @Override + public int hashCode() { + return Objects.hash(mNetworkMappings); + } + + /** + * Builder used to create {@link OemNetworkPreferences} objects. Specify the preferred Network + * to package name mappings. + * + * @hide + */ + public static final class Builder { + private final SparseArray<List<String>> mNetworkMappings; + + public Builder() { + mNetworkMappings = new SparseArray<>(); + } + + /** + * Add a network preference for a list of packages. + * + * @param preference the desired network preference to use + * @param packages full package names (e.g.: "com.google.apps.contacts") for apps to use + * the given preference + * @return The builder to facilitate chaining. + */ + @NonNull + public Builder addNetworkPreference(@OemNetworkPreference final int preference, + @NonNull List<String> packages) { + Objects.requireNonNull(packages); + mNetworkMappings.put(preference, + Collections.unmodifiableList(new ArrayList<>(packages))); + return this; + } + + /** + * Build {@link OemNetworkPreferences} return the current OEM network preferences. + */ + @NonNull + public OemNetworkPreferences build() { + return new OemNetworkPreferences(mNetworkMappings); + } + } + + /** @hide */ + @IntDef(prefix = "OEM_NETWORK_PREFERENCE_", value = { + OEM_NETWORK_PREFERENCE_DEFAULT, + OEM_NETWORK_PREFERENCE_OEM_PAID, + OEM_NETWORK_PREFERENCE_OEM_PAID_NO_FALLBACK, + OEM_NETWORK_PREFERENCE_OEM_PAID_ONLY, + OEM_NETWORK_PREFERENCE_OEM_PRIVATE_ONLY + }) + @Retention(RetentionPolicy.SOURCE) + public @interface OemNetworkPreference {} + + /** + * Return the string value for OemNetworkPreference + * + * @param value int value of OemNetworkPreference + * @return string version of OemNetworkPreference + */ + @NonNull + public static String oemNetworkPreferenceToString(@OemNetworkPreference int value) { + switch (value) { + case OEM_NETWORK_PREFERENCE_DEFAULT: + return "OEM_NETWORK_PREFERENCE_DEFAULT"; + case OEM_NETWORK_PREFERENCE_OEM_PAID: + return "OEM_NETWORK_PREFERENCE_OEM_PAID"; + case OEM_NETWORK_PREFERENCE_OEM_PAID_NO_FALLBACK: + return "OEM_NETWORK_PREFERENCE_OEM_PAID_NO_FALLBACK"; + case OEM_NETWORK_PREFERENCE_OEM_PAID_ONLY: + return "OEM_NETWORK_PREFERENCE_OEM_PAID_ONLY"; + case OEM_NETWORK_PREFERENCE_OEM_PRIVATE_ONLY: + return "OEM_NETWORK_PREFERENCE_OEM_PRIVATE_ONLY"; + default: + return Integer.toHexString(value); + } + } + + @Override + public void writeToParcel(@NonNull android.os.Parcel dest, int flags) { + dest.writeSparseArray(mNetworkMappings); + } + + @Override + public int describeContents() { + return 0; + } + + @NonNull + public static final Parcelable.Creator<OemNetworkPreferences> CREATOR = + new Parcelable.Creator<OemNetworkPreferences>() { + @Override + public OemNetworkPreferences[] newArray(int size) { + return new OemNetworkPreferences[size]; + } + + @Override + public OemNetworkPreferences createFromParcel(@NonNull android.os.Parcel in) { + return new OemNetworkPreferences( + in.readSparseArray(getClass().getClassLoader())); + } + }; +} diff --git a/core/java/android/net/Proxy.java b/core/java/android/net/Proxy.java index 4ba7394a4bb2..f1d9669a8309 100644 --- a/core/java/android/net/Proxy.java +++ b/core/java/android/net/Proxy.java @@ -20,6 +20,7 @@ import android.annotation.SdkConstant; import android.annotation.SdkConstant.SdkConstantType; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; +import android.os.Build; import android.text.TextUtils; import android.util.Log; @@ -241,7 +242,7 @@ public final class Proxy { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final void setHttpProxySystemProperty(ProxyInfo p) { String host = null; String port = null; diff --git a/core/java/android/net/RouteInfo.java b/core/java/android/net/RouteInfo.java index 62aebb01805c..6166a753d83e 100644 --- a/core/java/android/net/RouteInfo.java +++ b/core/java/android/net/RouteInfo.java @@ -232,7 +232,7 @@ public final class RouteInfo implements Parcelable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public RouteInfo(@Nullable IpPrefix destination, @Nullable InetAddress gateway, @Nullable String iface) { this(destination, gateway, iface, RTN_UNICAST); @@ -501,7 +501,7 @@ public final class RouteInfo implements Parcelable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @Nullable public static RouteInfo selectBestRoute(Collection<RouteInfo> routes, InetAddress dest) { return NetUtils.selectBestRoute(routes, dest); diff --git a/core/java/android/net/SSLCertificateSocketFactory.java b/core/java/android/net/SSLCertificateSocketFactory.java index e51145800cc7..f3d3c6560fc2 100644 --- a/core/java/android/net/SSLCertificateSocketFactory.java +++ b/core/java/android/net/SSLCertificateSocketFactory.java @@ -115,20 +115,20 @@ public class SSLCertificateSocketFactory extends SSLSocketFactory { private SSLSocketFactory mInsecureFactory = null; @UnsupportedAppUsage private SSLSocketFactory mSecureFactory = null; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private TrustManager[] mTrustManagers = null; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private KeyManager[] mKeyManagers = null; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private byte[] mNpnProtocols = null; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private byte[] mAlpnProtocols = null; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private PrivateKey mChannelIdPrivateKey = null; @UnsupportedAppUsage private final int mHandshakeTimeoutMillis; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final SSLClientSessionCache mSessionCache; @UnsupportedAppUsage private final boolean mSecure; @@ -249,7 +249,7 @@ public class SSLCertificateSocketFactory extends SSLSocketFactory { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private SSLSocketFactory makeSocketFactory( KeyManager[] keyManagers, TrustManager[] trustManagers) { try { @@ -343,7 +343,7 @@ public class SSLCertificateSocketFactory extends SSLSocketFactory { * must be non-empty and of length less than 256. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setAlpnProtocols(byte[][] protocols) { this.mAlpnProtocols = toLengthPrefixedList(protocols); } @@ -464,13 +464,13 @@ public class SSLCertificateSocketFactory extends SSLSocketFactory { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setSoWriteTimeout(Socket socket, int writeTimeoutMilliseconds) throws SocketException { castToOpenSSLSocket(socket).setSoWriteTimeout(writeTimeoutMilliseconds); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static OpenSSLSocketImpl castToOpenSSLSocket(Socket socket) { if (!(socket instanceof OpenSSLSocketImpl)) { throw new IllegalArgumentException("Socket not created by this factory: " diff --git a/core/java/android/net/StaticIpConfiguration.java b/core/java/android/net/StaticIpConfiguration.java index f56d656f07ed..ce545974f5cb 100644 --- a/core/java/android/net/StaticIpConfiguration.java +++ b/core/java/android/net/StaticIpConfiguration.java @@ -20,6 +20,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -53,19 +54,19 @@ import java.util.Objects; @SystemApi public final class StaticIpConfiguration implements Parcelable { /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @Nullable public LinkAddress ipAddress; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @Nullable public InetAddress gateway; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @NonNull public final ArrayList<InetAddress> dnsServers; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @Nullable public String domains; diff --git a/core/java/android/net/TrafficStats.java b/core/java/android/net/TrafficStats.java index e7bba69dbb84..a985e934ed3c 100644 --- a/core/java/android/net/TrafficStats.java +++ b/core/java/android/net/TrafficStats.java @@ -565,7 +565,7 @@ public class TrafficStats { } /** {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static long getMobileTcpRxPackets() { long total = 0; for (String iface : getMobileIfaces()) { @@ -581,7 +581,7 @@ public class TrafficStats { } /** {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static long getMobileTcpTxPackets() { long total = 0; for (String iface : getMobileIfaces()) { diff --git a/core/java/android/net/WebAddress.java b/core/java/android/net/WebAddress.java index aa3777d55342..77fb18411546 100644 --- a/core/java/android/net/WebAddress.java +++ b/core/java/android/net/WebAddress.java @@ -161,7 +161,7 @@ public class WebAddress { } /** {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setHost(String host) { mHost = host; } @@ -201,7 +201,7 @@ public class WebAddress { } /** {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public String getAuthInfo() { return mAuthInfo; } diff --git a/core/java/android/net/metrics/ApfProgramEvent.java b/core/java/android/net/metrics/ApfProgramEvent.java index c50bae90488b..ab12cdd22685 100644 --- a/core/java/android/net/metrics/ApfProgramEvent.java +++ b/core/java/android/net/metrics/ApfProgramEvent.java @@ -21,6 +21,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.text.TextUtils; @@ -55,22 +56,22 @@ public final class ApfProgramEvent implements IpConnectivityLog.Event { public @interface Flags {} /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final long lifetime; // Maximum computed lifetime of the program in seconds /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final long actualLifetime; // Effective program lifetime in seconds /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final int filteredRas; // Number of RAs filtered by the APF program /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final int currentRas; // Total number of current RAs at generation time /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final int programLength; // Length of the APF program in bytes /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final int flags; // Bitfield compound of FLAG_* constants private ApfProgramEvent(long lifetime, long actualLifetime, int filteredRas, int currentRas, @@ -217,7 +218,7 @@ public final class ApfProgramEvent implements IpConnectivityLog.Event { }; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static @Flags int flagsFor(boolean hasIPv4, boolean multicastFilterOn) { int bitfield = 0; if (hasIPv4) { diff --git a/core/java/android/net/metrics/ApfStats.java b/core/java/android/net/metrics/ApfStats.java index 2a601b273ef4..fcafb7ebd676 100644 --- a/core/java/android/net/metrics/ApfStats.java +++ b/core/java/android/net/metrics/ApfStats.java @@ -20,6 +20,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -34,61 +35,61 @@ public final class ApfStats implements IpConnectivityLog.Event { * time interval in milliseconds these stastistics covers. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final long durationMs; /** * number of received RAs. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final int receivedRas; /** * number of received RAs matching a known RA. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final int matchingRas; /** * number of received RAs ignored due to the MAX_RAS limit. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final int droppedRas; /** * number of received RAs with a minimum lifetime of 0. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final int zeroLifetimeRas; /** * number of received RAs that could not be parsed. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final int parseErrors; /** * number of APF program updates from receiving RAs. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final int programUpdates; /** * total number of APF program updates. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final int programUpdatesAll; /** * number of APF program updates from allowing multicast traffic. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final int programUpdatesAllowingMulticast; /** * maximum APF program size advertised by hardware. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final int maxProgramSize; private ApfStats(Parcel in) { diff --git a/core/java/android/net/metrics/DhcpClientEvent.java b/core/java/android/net/metrics/DhcpClientEvent.java index e0a93dd1c18f..8de427de1dab 100644 --- a/core/java/android/net/metrics/DhcpClientEvent.java +++ b/core/java/android/net/metrics/DhcpClientEvent.java @@ -20,6 +20,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.text.TextUtils; @@ -38,7 +39,7 @@ public final class DhcpClientEvent implements IpConnectivityLog.Event { /** @hide */ public final int durationMs; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private DhcpClientEvent(String msg, int durationMs) { this.msg = msg; this.durationMs = durationMs; diff --git a/core/java/android/net/nsd/INsdManager.aidl b/core/java/android/net/nsd/INsdManager.aidl index 9484c74bcb23..e9e8935a19b2 100644 --- a/core/java/android/net/nsd/INsdManager.aidl +++ b/core/java/android/net/nsd/INsdManager.aidl @@ -25,7 +25,7 @@ import android.os.Messenger; */ interface INsdManager { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) Messenger getMessenger(); void setEnabled(boolean enable); } diff --git a/core/java/android/nfc/INfcAdapterExtras.aidl b/core/java/android/nfc/INfcAdapterExtras.aidl index dd260bc6f2f6..cde57c58ca1f 100644 --- a/core/java/android/nfc/INfcAdapterExtras.aidl +++ b/core/java/android/nfc/INfcAdapterExtras.aidl @@ -23,18 +23,18 @@ import android.os.Bundle; * {@hide} */ interface INfcAdapterExtras { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) Bundle open(in String pkg, IBinder b); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) Bundle close(in String pkg, IBinder b); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) Bundle transceive(in String pkg, in byte[] data_in); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) int getCardEmulationRoute(in String pkg); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void setCardEmulationRoute(in String pkg, int route); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void authenticate(in String pkg, in byte[] token); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) String getDriverName(in String pkg); } diff --git a/core/java/android/nfc/NdefRecord.java b/core/java/android/nfc/NdefRecord.java index 74f8cb4c1d3d..f72d4be61554 100644 --- a/core/java/android/nfc/NdefRecord.java +++ b/core/java/android/nfc/NdefRecord.java @@ -19,6 +19,7 @@ package android.nfc; import android.compat.annotation.UnsupportedAppUsage; import android.content.Intent; import android.net.Uri; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.util.proto.ProtoOutputStream; @@ -281,7 +282,7 @@ public final class NdefRecord implements Parcelable { private final short mTnf; private final byte[] mType; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final byte[] mId; private final byte[] mPayload; diff --git a/core/java/android/nfc/NfcAdapter.java b/core/java/android/nfc/NfcAdapter.java index c61f10f50c93..90e01ebe6205 100644 --- a/core/java/android/nfc/NfcAdapter.java +++ b/core/java/android/nfc/NfcAdapter.java @@ -35,6 +35,7 @@ import android.nfc.tech.MifareClassic; import android.nfc.tech.Ndef; import android.nfc.tech.NfcA; import android.nfc.tech.NfcF; +import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.IBinder; @@ -2077,7 +2078,7 @@ public final class NfcAdapter { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public INfcAdapterExtras getNfcAdapterExtrasInterface() { if (mContext == null) { throw new UnsupportedOperationException("You need a context on NfcAdapter to use the " diff --git a/core/java/android/nfc/Tag.java b/core/java/android/nfc/Tag.java index b9e6ff4a5a9e..398ec63a931b 100644 --- a/core/java/android/nfc/Tag.java +++ b/core/java/android/nfc/Tag.java @@ -29,6 +29,7 @@ import android.nfc.tech.NfcBarcode; import android.nfc.tech.NfcF; import android.nfc.tech.NfcV; import android.nfc.tech.TagTechnology; +import android.os.Build; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; @@ -111,7 +112,7 @@ import java.util.HashMap; * <p> */ public final class Tag implements Parcelable { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) final byte[] mId; final int[] mTechList; final String[] mTechStringList; diff --git a/core/java/android/os/BaseBundle.java b/core/java/android/os/BaseBundle.java index 1d28489d2ac8..1692921f4a8f 100644 --- a/core/java/android/os/BaseBundle.java +++ b/core/java/android/os/BaseBundle.java @@ -315,7 +315,7 @@ public class BaseBundle { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isParcelled() { return mParcelledData != null; } diff --git a/core/java/android/os/BatteryManager.java b/core/java/android/os/BatteryManager.java index 9a16d3fee600..6d4593a2ce87 100644 --- a/core/java/android/os/BatteryManager.java +++ b/core/java/android/os/BatteryManager.java @@ -120,7 +120,7 @@ public class BatteryManager { * Int value set to the maximum charging current supported by the charger in micro amperes. * {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String EXTRA_MAX_CHARGING_CURRENT = "max_charging_current"; /** @@ -128,7 +128,7 @@ public class BatteryManager { * Int value set to the maximum charging voltage supported by the charger in micro volts. * {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String EXTRA_MAX_CHARGING_VOLTAGE = "max_charging_voltage"; /** @@ -136,7 +136,7 @@ public class BatteryManager { * integer containing the charge counter present in the battery. * {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String EXTRA_CHARGE_COUNTER = "charge_counter"; /** diff --git a/core/java/android/os/BatteryStats.java b/core/java/android/os/BatteryStats.java index 48d3267f5fec..72b8e658f426 100644 --- a/core/java/android/os/BatteryStats.java +++ b/core/java/android/os/BatteryStats.java @@ -86,7 +86,7 @@ public abstract class BatteryStats implements Parcelable { /** * A constant indicating a partial wake lock timer. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int WAKE_TYPE_PARTIAL = 0; /** @@ -783,7 +783,7 @@ public abstract class BatteryStats implements Parcelable { * Returns the timer keeping track of background wifi scans. */ public abstract Timer getWifiScanBackgroundTimer(); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public abstract long getWifiBatchedScanTime(int csphBin, long elapsedRealtimeUs, int which); public abstract int getWifiBatchedScanCount(int csphBin, int which); @UnsupportedAppUsage diff --git a/core/java/android/os/Broadcaster.java b/core/java/android/os/Broadcaster.java index d1a953f23f7f..88760b0b6828 100644 --- a/core/java/android/os/Broadcaster.java +++ b/core/java/android/os/Broadcaster.java @@ -21,7 +21,7 @@ import android.compat.annotation.UnsupportedAppUsage; /** @hide */ public class Broadcaster { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Broadcaster() { } @@ -32,7 +32,7 @@ public class Broadcaster * When this broadcaster pushes a message with senderWhat in the what field, * target will be sent a copy of that message with targetWhat in the what field. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void request(int senderWhat, Handler target, int targetWhat) { synchronized (this) { @@ -100,7 +100,7 @@ public class Broadcaster /** * Unregister for notifications for this senderWhat/target/targetWhat tuple. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void cancelRequest(int senderWhat, Handler target, int targetWhat) { synchronized (this) { @@ -173,7 +173,7 @@ public class Broadcaster * Send out msg. Anyone who has registered via the request() method will be * sent the message. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void broadcast(Message msg) { synchronized (this) { diff --git a/core/java/android/os/Bundle.java b/core/java/android/os/Bundle.java index f8f8bf746afd..1c1f5c034cd9 100644 --- a/core/java/android/os/Bundle.java +++ b/core/java/android/os/Bundle.java @@ -174,7 +174,7 @@ public final class Bundle extends BaseBundle implements Cloneable, Parcelable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static Bundle forPair(String key, String value) { Bundle b = new Bundle(1); b.putString(key, value); @@ -306,7 +306,7 @@ public final class Bundle extends BaseBundle implements Cloneable, Parcelable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getSize() { if (mParcelledData != null) { return mParcelledData.dataSize(); @@ -389,7 +389,7 @@ public final class Bundle extends BaseBundle implements Cloneable, Parcelable { * Filter values in Bundle to only basic types. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Bundle filterValues() { unparcel(); Bundle bundle = this; diff --git a/core/java/android/os/Debug.java b/core/java/android/os/Debug.java index a2e53e29193c..8ab734d2325e 100644 --- a/core/java/android/os/Debug.java +++ b/core/java/android/os/Debug.java @@ -88,7 +88,7 @@ public final class Debug // set/cleared by waitForDebugger() private static volatile boolean mWaiting = false; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private Debug() {} /* @@ -120,7 +120,7 @@ public final class Debug @UnsupportedAppUsage public int dalvikSwappablePss; /** @hide The resident set size for dalvik heap. (Without other Dalvik overhead.) */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int dalvikRss; /** The private dirty pages used by dalvik heap. */ public int dalvikPrivateDirty; @@ -140,7 +140,7 @@ public final class Debug public int dalvikSwappedOut; /** The dirty dalvik pages that have been swapped out, proportional. */ /** @hide We may want to expose this, eventually. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int dalvikSwappedOutPss; /** The proportional set size for the native heap. */ @@ -150,7 +150,7 @@ public final class Debug @UnsupportedAppUsage public int nativeSwappablePss; /** @hide The resident set size for the native heap. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int nativeRss; /** The private dirty pages used by the native heap. */ public int nativePrivateDirty; @@ -170,7 +170,7 @@ public final class Debug public int nativeSwappedOut; /** The dirty native pages that have been swapped out, proportional. */ /** @hide We may want to expose this, eventually. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int nativeSwappedOutPss; /** The proportional set size for everything else. */ @@ -180,7 +180,7 @@ public final class Debug @UnsupportedAppUsage public int otherSwappablePss; /** @hide The resident set size for everything else. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int otherRss; /** The private dirty pages used by everything else. */ public int otherPrivateDirty; @@ -200,12 +200,12 @@ public final class Debug public int otherSwappedOut; /** The dirty pages used by anyting else that have been swapped out, proportional. */ /** @hide We may want to expose this, eventually. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int otherSwappedOutPss; /** Whether the kernel reports proportional swap usage */ /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean hasSwappedOutPss; /** @hide */ @@ -2042,7 +2042,7 @@ public final class Debug * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static native void dumpNativeHeap(FileDescriptor fd); /** diff --git a/core/java/android/os/Environment.java b/core/java/android/os/Environment.java index 11665fbefdad..d3eb3957981b 100644 --- a/core/java/android/os/Environment.java +++ b/core/java/android/os/Environment.java @@ -681,7 +681,7 @@ public class Environment { } /** {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static File getLegacyExternalStorageObbDirectory() { return buildPath(getLegacyExternalStorageDirectory(), DIR_ANDROID, DIR_OBB); } @@ -1002,7 +1002,7 @@ public class Environment { * Generates the raw path to an application's OBB files * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static File[] buildExternalStorageAppObbDirs(String packageName) { throwIfUserRequired(); return sCurrentUser.buildExternalStorageAppObbDirs(packageName); diff --git a/core/java/android/os/FileObserver.java b/core/java/android/os/FileObserver.java index ca303d973235..d4b563ba8ca3 100644 --- a/core/java/android/os/FileObserver.java +++ b/core/java/android/os/FileObserver.java @@ -142,7 +142,7 @@ public abstract class FileObserver { stopWatching(m_fd, descriptors); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void onEvent(int wfd, @NotifyEventType int mask, String path) { // look up our observer, fixing up the map if necessary... FileObserver observer = null; diff --git a/core/java/android/os/FileUtils.java b/core/java/android/os/FileUtils.java index 70c924a46c17..a4d6c3845fbf 100644 --- a/core/java/android/os/FileUtils.java +++ b/core/java/android/os/FileUtils.java @@ -181,7 +181,7 @@ public final class FileUtils { * @return 0 on success, otherwise errno. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static int setPermissions(FileDescriptor fd, int mode, int uid, int gid) { try { Os.fchmod(fd, mode); @@ -664,7 +664,7 @@ public final class FileUtils { } /** {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static void stringToFile(File file, String string) throws IOException { stringToFile(file.getAbsolutePath(), string); } @@ -713,7 +713,7 @@ public final class FileUtils { * to its potential for collision. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @Deprecated public static long checksumCrc32(File file) throws FileNotFoundException, IOException { CRC32 checkSummer = new CRC32(); @@ -800,7 +800,7 @@ public final class FileUtils { * @return if any files were deleted. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static boolean deleteOlderFiles(File dir, int minCount, long minAgeMs) { if (minCount < 0 || minAgeMs < 0) { throw new IllegalArgumentException("Constraints must be positive or 0"); @@ -909,7 +909,7 @@ public final class FileUtils { } /** {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static boolean deleteContents(File dir) { File[] files = dir.listFiles(); boolean success = true; diff --git a/core/java/android/os/Handler.java b/core/java/android/os/Handler.java index 24aaa583f542..d310d6e7530d 100644 --- a/core/java/android/os/Handler.java +++ b/core/java/android/os/Handler.java @@ -189,7 +189,7 @@ public class Handler { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Handler(boolean async) { this(null, async); } @@ -297,7 +297,7 @@ public class Handler { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @NonNull public static Handler getMain() { if (MAIN_THREAD_HANDLER == null) { diff --git a/core/java/android/os/HwBinder.java b/core/java/android/os/HwBinder.java index 0d2bfdf04905..feed20800fd4 100644 --- a/core/java/android/os/HwBinder.java +++ b/core/java/android/os/HwBinder.java @@ -159,7 +159,7 @@ public abstract class HwBinder implements IHwBinder { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) public static void reportSyspropChanged() { native_report_sysprop_change(); } diff --git a/core/java/android/os/IBinder.java b/core/java/android/os/IBinder.java index 8a8a6af09e5f..d91c458a474b 100644 --- a/core/java/android/os/IBinder.java +++ b/core/java/android/os/IBinder.java @@ -150,7 +150,7 @@ public interface IBinder { int LIKE_TRANSACTION = ('_'<<24)|('L'<<16)|('I'<<8)|'K'; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) int SYSPROPS_TRANSACTION = ('_'<<24)|('S'<<16)|('P'<<8)|'R'; /** diff --git a/core/java/android/os/INetworkManagementService.aidl b/core/java/android/os/INetworkManagementService.aidl index 136f6121e585..e1d900528f07 100644 --- a/core/java/android/os/INetworkManagementService.aidl +++ b/core/java/android/os/INetworkManagementService.aidl @@ -68,7 +68,7 @@ interface INetworkManagementService /** * Clear all IP addresses on the specified interface */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void clearInterfaceAddresses(String iface); /** @@ -84,26 +84,26 @@ interface INetworkManagementService /** * Set interface IPv6 privacy extensions */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void setInterfaceIpv6PrivacyExtensions(String iface, boolean enable); /** * Disable IPv6 on an interface */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void disableIpv6(String iface); /** * Enable IPv6 on an interface */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void enableIpv6(String iface); /** * Set IPv6 autoconf address generation mode. * This is a no-op if an unsupported mode is requested. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void setIPv6AddrGenMode(String iface, int mode); /** @@ -291,7 +291,7 @@ interface INetworkManagementService /** * Return status of bandwidth control module. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) boolean isBandwidthControlEnabled(); /** diff --git a/core/java/android/os/IPowerManager.aidl b/core/java/android/os/IPowerManager.aidl index 187fd590c080..d23d2eca7603 100644 --- a/core/java/android/os/IPowerManager.aidl +++ b/core/java/android/os/IPowerManager.aidl @@ -50,7 +50,7 @@ interface IPowerManager @UnsupportedAppUsage void userActivity(long time, int event, int flags); void wakeUp(long time, int reason, String details, String opPackageName); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void goToSleep(long time, int reason, int flags); @UnsupportedAppUsage(maxTargetSdk = 28) void nap(long time); diff --git a/core/java/android/os/LocaleList.java b/core/java/android/os/LocaleList.java index ab4bb0b9f2cd..133288f1b3b0 100644 --- a/core/java/android/os/LocaleList.java +++ b/core/java/android/os/LocaleList.java @@ -25,6 +25,7 @@ import android.icu.util.ULocale; import com.android.internal.annotations.GuardedBy; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.HashSet; @@ -151,18 +152,18 @@ public final class LocaleList implements Parcelable { /** * Creates a new {@link LocaleList}. * + * If two or more same locales are passed, the repeated locales will be dropped. * <p>For empty lists of {@link Locale} items it is better to use {@link #getEmptyLocaleList()}, * which returns a pre-constructed empty list.</p> * * @throws NullPointerException if any of the input locales is <code>null</code>. - * @throws IllegalArgumentException if any of the input locales repeat. */ public LocaleList(@NonNull Locale... list) { if (list.length == 0) { mList = sEmptyList; mStringRepresentation = ""; } else { - final Locale[] localeList = new Locale[list.length]; + final ArrayList<Locale> localeList = new ArrayList<>(); final HashSet<Locale> seenLocales = new HashSet<Locale>(); final StringBuilder sb = new StringBuilder(); for (int i = 0; i < list.length; i++) { @@ -170,10 +171,10 @@ public final class LocaleList implements Parcelable { if (l == null) { throw new NullPointerException("list[" + i + "] is null"); } else if (seenLocales.contains(l)) { - throw new IllegalArgumentException("list[" + i + "] is a repetition"); + // Dropping duplicated locale entries. } else { final Locale localeClone = (Locale) l.clone(); - localeList[i] = localeClone; + localeList.add(localeClone); sb.append(localeClone.toLanguageTag()); if (i < list.length - 1) { sb.append(','); @@ -181,7 +182,7 @@ public final class LocaleList implements Parcelable { seenLocales.add(localeClone); } } - mList = localeList; + mList = localeList.toArray(new Locale[localeList.size()]); mStringRepresentation = sb.toString(); } } @@ -545,7 +546,7 @@ public final class LocaleList implements Parcelable { * * {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static void setDefault(@NonNull @Size(min=1) LocaleList locales, int localeIndex) { if (locales == null) { throw new NullPointerException("locales is null"); diff --git a/core/java/android/os/MemoryFile.java b/core/java/android/os/MemoryFile.java index f84f9f05b13e..95337f6a1b1e 100644 --- a/core/java/android/os/MemoryFile.java +++ b/core/java/android/os/MemoryFile.java @@ -41,7 +41,7 @@ public class MemoryFile { private static String TAG = "MemoryFile"; // Returns 'true' if purged, 'false' otherwise - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static native boolean native_pin(FileDescriptor fd, boolean pin) throws IOException; @UnsupportedAppUsage private static native int native_get_size(FileDescriptor fd) throws IOException; diff --git a/core/java/android/os/MessageQueue.java b/core/java/android/os/MessageQueue.java index 7213b067a691..87c4f331e93f 100644 --- a/core/java/android/os/MessageQueue.java +++ b/core/java/android/os/MessageQueue.java @@ -266,7 +266,7 @@ public final class MessageQueue { } // Called from native code. - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private int dispatchEvents(int fd, int events) { // Get the file descriptor record and any state that might change. final FileDescriptorRecord record; @@ -635,7 +635,7 @@ public final class MessageQueue { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) boolean hasMessages(Handler h, Runnable r, Object object) { if (h == null) { return false; diff --git a/core/java/android/os/Parcel.java b/core/java/android/os/Parcel.java index fe70a8803eb4..9c7f8be6526b 100644 --- a/core/java/android/os/Parcel.java +++ b/core/java/android/os/Parcel.java @@ -483,11 +483,11 @@ public final class Parcel { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static native long getGlobalAllocSize(); /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static native long getGlobalAllocCount(); /** @@ -711,7 +711,7 @@ public final class Parcel { * {@hide} * {@SystemApi} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final void writeBlob(@Nullable byte[] b) { writeBlob(b, 0, (b != null) ? b.length : 0); } @@ -983,7 +983,7 @@ public final class Parcel { /** * @hide For testing only. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void writeArrayMap(@Nullable ArrayMap<String, Object> val) { writeArrayMapInternal(val); } @@ -1022,7 +1022,7 @@ public final class Parcel { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void writeArraySet(@Nullable ArraySet<? extends Object> val) { final int size = (val != null) ? val.size() : -1; writeInt(size); @@ -2684,7 +2684,7 @@ public final class Parcel { * {@hide} * {@SystemApi} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @Nullable public final byte[] readBlob() { return nativeReadBlob(mNativePtr); @@ -3594,7 +3594,7 @@ public final class Parcel { /** * @hide For testing only. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void readArrayMap(@NonNull ArrayMap outVal, @Nullable ClassLoader loader) { final int N = readInt(); if (N < 0) { diff --git a/core/java/android/os/ParcelableParcel.java b/core/java/android/os/ParcelableParcel.java index 38d980ecb0f1..3be630f2b382 100644 --- a/core/java/android/os/ParcelableParcel.java +++ b/core/java/android/os/ParcelableParcel.java @@ -27,7 +27,7 @@ public class ParcelableParcel implements Parcelable { final Parcel mParcel; final ClassLoader mClassLoader; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public ParcelableParcel(ClassLoader loader) { mParcel = Parcel.obtain(); mClassLoader = loader; @@ -46,13 +46,13 @@ public class ParcelableParcel implements Parcelable { mParcel.appendFrom(src, pos, size); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Parcel getParcel() { mParcel.setDataPosition(0); return mParcel; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public ClassLoader getClassLoader() { return mClassLoader; } @@ -68,7 +68,7 @@ public class ParcelableParcel implements Parcelable { dest.appendFrom(mParcel, 0, mParcel.dataSize()); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final Parcelable.ClassLoaderCreator<ParcelableParcel> CREATOR = new Parcelable.ClassLoaderCreator<ParcelableParcel>() { public ParcelableParcel createFromParcel(Parcel in) { diff --git a/core/java/android/os/PerformanceCollector.java b/core/java/android/os/PerformanceCollector.java index 27de48d40188..e6471ae1c00a 100644 --- a/core/java/android/os/PerformanceCollector.java +++ b/core/java/android/os/PerformanceCollector.java @@ -364,7 +364,7 @@ public class PerformanceCollector { * @param label description of code block between startTiming and * stopTiming, used to label output */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void startTiming(String label) { if (mPerfWriter != null) mPerfWriter.writeStartTiming(label); @@ -414,7 +414,7 @@ public class PerformanceCollector { * between calls to startTiming and stopTiming. List of iterations * is keyed by {@link #METRIC_KEY_ITERATIONS iterations}. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Bundle stopTiming(String label) { addIteration(label); if (mPerfWriter != null) diff --git a/core/java/android/os/PowerManager.java b/core/java/android/os/PowerManager.java index 0b211cff1e1f..a0d2f0d9f742 100644 --- a/core/java/android/os/PowerManager.java +++ b/core/java/android/os/PowerManager.java @@ -1013,7 +1013,7 @@ public final class PowerManager { * Gets a float screen brightness setting. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public float getBrightnessConstraint(int constraint) { try { return mService.getBrightnessConstraint(constraint); @@ -2207,7 +2207,7 @@ public final class PowerManager { * This broadcast is only sent to registered receivers. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @SdkConstant(SdkConstant.SdkConstantType.BROADCAST_INTENT_ACTION) public static final String ACTION_LIGHT_DEVICE_IDLE_MODE_CHANGED = "android.os.action.LIGHT_DEVICE_IDLE_MODE_CHANGED"; diff --git a/core/java/android/os/Process.java b/core/java/android/os/Process.java index 7a48a2a03503..c2c4d6266af6 100644 --- a/core/java/android/os/Process.java +++ b/core/java/android/os/Process.java @@ -70,7 +70,7 @@ public class Process { * Defines the UID/GID for the log group. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int LOG_UID = 1007; /** @@ -83,14 +83,14 @@ public class Process { * Defines the UID/GID for the mediaserver process. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int MEDIA_UID = 1013; /** * Defines the UID/GID for the DRM process. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int DRM_UID = 1019; /** @@ -103,7 +103,7 @@ public class Process { * Defines the UID/GID for the group that controls VPN services. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int VPN_UID = 1016; /** @@ -122,7 +122,7 @@ public class Process { * Defines the UID/GID for the NFC service process. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int NFC_UID = 1027; /** @@ -276,7 +276,7 @@ public class Process { * First uid used for fully isolated sandboxed processes (with no permissions of their own) * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @TestApi public static final int FIRST_ISOLATED_UID = 99000; @@ -284,7 +284,7 @@ public class Process { * Last uid used for fully isolated sandboxed processes (with no permissions of their own) * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @TestApi public static final int LAST_ISOLATED_UID = 99999; @@ -1164,38 +1164,38 @@ public class Process { public static final native int[] getPids(String path, int[] lastArray); /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int PROC_TERM_MASK = 0xff; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int PROC_ZERO_TERM = 0; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int PROC_SPACE_TERM = (int)' '; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int PROC_TAB_TERM = (int)'\t'; /** @hide */ public static final int PROC_NEWLINE_TERM = (int) '\n'; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int PROC_COMBINE = 0x100; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int PROC_PARENS = 0x200; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int PROC_QUOTES = 0x400; /** @hide */ public static final int PROC_CHAR = 0x800; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int PROC_OUT_STRING = 0x1000; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int PROC_OUT_LONG = 0x2000; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int PROC_OUT_FLOAT = 0x4000; /** diff --git a/core/java/android/os/ServiceManager.java b/core/java/android/os/ServiceManager.java index 35e7bad83736..71344f90de75 100644 --- a/core/java/android/os/ServiceManager.java +++ b/core/java/android/os/ServiceManager.java @@ -190,7 +190,7 @@ public final class ServiceManager { * @param dumpPriority supported dump priority levels as a bitmask * to access this service */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static void addService(String name, IBinder service, boolean allowIsolated, int dumpPriority) { try { diff --git a/core/java/android/os/ShellCommand.java b/core/java/android/os/ShellCommand.java index 0be3d681c80a..3358ce13ed52 100644 --- a/core/java/android/os/ShellCommand.java +++ b/core/java/android/os/ShellCommand.java @@ -98,7 +98,7 @@ public abstract class ShellCommand extends BasicShellCommandHandler { return super.handleDefaultCommands(cmd); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public String peekNextArg() { return super.peekNextArg(); } diff --git a/core/java/android/os/StatFs.java b/core/java/android/os/StatFs.java index 6d1a1164abb4..eb8e71761294 100644 --- a/core/java/android/os/StatFs.java +++ b/core/java/android/os/StatFs.java @@ -26,7 +26,7 @@ import android.system.StructStatVfs; * wrapper for Unix statvfs(). */ public class StatFs { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private StructStatVfs mStat; /** diff --git a/core/java/android/os/StrictMode.java b/core/java/android/os/StrictMode.java index 6c5b04a649e2..730d8c460e73 100644 --- a/core/java/android/os/StrictMode.java +++ b/core/java/android/os/StrictMode.java @@ -2376,7 +2376,7 @@ public final class StrictMode { * Binder for its current (native) thread-local policy value and synchronize it to libcore's * (Java) thread-local policy value. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static void onBinderStrictModePolicyChange(@ThreadPolicyMask int newPolicy) { setBlockGuardPolicy(newPolicy); } @@ -2616,7 +2616,7 @@ public final class StrictMode { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static void incrementExpectedActivityCount(Class klass) { if (klass == null) { return; diff --git a/core/java/android/os/SystemClock.java b/core/java/android/os/SystemClock.java index fd68c2b9b5fd..b1014af3122e 100644 --- a/core/java/android/os/SystemClock.java +++ b/core/java/android/os/SystemClock.java @@ -238,7 +238,7 @@ public final class SystemClock { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @CriticalNative public static native long currentThreadTimeMicro(); diff --git a/core/java/android/os/SystemProperties.java b/core/java/android/os/SystemProperties.java index a16452705efc..ded9be5eb74a 100644 --- a/core/java/android/os/SystemProperties.java +++ b/core/java/android/os/SystemProperties.java @@ -60,7 +60,7 @@ public class SystemProperties { * uses reflection to read this whenever text is selected (http://b/36095274). * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int PROP_NAME_MAX = Integer.MAX_VALUE; /** @hide */ @@ -256,7 +256,7 @@ public class SystemProperties { * @param callback The {@link Runnable} that should be removed. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static void removeChangeCallback(@NonNull Runnable callback) { synchronized (sChangeCallbacks) { if (sChangeCallbacks.contains(callback)) { diff --git a/core/java/android/os/SystemService.java b/core/java/android/os/SystemService.java index 5871d2d9b58f..9b0ac8fdeb7a 100644 --- a/core/java/android/os/SystemService.java +++ b/core/java/android/os/SystemService.java @@ -66,7 +66,7 @@ public class SystemService { } /** Request that the init daemon stop a named service. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static void stop(String name) { SystemProperties.set("ctl.stop", name); } diff --git a/core/java/android/os/Trace.java b/core/java/android/os/Trace.java index 58c8efa3a972..9c9e4995d673 100644 --- a/core/java/android/os/Trace.java +++ b/core/java/android/os/Trace.java @@ -52,7 +52,7 @@ public final class Trace { /** @hide */ public static final long TRACE_TAG_INPUT = 1L << 2; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final long TRACE_TAG_VIEW = 1L << 3; /** @hide */ public static final long TRACE_TAG_WEBVIEW = 1L << 4; diff --git a/core/java/android/os/UpdateLock.java b/core/java/android/os/UpdateLock.java index 036d0951c19a..5aa9401ddb27 100644 --- a/core/java/android/os/UpdateLock.java +++ b/core/java/android/os/UpdateLock.java @@ -51,7 +51,7 @@ public class UpdateLock { * locker releases theirs. The broadcast is sticky but is sent only to * registered receivers. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String UPDATE_LOCK_CHANGED = "android.os.UpdateLock.UPDATE_LOCK_CHANGED"; /** @@ -60,7 +60,7 @@ public class UpdateLock { * update operation. True means that updates are okay right now; false indicates * that perhaps later would be a better time. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String NOW_IS_CONVENIENT = "nowisconvenient"; /** @@ -69,7 +69,7 @@ public class UpdateLock { * in the System.currentTimeMillis() time base, which may be non-monotonic especially * around reboots. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String TIMESTAMP = "timestamp"; /** @@ -94,7 +94,7 @@ public class UpdateLock { /** * Is this lock currently held? */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isHeld() { synchronized (mToken) { return mHeld; @@ -104,7 +104,7 @@ public class UpdateLock { /** * Acquire an update lock. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void acquire() { if (DEBUG) { Log.v(TAG, "acquire() : " + this, new RuntimeException("here")); @@ -131,7 +131,7 @@ public class UpdateLock { /** * Release this update lock. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void release() { if (DEBUG) Log.v(TAG, "release() : " + this, new RuntimeException("here")); checkService(); diff --git a/core/java/android/os/UserHandle.java b/core/java/android/os/UserHandle.java index 5357cf373a84..bef876f92a01 100644 --- a/core/java/android/os/UserHandle.java +++ b/core/java/android/os/UserHandle.java @@ -97,7 +97,7 @@ public final class UserHandle implements Parcelable { public static final @UserIdInt int USER_SYSTEM = 0; /** @hide A user serial constant to indicate the "system" user of the device */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int USER_SERIAL_SYSTEM = 0; /** @hide A user handle to indicate the "system" user of the device */ @@ -133,22 +133,22 @@ public final class UserHandle implements Parcelable { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int ERR_GID = -1; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int AID_ROOT = android.os.Process.ROOT_UID; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int AID_APP_START = android.os.Process.FIRST_APPLICATION_UID; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int AID_APP_END = android.os.Process.LAST_APPLICATION_UID; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int AID_SHARED_GID_START = android.os.Process.FIRST_SHARED_APPLICATION_GID; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int AID_CACHE_GID_START = android.os.Process.FIRST_APPLICATION_CACHE_GID; /** The userId represented by this UserHandle. */ diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java index b748a0d1ecc6..8926b2740d6e 100644 --- a/core/java/android/os/UserManager.java +++ b/core/java/android/os/UserManager.java @@ -1020,7 +1020,7 @@ public class UserManager { * @see #getUserRestrictions() * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String DISALLOW_RECORD_AUDIO = "no_record_audio"; /** @@ -1662,7 +1662,7 @@ public class UserManager { * @hide */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean canSwitchUsers() { boolean allowUserSwitchingWhenSystemUserLocked = Settings.Global.getInt( mContext.getContentResolver(), @@ -2024,7 +2024,7 @@ public class UserManager { * @return whether user is a guest user. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @RequiresPermission(anyOf = {Manifest.permission.MANAGE_USERS, Manifest.permission.CREATE_USERS}) public boolean isGuestUser(@UserIdInt int userId) { @@ -2355,7 +2355,7 @@ public class UserManager { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public long getUserStartRealtime() { try { return mService.getUserStartRealtime(); @@ -2370,7 +2370,7 @@ public class UserManager { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public long getUserUnlockRealtime() { try { return mService.getUserUnlockRealtime(); @@ -4132,7 +4132,7 @@ public class UserManager { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static boolean isDeviceInDemoMode(Context context) { return Settings.Global.getInt(context.getContentResolver(), Settings.Global.DEVICE_DEMO_MODE, 0) > 0; diff --git a/core/java/android/os/VibrationEffect.java b/core/java/android/os/VibrationEffect.java index 06254574401b..8be4bfde2fa6 100644 --- a/core/java/android/os/VibrationEffect.java +++ b/core/java/android/os/VibrationEffect.java @@ -82,7 +82,7 @@ public abstract class VibrationEffect implements Parcelable { * @see #get(int) * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @TestApi public static final int EFFECT_THUD = Effect.THUD; @@ -91,7 +91,7 @@ public abstract class VibrationEffect implements Parcelable { * @see #get(int) * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @TestApi public static final int EFFECT_POP = Effect.POP; @@ -132,7 +132,7 @@ public abstract class VibrationEffect implements Parcelable { * @see #get(Uri, Context) * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @TestApi public static final int[] RINGTONES = { Effect.RINGTONE_1, @@ -518,7 +518,7 @@ public abstract class VibrationEffect implements Parcelable { out.writeInt(mAmplitude); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final @android.annotation.NonNull Parcelable.Creator<OneShot> CREATOR = new Parcelable.Creator<OneShot>() { @Override diff --git a/core/java/android/os/health/HealthStatsParceler.java b/core/java/android/os/health/HealthStatsParceler.java index f28a9747bc44..eb864a4c3d3f 100644 --- a/core/java/android/os/health/HealthStatsParceler.java +++ b/core/java/android/os/health/HealthStatsParceler.java @@ -18,6 +18,7 @@ package android.os.health; import android.annotation.TestApi; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -38,7 +39,7 @@ public class HealthStatsParceler implements Parcelable { private HealthStatsWriter mWriter; private HealthStats mHealthStats; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final @android.annotation.NonNull Parcelable.Creator<HealthStatsParceler> CREATOR = new Parcelable.Creator<HealthStatsParceler>() { public HealthStatsParceler createFromParcel(Parcel in) { diff --git a/core/java/android/os/health/SystemHealthManager.java b/core/java/android/os/health/SystemHealthManager.java index 6e259ea2642c..8181911ec783 100644 --- a/core/java/android/os/health/SystemHealthManager.java +++ b/core/java/android/os/health/SystemHealthManager.java @@ -52,7 +52,7 @@ public class SystemHealthManager { * Construct a new SystemHealthManager object. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public SystemHealthManager() { this(IBatteryStats.Stub.asInterface(ServiceManager.getService(BatteryStats.SERVICE_NAME))); } diff --git a/core/java/android/os/storage/StorageEventListener.java b/core/java/android/os/storage/StorageEventListener.java index 9fd9e4e4067d..694ff19f7dad 100644 --- a/core/java/android/os/storage/StorageEventListener.java +++ b/core/java/android/os/storage/StorageEventListener.java @@ -17,6 +17,7 @@ package android.os.storage; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; /** * Used for receiving notifications from the StorageManager @@ -47,23 +48,23 @@ public class StorageEventListener { public void onStorageStateChanged(String path, String oldState, String newState) { } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void onVolumeStateChanged(VolumeInfo vol, int oldState, int newState) { } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void onVolumeRecordChanged(VolumeRecord rec) { } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void onVolumeForgotten(String fsUuid) { } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void onDiskScanned(DiskInfo disk, int volumeCount) { } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void onDiskDestroyed(DiskInfo disk) { } } diff --git a/core/java/android/os/storage/StorageManager.java b/core/java/android/os/storage/StorageManager.java index 00848b923395..684ea08ce1a4 100644 --- a/core/java/android/os/storage/StorageManager.java +++ b/core/java/android/os/storage/StorageManager.java @@ -60,6 +60,7 @@ import android.content.res.ObbScanner; import android.database.Cursor; import android.net.Uri; import android.os.Binder; +import android.os.Build; import android.os.Environment; import android.os.FileUtils; import android.os.Handler; @@ -293,7 +294,7 @@ public class StorageManager { public static final int FSTRIM_FLAG_DEEP = IVold.FSTRIM_FLAG_DEEP_TRIM; /** @hide The volume is not encrypted. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int ENCRYPTION_STATE_NONE = IVold.ENCRYPTION_STATE_NONE; @@ -633,7 +634,7 @@ public class StorageManager { * @hide */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void enableUsbMassStorage() { } @@ -643,7 +644,7 @@ public class StorageManager { * @hide */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void disableUsbMassStorage() { } @@ -654,7 +655,7 @@ public class StorageManager { * @hide */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isUsbMassStorageConnected() { return false; } @@ -810,7 +811,7 @@ public class StorageManager { } /** {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public @Nullable VolumeInfo findVolumeById(String id) { Preconditions.checkNotNull(id); // TODO; go directly to service to make this faster @@ -1031,7 +1032,7 @@ public class StorageManager { } /** {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void format(String volId) { try { mStorageManager.format(volId); @@ -1073,7 +1074,7 @@ public class StorageManager { } /** {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void partitionPublic(String diskId) { try { mStorageManager.partitionPublic(diskId); @@ -1235,7 +1236,7 @@ public class StorageManager { } /** {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static @Nullable StorageVolume getStorageVolume(StorageVolume[] volumes, File file) { if (file == null) { return null; @@ -1483,7 +1484,7 @@ public class StorageManager { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public long getStorageFullBytes(File path) { return Settings.Global.getLong(mResolver, Settings.Global.SYS_STORAGE_FULL_THRESHOLD_BYTES, DEFAULT_FULL_THRESHOLD_BYTES); @@ -1600,7 +1601,7 @@ public class StorageManager { * @return true for file encrypted. (Implies isEncrypted() == true) * false not encrypted or block encrypted */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static boolean isFileEncryptedNativeOnly() { if (!isEncrypted()) { return false; @@ -2682,10 +2683,10 @@ public class StorageManager { /// Consts to match the password types in cryptfs.h /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int CRYPT_TYPE_PASSWORD = IVold.PASSWORD_TYPE_PASSWORD; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int CRYPT_TYPE_DEFAULT = IVold.PASSWORD_TYPE_DEFAULT; /** @hide */ public static final int CRYPT_TYPE_PATTERN = IVold.PASSWORD_TYPE_PATTERN; diff --git a/core/java/android/os/storage/StorageVolume.java b/core/java/android/os/storage/StorageVolume.java index a63b82e44f06..a34410f14622 100644 --- a/core/java/android/os/storage/StorageVolume.java +++ b/core/java/android/os/storage/StorageVolume.java @@ -327,7 +327,7 @@ public final class StorageVolume implements Parcelable { * parse or UUID is unknown. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getFatVolumeId() { if (mFsUuid == null || mFsUuid.length() != 9) { return -1; diff --git a/core/java/android/os/storage/VolumeInfo.java b/core/java/android/os/storage/VolumeInfo.java index d7aaa4d6cbf9..e6bb08836aee 100644 --- a/core/java/android/os/storage/VolumeInfo.java +++ b/core/java/android/os/storage/VolumeInfo.java @@ -23,6 +23,7 @@ import android.content.Context; import android.content.Intent; import android.content.res.Resources; import android.net.Uri; +import android.os.Build; import android.os.Environment; import android.os.IVold; import android.os.Parcel; @@ -179,7 +180,7 @@ public class VolumeInfo implements Parcelable { this.partGuid = partGuid; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public VolumeInfo(Parcel parcel) { id = parcel.readString8(); type = parcel.readInt(); @@ -312,7 +313,7 @@ public class VolumeInfo implements Parcelable { * Returns {@code true} if this volume is the primary emulated volume for {@code userId}, * {@code false} otherwise. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isPrimaryEmulatedForUser(int userId) { return id.equals(ID_EMULATED_INTERNAL + ";" + userId); } @@ -321,7 +322,7 @@ public class VolumeInfo implements Parcelable { return isVisibleForUser(userId); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isVisibleForWrite(int userId) { return isVisibleForUser(userId); } @@ -331,7 +332,7 @@ public class VolumeInfo implements Parcelable { return (path != null) ? new File(path) : null; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public File getInternalPath() { return (internalPath != null) ? new File(internalPath) : null; } @@ -533,7 +534,7 @@ public class VolumeInfo implements Parcelable { return id.hashCode(); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final @android.annotation.NonNull Creator<VolumeInfo> CREATOR = new Creator<VolumeInfo>() { @Override public VolumeInfo createFromParcel(Parcel in) { diff --git a/core/java/android/os/storage/VolumeRecord.java b/core/java/android/os/storage/VolumeRecord.java index 60df9819f591..29230fee8fbe 100644 --- a/core/java/android/os/storage/VolumeRecord.java +++ b/core/java/android/os/storage/VolumeRecord.java @@ -18,6 +18,7 @@ package android.os.storage; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; +import android.os.Build; import android.os.Environment; import android.os.Parcel; import android.os.Parcelable; @@ -59,7 +60,7 @@ public class VolumeRecord implements Parcelable { this.fsUuid = Preconditions.checkNotNull(fsUuid); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public VolumeRecord(Parcel parcel) { type = parcel.readInt(); fsUuid = parcel.readString(); @@ -162,7 +163,7 @@ public class VolumeRecord implements Parcelable { return fsUuid.hashCode(); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final @android.annotation.NonNull Creator<VolumeRecord> CREATOR = new Creator<VolumeRecord>() { @Override public VolumeRecord createFromParcel(Parcel in) { diff --git a/core/java/android/preference/PreferenceActivity.java b/core/java/android/preference/PreferenceActivity.java index ae4a626cdd5d..53b1dab9f760 100644 --- a/core/java/android/preference/PreferenceActivity.java +++ b/core/java/android/preference/PreferenceActivity.java @@ -31,6 +31,7 @@ import android.content.Intent; import android.content.res.Resources; import android.content.res.TypedArray; import android.content.res.XmlResourceParser; +import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.Message; @@ -728,7 +729,7 @@ public abstract class PreferenceActivity extends ListActivity implements * Returns the Header list * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public List<Header> getHeaders() { return mHeaders; } diff --git a/core/java/android/preference/PreferenceFragment.java b/core/java/android/preference/PreferenceFragment.java index 3f6e5051a3f8..22399f517908 100644 --- a/core/java/android/preference/PreferenceFragment.java +++ b/core/java/android/preference/PreferenceFragment.java @@ -24,6 +24,7 @@ import android.compat.annotation.UnsupportedAppUsage; import android.content.Intent; import android.content.SharedPreferences; import android.content.res.TypedArray; +import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.Message; @@ -103,7 +104,7 @@ public abstract class PreferenceFragment extends Fragment implements private static final String PREFERENCES_TAG = "android:preferences"; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private PreferenceManager mPreferenceManager; private ListView mList; private boolean mHavePrefs; diff --git a/core/java/android/preference/PreferenceScreen.java b/core/java/android/preference/PreferenceScreen.java index 01fe2f3f6b3a..6b813b0c04f6 100644 --- a/core/java/android/preference/PreferenceScreen.java +++ b/core/java/android/preference/PreferenceScreen.java @@ -22,6 +22,7 @@ import android.content.Context; import android.content.DialogInterface; import android.content.res.TypedArray; import android.graphics.drawable.Drawable; +import android.os.Build; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; @@ -102,7 +103,7 @@ public final class PreferenceScreen extends PreferenceGroup implements AdapterVi private Dialog mDialog; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private ListView mListView; private int mLayoutResId = com.android.internal.R.layout.preference_list_fragment; diff --git a/core/java/android/preference/SeekBarPreference.java b/core/java/android/preference/SeekBarPreference.java index a2852bc2cce3..e31165e6adcc 100644 --- a/core/java/android/preference/SeekBarPreference.java +++ b/core/java/android/preference/SeekBarPreference.java @@ -19,6 +19,7 @@ package android.preference; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.content.res.TypedArray; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.util.AttributeSet; @@ -73,7 +74,7 @@ public class SeekBarPreference extends Preference this(context, attrs, com.android.internal.R.attr.seekBarPreferenceStyle); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public SeekBarPreference(Context context) { this(context, null); } diff --git a/core/java/android/preference/SwitchPreference.java b/core/java/android/preference/SwitchPreference.java index baa023e41aad..57fefda35de3 100644 --- a/core/java/android/preference/SwitchPreference.java +++ b/core/java/android/preference/SwitchPreference.java @@ -20,6 +20,7 @@ import android.annotation.StringRes; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.content.res.TypedArray; +import android.os.Build; import android.util.AttributeSet; import android.view.View; import android.widget.Checkable; @@ -45,7 +46,7 @@ import android.widget.Switch; */ @Deprecated public class SwitchPreference extends TwoStatePreference { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final Listener mListener = new Listener(); // Switch text for on and off states diff --git a/core/java/android/provider/BrowserContract.java b/core/java/android/provider/BrowserContract.java index 5083b8b254ab..7d77d37e117b 100644 --- a/core/java/android/provider/BrowserContract.java +++ b/core/java/android/provider/BrowserContract.java @@ -27,6 +27,7 @@ import android.content.Context; import android.database.Cursor; import android.graphics.BitmapFactory; import android.net.Uri; +import android.os.Build; import android.os.RemoteException; import android.util.Pair; @@ -47,7 +48,7 @@ public class BrowserContract { public static final String AUTHORITY = "com.android.browser"; /** A content:// style uri to the authority for the browser provider */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final Uri AUTHORITY_URI = Uri.parse("content://" + AUTHORITY); /** @@ -303,7 +304,7 @@ public class BrowserContract { * The content:// style URI for the default folder * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final Uri CONTENT_URI_DEFAULT_FOLDER = Uri.withAppendedPath(CONTENT_URI, "folder"); @@ -324,7 +325,7 @@ public class BrowserContract { * @param folderId the ID of the folder to point to * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final Uri buildFolderUri(long folderId) { return ContentUris.withAppendedId(CONTENT_URI_DEFAULT_FOLDER, folderId); } @@ -412,7 +413,7 @@ public class BrowserContract { /** * Directory under {@link Bookmarks#CONTENT_URI} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final Uri CONTENT_URI = AUTHORITY_URI.buildUpon().appendPath("accounts").build(); @@ -450,7 +451,7 @@ public class BrowserContract { /** * The content:// style URI for this table */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "history"); /** @@ -580,7 +581,7 @@ public class BrowserContract { /** * The content:// style URI for this table */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "images"); /** @@ -681,7 +682,7 @@ public class BrowserContract { /** * The content:// style URI for this table */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "combined"); /** diff --git a/core/java/android/provider/CalendarContract.java b/core/java/android/provider/CalendarContract.java index e1aa21e8ea49..6ed32d9c55c9 100644 --- a/core/java/android/provider/CalendarContract.java +++ b/core/java/android/provider/CalendarContract.java @@ -38,6 +38,7 @@ import android.content.Intent; import android.database.Cursor; import android.database.DatabaseUtils; import android.net.Uri; +import android.os.Build; import android.os.RemoteException; import android.text.format.DateUtils; import android.text.format.TimeMigrationUtils; @@ -1825,7 +1826,7 @@ public final class CalendarContract { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static String[] PROVIDER_WRITABLE_COLUMNS = new String[] { ACCOUNT_NAME, ACCOUNT_TYPE, @@ -1860,7 +1861,7 @@ public final class CalendarContract { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @TestApi public static final String[] SYNC_WRITABLE_COLUMNS = new String[] { _SYNC_ID, @@ -2512,7 +2513,7 @@ public final class CalendarContract { * if no such alarm exists. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final long findNextAlarmTime(ContentResolver cr, long millis) { String selection = ALARM_TIME + ">=" + millis; // TODO: construct an explicit SQL query so that we can add @@ -2546,7 +2547,7 @@ public final class CalendarContract { * @param manager the AlarmManager * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final void rescheduleMissedAlarms(ContentResolver cr, Context context, AlarmManager manager) { // Get all the alerts that have been scheduled but have not fired @@ -2603,7 +2604,7 @@ public final class CalendarContract { * epoch * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static void scheduleAlarm(Context context, AlarmManager manager, long alarmTime) { if (DEBUG) { String schedTime = TimeMigrationUtils.formatMillisWithFixedFormat(alarmTime); diff --git a/core/java/android/provider/CallLog.java b/core/java/android/provider/CallLog.java index 276f16216b4d..65132f033968 100644 --- a/core/java/android/provider/CallLog.java +++ b/core/java/android/provider/CallLog.java @@ -17,6 +17,7 @@ package android.provider; +import android.annotation.LongDef; import android.compat.annotation.UnsupportedAppUsage; import android.content.ContentProvider; import android.content.ContentResolver; @@ -43,6 +44,8 @@ import android.telephony.PhoneNumberUtils; import android.text.TextUtils; import android.util.Log; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; import java.util.List; /** @@ -611,6 +614,144 @@ public class CallLog { */ public static final String BLOCK_REASON = "block_reason"; + /** @hide */ + @LongDef(flag = true, value = { + MISSED_REASON_NOT_MISSED, + AUTO_MISSED_EMERGENCY_CALL, + AUTO_MISSED_MAXIMUM_RINGING, + AUTO_MISSED_MAXIMUM_DIALING, + USER_MISSED_NO_ANSWER, + USER_MISSED_SHORT_RING, + USER_MISSED_DND_MODE, + USER_MISSED_LOW_RING_VOLUME, + USER_MISSED_NO_VIBRATE, + USER_MISSED_CALL_SCREENING_SERVICE_SILENCED, + USER_MISSED_CALL_FILTERS_TIMEOUT + }) + @Retention(RetentionPolicy.SOURCE) + public @interface MissedReason {} + + /** + * Value for {@link CallLog.Calls#MISSED_REASON}, set as the default value when a call was + * not missed. + */ + public static final long MISSED_REASON_NOT_MISSED = 0; + + /** + * Value for {@link CallLog.Calls#MISSED_REASON}, set when {@link CallLog.Calls#TYPE} is + * {@link CallLog.Calls#MISSED_TYPE} to indicate that a call was automatically rejected by + * system because an ongoing emergency call. + */ + public static final long AUTO_MISSED_EMERGENCY_CALL = 1 << 0; + + /** + * Value for {@link CallLog.Calls#MISSED_REASON}, set when {@link CallLog.Calls#TYPE} is + * {@link CallLog.Calls#MISSED_TYPE} to indicate that a call was automatically rejected by + * system because the system cannot support any more ringing calls. + */ + public static final long AUTO_MISSED_MAXIMUM_RINGING = 1 << 1; + + /** + * Value for {@link CallLog.Calls#MISSED_REASON}, set when {@link CallLog.Calls#TYPE} is + * {@link CallLog.Calls#MISSED_TYPE} to indicate that a call was automatically rejected by + * system because the system cannot support any more dialing calls. + */ + public static final long AUTO_MISSED_MAXIMUM_DIALING = 1 << 2; + + /** + * When {@link CallLog.Calls#TYPE} is {@link CallLog.Calls#MISSED_TYPE}, set this bit when + * the call was missed just because user didn't answer it. + */ + public static final long USER_MISSED_NO_ANSWER = 1 << 16; + + /** + * When {@link CallLog.Calls#TYPE} is {@link CallLog.Calls#MISSED_TYPE}, set this bit when + * this call rang for a short period of time. + */ + public static final long USER_MISSED_SHORT_RING = 1 << 17; + + /** + * When {@link CallLog.Calls#TYPE} is {@link CallLog.Calls#MISSED_TYPE}, when this call + * rings less than this defined time in millisecond, set + * {@link CallLog.Calls#USER_MISSED_SHORT_RING} bit. + * @hide + */ + public static final long SHORT_RING_THRESHOLD = 5000L; + + /** + * When {@link CallLog.Calls#TYPE} is {@link CallLog.Calls#MISSED_TYPE}, set this bit when + * this call is silenced because the phone is in 'do not disturb mode'. + */ + public static final long USER_MISSED_DND_MODE = 1 << 18; + + /** + * When {@link CallLog.Calls#TYPE} is {@link CallLog.Calls#MISSED_TYPE}, set this bit when + * this call rings with a low ring volume. + */ + public static final long USER_MISSED_LOW_RING_VOLUME = 1 << 19; + + /** + * When {@link CallLog.Calls#TYPE} is {@link CallLog.Calls#MISSED_TYPE}, when this call + * rings in volume less than this defined volume threshold, set + * {@link CallLog.Calls#USER_MISSED_LOW_RING_VOLUME} bit. + * @hide + */ + public static final int LOW_RING_VOLUME = 0; + + /** + * When {@link CallLog.Calls#TYPE} is {@link CallLog.Calls#MISSED_TYPE} set this bit when + * this call rings without vibration. + */ + public static final long USER_MISSED_NO_VIBRATE = 1 << 20; + + /** + * When {@link CallLog.Calls#TYPE} is {@link CallLog.Calls#MISSED_TYPE}, set this bit when + * this call is silenced by the call screening service. + */ + public static final long USER_MISSED_CALL_SCREENING_SERVICE_SILENCED = 1 << 21; + + /** + * When {@link CallLog.Calls#TYPE} is {@link CallLog.Calls#MISSED_TYPE}, set this bit when + * the call filters timed out. + */ + public static final long USER_MISSED_CALL_FILTERS_TIMEOUT = 1 << 22; + + /** + * Where the {@link CallLog.Calls#TYPE} is {@link CallLog.Calls#MISSED_TYPE}, + * indicates factors which may have lead the user to miss the call. + * <P>Type: INTEGER</P> + * + * <p> + * There are two main cases. Auto missed cases and user missed cases. Default value is: + * <ul> + * <li>{@link CallLog.Calls#MISSED_REASON_NOT_MISSED}</li> + * </ul> + * </p> + * <P> + * Auto missed cases are those where a call was missed because it was not possible for the + * incoming call to be presented to the user at all. Possible values are: + * <ul> + * <li>{@link CallLog.Calls#AUTO_MISSED_EMERGENCY_CALL}</li> + * <li>{@link CallLog.Calls#AUTO_MISSED_MAXIMUM_RINGING}</li> + * <li>{@link CallLog.Calls#AUTO_MISSED_MAXIMUM_DIALING}</li> + * </ul> + * </P> + * <P> + * User missed cases are those where the incoming call was presented to the user, but + * factors such as a low ringing volume may have contributed to the call being missed. + * Following bits can be set to indicate possible reasons for this: + * <ul> + * <li>{@link CallLog.Calls#USER_MISSED_SHORT_RING}</li> + * <li>{@link CallLog.Calls#USER_MISSED_DND_MODE}</li> + * <li>{@link CallLog.Calls#USER_MISSED_LOW_RING_VOLUME}</li> + * <li>{@link CallLog.Calls#USER_MISSED_NO_VIBRATE}</li> + * <li>{@link CallLog.Calls#USER_MISSED_CALL_SCREENING_SERVICE_SILENCED}</li> + * <li>{@link CallLog.Calls#USER_MISSED_CALL_FILTERS_TIMEOUT}</li> + * </ul> + * </P> + */ + public static final String MISSED_REASON = "missed_reason"; + /** * Adds a call to the call log. * @@ -635,12 +776,13 @@ public class CallLog { public static Uri addCall(CallerInfo ci, Context context, String number, int presentation, int callType, int features, PhoneAccountHandle accountHandle, - long start, int duration, Long dataUsage) { + long start, int duration, Long dataUsage, long missedReason) { return addCall(ci, context, number, "" /* postDialDigits */, "" /* viaNumber */, presentation, callType, features, accountHandle, start, duration, dataUsage, false /* addForAllUsers */, null /* userToBeInsertedTo */, false /* isRead */, Calls.BLOCK_REASON_NOT_BLOCKED /* callBlockReason */, - null /* callScreeningAppName */, null /* callScreeningComponentName */); + null /* callScreeningAppName */, null /* callScreeningComponentName */, + missedReason); } @@ -675,12 +817,13 @@ public class CallLog { public static Uri addCall(CallerInfo ci, Context context, String number, String postDialDigits, String viaNumber, int presentation, int callType, int features, PhoneAccountHandle accountHandle, long start, int duration, - Long dataUsage, boolean addForAllUsers, UserHandle userToBeInsertedTo) { + Long dataUsage, boolean addForAllUsers, UserHandle userToBeInsertedTo, + long missedReason) { return addCall(ci, context, number, postDialDigits, viaNumber, presentation, callType, features, accountHandle, start, duration, dataUsage, addForAllUsers, userToBeInsertedTo, false /* isRead */ , Calls.BLOCK_REASON_NOT_BLOCKED /* callBlockReason */, null /* callScreeningAppName */, - null /* callScreeningComponentName */); + null /* callScreeningComponentName */, missedReason); } /** @@ -714,6 +857,7 @@ public class CallLog { * @param callBlockReason The reason why the call is blocked. * @param callScreeningAppName The call screening application name which block the call. * @param callScreeningComponentName The call screening component name which block the call. + * @param missedReason The encoded missed information of the call. * * @result The URI of the call log entry belonging to the user that made or received this * call. This could be of the shadow provider. Do not return it to non-system apps, @@ -726,7 +870,7 @@ public class CallLog { int features, PhoneAccountHandle accountHandle, long start, int duration, Long dataUsage, boolean addForAllUsers, UserHandle userToBeInsertedTo, boolean isRead, int callBlockReason, CharSequence callScreeningAppName, - String callScreeningComponentName) { + String callScreeningComponentName, long missedReason) { if (VERBOSE_LOG) { Log.v(LOG_TAG, String.format("Add call: number=%s, user=%s, for all=%s", number, userToBeInsertedTo, addForAllUsers)); @@ -779,6 +923,7 @@ public class CallLog { values.put(BLOCK_REASON, callBlockReason); values.put(CALL_SCREENING_APP_NAME, charSequenceToString(callScreeningAppName)); values.put(CALL_SCREENING_COMPONENT_NAME, callScreeningComponentName); + values.put(MISSED_REASON, Long.valueOf(missedReason)); if ((ci != null) && (ci.getContactId() > 0)) { // Update usage information for the number associated with the contact ID. @@ -1114,5 +1259,19 @@ public class CallLog { } return countryIso; } + + /** + * Check if the missedReason code indicate that the call was user missed or automatically + * rejected by system. + * + * @param missedReason + * The result is true if the call was user missed, false if the call was automatically + * rejected by system. + * + * @hide + */ + public static boolean isUserMissed(long missedReason) { + return missedReason >= (USER_MISSED_NO_ANSWER); + } } } diff --git a/core/java/android/provider/ContactsContract.java b/core/java/android/provider/ContactsContract.java index 31e0a0613faf..fa1b7d501181 100644 --- a/core/java/android/provider/ContactsContract.java +++ b/core/java/android/provider/ContactsContract.java @@ -46,6 +46,7 @@ import android.database.CursorWrapper; import android.database.DatabaseUtils; import android.graphics.Rect; import android.net.Uri; +import android.os.Build; import android.os.RemoteException; import android.telecom.PhoneAccountHandle; import android.text.TextUtils; @@ -129,7 +130,7 @@ public final class ContactsContract { * Prefix for column names that are not visible to client apps. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @TestApi public static final String HIDDEN_COLUMN_PREFIX = "x_"; @@ -6140,7 +6141,7 @@ public final class ContactsContract { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @TestApi public static final Uri ENTERPRISE_CONTENT_URI = Uri.withAppendedPath(Data.ENTERPRISE_CONTENT_URI, "phones"); diff --git a/core/java/android/provider/DocumentsContract.java b/core/java/android/provider/DocumentsContract.java index 6c9b7d84e351..9339575e16a5 100644 --- a/core/java/android/provider/DocumentsContract.java +++ b/core/java/android/provider/DocumentsContract.java @@ -841,7 +841,7 @@ public final class DocumentsContract { public static final String EXTRA_RESULT = "result"; /** {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String METHOD_CREATE_DOCUMENT = "android:createDocument"; /** {@hide} */ public static final String METHOD_RENAME_DOCUMENT = "android:renameDocument"; @@ -876,11 +876,11 @@ public final class DocumentsContract { private static final String PATH_ROOT = "root"; private static final String PATH_RECENT = "recent"; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final String PATH_DOCUMENT = "document"; private static final String PATH_CHILDREN = "children"; private static final String PATH_SEARCH = "search"; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final String PATH_TREE = "tree"; private static final String PARAM_QUERY = "query"; diff --git a/core/java/android/provider/Downloads.java b/core/java/android/provider/Downloads.java index 48410a748766..0829d85801ac 100644 --- a/core/java/android/provider/Downloads.java +++ b/core/java/android/provider/Downloads.java @@ -21,6 +21,7 @@ import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.net.NetworkPolicyManager; import android.net.Uri; +import android.os.Build; /** * The Download Manager @@ -138,7 +139,7 @@ public final class Downloads { * <P>Type: TEXT</P> * <P>Owner can Init/Read</P> */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String COLUMN_URI = "uri"; /** @@ -168,7 +169,7 @@ public final class Downloads { * <P>Type: TEXT</P> * <P>Owner can Init</P> */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String COLUMN_FILE_NAME_HINT = "hint"; /** @@ -184,7 +185,7 @@ public final class Downloads { * <P>Type: TEXT</P> * <P>Owner can Init/Read</P> */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String COLUMN_MIME_TYPE = "mimetype"; /** @@ -193,7 +194,7 @@ public final class Downloads { * <P>Type: INTEGER</P> * <P>Owner can Init</P> */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String COLUMN_DESTINATION = "destination"; /** @@ -203,7 +204,7 @@ public final class Downloads { * <P>Type: INTEGER</P> * <P>Owner can Init/Read/Write</P> */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String COLUMN_VISIBILITY = "visibility"; /** @@ -240,7 +241,7 @@ public final class Downloads { * <P>Type: TEXT</P> * <P>Owner can Init/Read</P> */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String COLUMN_NOTIFICATION_PACKAGE = "notificationpackage"; /** @@ -251,7 +252,7 @@ public final class Downloads { * <P>Type: TEXT</P> * <P>Owner can Init/Read</P> */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String COLUMN_NOTIFICATION_CLASS = "notificationclass"; /** @@ -260,7 +261,7 @@ public final class Downloads { * <P>Type: TEXT</P> * <P>Owner can Init</P> */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String COLUMN_NOTIFICATION_EXTRAS = "notificationextras"; /** @@ -270,7 +271,7 @@ public final class Downloads { * <P>Type: TEXT</P> * <P>Owner can Init</P> */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String COLUMN_COOKIE_DATA = "cookiedata"; /** @@ -287,7 +288,7 @@ public final class Downloads { * <P>Type: TEXT</P> * <P>Owner can Init</P> */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String COLUMN_REFERER = "referer"; /** @@ -325,7 +326,7 @@ public final class Downloads { * <P>Type: TEXT</P> * <P>Owner can Init/Read/Write</P> */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String COLUMN_TITLE = "title"; /** @@ -335,7 +336,7 @@ public final class Downloads { * <P>Type: TEXT</P> * <P>Owner can Init/Read/Write</P> */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String COLUMN_DESCRIPTION = "description"; /** @@ -344,7 +345,7 @@ public final class Downloads { * <P>Type: BOOLEAN</P> * <P>Owner can Init/Read</P> */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String COLUMN_IS_PUBLIC_API = "is_public_api"; /** @@ -353,7 +354,7 @@ public final class Downloads { * <P>Type: INTEGER</P> * <P>Owner can Init/Read</P> */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String COLUMN_ALLOWED_NETWORK_TYPES = "allowed_network_types"; /** @@ -362,7 +363,7 @@ public final class Downloads { * <P>Type: BOOLEAN</P> * <P>Owner can Init/Read</P> */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String COLUMN_ALLOW_ROAMING = "allow_roaming"; /** @@ -379,7 +380,7 @@ public final class Downloads { * <P>Type: INTEGER</P> * <P>Owner can Init/Read</P> */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String COLUMN_IS_VISIBLE_IN_DOWNLOADS_UI = "is_visible_in_downloads_ui"; /** @@ -396,7 +397,7 @@ public final class Downloads { * <P>Type: BOOLEAN</P> * <P>Owner can Read</P> */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String COLUMN_DELETED = "deleted"; /** @@ -425,7 +426,7 @@ public final class Downloads { * * <P>Type: TEXT</P> */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String COLUMN_MEDIA_SCANNED = "scanned"; /** Possible values for column {@link #COLUMN_MEDIA_SCANNED} */ @@ -504,7 +505,7 @@ public final class Downloads { * immediately after they are used, and are kept around by the download * manager as long as space is available. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int DESTINATION_CACHE_PARTITION_PURGEABLE = 2; /** @@ -518,7 +519,7 @@ public final class Downloads { * This download will be saved to the location given by the file URI in * {@link #COLUMN_FILE_NAME_HINT}. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int DESTINATION_FILE_URI = 4; /** @@ -599,7 +600,7 @@ public final class Downloads { * @param visibility the value of {@link #COLUMN_VISIBILITY}. * @return true if the notification should be displayed. false otherwise. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static boolean isNotificationToBeDisplayed(int visibility) { return visibility == DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED || visibility == DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_ONLY_COMPLETION; @@ -840,7 +841,7 @@ public final class Downloads { * Prefix for ContentValues keys that contain HTTP header lines, to be passed to * DownloadProvider.insert(). */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String INSERT_KEY_PREFIX = "http_header_"; } } diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 7a478eb4a885..a1d993bf1f34 100755 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -59,6 +59,7 @@ import android.net.wifi.WifiManager; import android.net.wifi.p2p.WifiP2pManager; import android.os.BatteryManager; import android.os.Binder; +import android.os.Build; import android.os.Build.VERSION_CODES; import android.os.Bundle; import android.os.DropBoxManager; @@ -923,7 +924,7 @@ public final class Settings { * @hide */ @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION) - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String ACTION_USER_DICTIONARY_INSERT = "com.android.settings.USER_DICTIONARY_INSERT"; @@ -1874,7 +1875,7 @@ public final class Settings { = "android.settings.ACTION_APP_NOTIFICATION_REDACTION"; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String EXTRA_APP_UID = "app_uid"; /** @@ -2402,7 +2403,7 @@ public final class Settings { * This is the only type of reset available to non-system clients. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @TestApi public static final int RESET_MODE_PACKAGE_DEFAULTS = 1; @@ -3047,7 +3048,7 @@ public final class Settings { public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/system"); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final ContentProviderHolder sProviderHolder = new ContentProviderHolder(CONTENT_URI); @@ -3096,9 +3097,9 @@ public final class Settings { MOVED_TO_SECURE.add(Secure.INSTALL_NON_MARKET_APPS); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final HashSet<String> MOVED_TO_GLOBAL; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final HashSet<String> MOVED_TO_SECURE_THEN_GLOBAL; static { MOVED_TO_GLOBAL = new HashSet<>(); @@ -4247,7 +4248,7 @@ public final class Settings { * Kept for use by legacy database upgrade code in DatabaseHelper. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String VIBRATE_IN_SILENT = "vibrate_in_silent"; /** @@ -4542,7 +4543,7 @@ public final class Settings { * 3 = HCO * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String TTY_MODE = "tty_mode"; /** @@ -4569,7 +4570,7 @@ public final class Settings { * pending. The value is boolean (1 or 0). * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String NOTIFICATION_LIGHT_PULSE = "notification_light_pulse"; /** @@ -4578,7 +4579,7 @@ public final class Settings { * 1 = yes * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String POINTER_LOCATION = "pointer_location"; /** @@ -4587,7 +4588,7 @@ public final class Settings { * 1 = yes * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String SHOW_TOUCHES = "show_touches"; /** @@ -4615,14 +4616,14 @@ public final class Settings { * @hide */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String DOCK_SOUNDS_ENABLED = Global.DOCK_SOUNDS_ENABLED; /** * Whether to play sounds when the keyguard is shown and dismissed. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String LOCKSCREEN_SOUNDS_ENABLED = "lockscreen_sounds_enabled"; /** @@ -4645,7 +4646,7 @@ public final class Settings { * @hide */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String DESK_DOCK_SOUND = Global.DESK_DOCK_SOUND; /** @@ -4654,7 +4655,7 @@ public final class Settings { * @hide */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String DESK_UNDOCK_SOUND = Global.DESK_UNDOCK_SOUND; /** @@ -4663,7 +4664,7 @@ public final class Settings { * @hide */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String CAR_DOCK_SOUND = Global.CAR_DOCK_SOUND; /** @@ -4672,7 +4673,7 @@ public final class Settings { * @hide */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String CAR_UNDOCK_SOUND = Global.CAR_UNDOCK_SOUND; /** @@ -4681,7 +4682,7 @@ public final class Settings { * @hide */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String LOCK_SOUND = Global.LOCK_SOUND; /** @@ -4690,7 +4691,7 @@ public final class Settings { * @hide */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String UNLOCK_SOUND = Global.UNLOCK_SOUND; /** @@ -4739,7 +4740,7 @@ public final class Settings { * +7 = fastest * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String POINTER_SPEED = "pointer_speed"; /** @@ -4797,7 +4798,7 @@ public final class Settings { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final Set<String> PUBLIC_SETTINGS = new ArraySet<>(); static { PUBLIC_SETTINGS.add(END_BUTTON_BEHAVIOR); @@ -4856,7 +4857,7 @@ public final class Settings { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final Set<String> PRIVATE_SETTINGS = new ArraySet<>(); static { PRIVATE_SETTINGS.add(WIFI_USE_STATIC_IP); @@ -4905,7 +4906,7 @@ public final class Settings { * These entries are considered common between the personal and the managed profile, * since the managed profile doesn't get to change them. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final Set<String> CLONE_TO_MANAGED_PROFILE = new ArraySet<>(); static { CLONE_TO_MANAGED_PROFILE.add(DATE_FORMAT); @@ -5232,7 +5233,7 @@ public final class Settings { public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/secure"); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final ContentProviderHolder sProviderHolder = new ContentProviderHolder(CONTENT_URI); @@ -5472,7 +5473,7 @@ public final class Settings { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static boolean putStringForUser(@NonNull ContentResolver resolver, @NonNull String name, @Nullable String value, @Nullable String tag, boolean makeDefault, @UserIdInt int userHandle, boolean overrideableByRestore) { @@ -5712,7 +5713,7 @@ public final class Settings { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static long getLongForUser(ContentResolver cr, String name, long def, int userHandle) { String valString = getStringForUser(cr, name, userHandle); @@ -5776,7 +5777,7 @@ public final class Settings { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static boolean putLongForUser(ContentResolver cr, String name, long value, int userHandle) { return putStringForUser(cr, name, Long.toString(value), userHandle); @@ -6448,7 +6449,7 @@ public final class Settings { * subject to current DeviceAdmin policy limits. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String LOCK_SCREEN_LOCK_AFTER_TIMEOUT = "lock_screen_lock_after_timeout"; @@ -6490,7 +6491,7 @@ public final class Settings { * @deprecated */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String LOCK_SCREEN_OWNER_INFO_ENABLED = "lock_screen_owner_info_enabled"; @@ -6621,7 +6622,7 @@ public final class Settings { * accessibility feature. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @TestApi public static final String ACCESSIBILITY_SHORTCUT_TARGET_SERVICE = "accessibility_shortcut_target_service"; @@ -6975,7 +6976,7 @@ public final class Settings { * @see android.graphics.Typeface * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String ACCESSIBILITY_CAPTIONING_TYPEFACE = "accessibility_captioning_typeface"; @@ -7015,7 +7016,7 @@ public final class Settings { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String ACCESSIBILITY_DISPLAY_DALTONIZER = "accessibility_display_daltonizer"; @@ -7402,7 +7403,7 @@ public final class Settings { * Type: int ( 0 = disabled, 1 = enabled ) * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String BACKUP_ENABLED = "backup_enabled"; /** @@ -7411,7 +7412,7 @@ public final class Settings { * Type: int ( 0 = disabled, 1 = enabled ) * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String BACKUP_AUTO_RESTORE = "backup_auto_restore"; /** @@ -7419,14 +7420,14 @@ public final class Settings { * Type: int ( 0 = unprovisioned, 1 = fully provisioned ) * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String BACKUP_PROVISIONED = "backup_provisioned"; /** * Component of the transport to use for backup/restore. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String BACKUP_TRANSPORT = "backup_transport"; /** @@ -7598,7 +7599,7 @@ public final class Settings { * Also prevents ANRs and crash dialogs from being suppressed. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String ANR_SHOW_BACKGROUND = "anr_show_background"; /** @@ -7615,7 +7616,7 @@ public final class Settings { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String VOICE_RECOGNITION_SERVICE = "voice_recognition_service"; /** @@ -7624,7 +7625,7 @@ public final class Settings { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String SELECTED_SPELL_CHECKER = "selected_spell_checker"; /** @@ -7634,7 +7635,7 @@ public final class Settings { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String SELECTED_SPELL_CHECKER_SUBTYPE = "selected_spell_checker_subtype"; @@ -7929,7 +7930,7 @@ public final class Settings { * The default NFC payment component * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @TestApi public static final String NFC_PAYMENT_DEFAULT_COMPONENT = "nfc_payment_default_component"; @@ -7943,14 +7944,14 @@ public final class Settings { * Specifies the package name currently configured to be the primary sms application * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String SMS_DEFAULT_APPLICATION = "sms_default_application"; /** * Specifies the package name currently configured to be the default dialer application * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String DIALER_DEFAULT_APPLICATION = "dialer_default_application"; /** @@ -8088,7 +8089,7 @@ public final class Settings { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @TestApi public static final String IMMERSIVE_MODE_CONFIRMATIONS = "immersive_mode_confirmations"; @@ -8483,7 +8484,7 @@ public final class Settings { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @TestApi public static final String ENABLED_VR_LISTENERS = "enabled_vr_listeners"; @@ -8652,7 +8653,7 @@ public final class Settings { * The value is boolean (1 or 0). * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @TestApi public static final String NOTIFICATION_BADGING = "notification_badging"; @@ -9866,7 +9867,7 @@ public final class Settings { * scorer app, external network scores will neither be requested nor accepted. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String NETWORK_SCORER_APP = "network_scorer_app"; /** @@ -10218,7 +10219,7 @@ public final class Settings { * by the system). * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String WEBVIEW_PROVIDER = "webview_provider"; /** @@ -10610,7 +10611,7 @@ public final class Settings { * the setting needs to be set to 0 to disable it. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String WIFI_WATCHDOG_POOR_NETWORK_TEST_ENABLED = "wifi_watchdog_poor_network_test_enabled"; @@ -10788,7 +10789,7 @@ public final class Settings { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @TestApi public static final String OVERLAY_DISPLAY_DEVICES = "overlay_display_devices"; @@ -11462,7 +11463,7 @@ public final class Settings { * @hide * @see com.android.server.power.batterysaver.BatterySaverPolicy */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @TestApi public static final String BATTERY_SAVER_CONSTANTS = "battery_saver_constants"; @@ -12187,7 +12188,7 @@ public final class Settings { * See RIL_PreferredNetworkType in ril.h * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String PREFERRED_NETWORK_MODE = "preferred_network_mode"; @@ -12772,7 +12773,7 @@ public final class Settings { @UnsupportedAppUsage public static final int ZEN_MODE_NO_INTERRUPTIONS = 2; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int ZEN_MODE_ALARMS = 3; /** @hide */ public static String zenModeToString(int mode) { @@ -12835,15 +12836,15 @@ public final class Settings { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String HEADS_UP_NOTIFICATIONS_ENABLED = "heads_up_notifications_enabled"; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int HEADS_UP_OFF = 0; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int HEADS_UP_ON = 1; /** @@ -13326,7 +13327,7 @@ public final class Settings { public static final String[] LEGACY_RESTORE_SETTINGS = { }; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final ContentProviderHolder sProviderHolder = new ContentProviderHolder(CONTENT_URI); @@ -13376,7 +13377,7 @@ public final class Settings { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static String getStringForUser(ContentResolver resolver, String name, int userHandle) { if (MOVED_TO_SECURE.contains(name)) { @@ -13526,7 +13527,7 @@ public final class Settings { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static boolean putStringForUser(ContentResolver resolver, String name, String value, int userHandle) { return putStringForUser(resolver, name, value, null, false, userHandle, @@ -14997,7 +14998,7 @@ public final class Settings { * callingPackage, a negative result will be returned. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static boolean isCallingPackageAllowedToWriteSettings(Context context, int uid, String callingPackage, boolean throwException) { return isCallingPackageAllowedToPerformAppOpsProtectedOperation(context, uid, diff --git a/core/java/android/provider/Telephony.java b/core/java/android/provider/Telephony.java index a444b4736eac..6054de8daf42 100644 --- a/core/java/android/provider/Telephony.java +++ b/core/java/android/provider/Telephony.java @@ -627,7 +627,7 @@ public final class Telephony { * @return the URI for the new message * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static Uri addMessage(int subId, ContentResolver resolver, String address, String body, String subject, Long date, boolean read) { return addMessageToUri(subId, resolver, CONTENT_URI, address, body, @@ -687,7 +687,7 @@ public final class Telephony { * @return the URI for the new message * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static Uri addMessage(int subId, ContentResolver resolver, String address, String body, String subject, Long date) { return addMessageToUri(subId, resolver, CONTENT_URI, address, body, @@ -734,7 +734,7 @@ public final class Telephony { * @return the URI for the new message * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static Uri addMessage(int subId, ContentResolver resolver, String address, String body, String subject, Long date) { return addMessageToUri(subId, resolver, CONTENT_URI, address, body, @@ -781,7 +781,7 @@ public final class Telephony { * @return the URI for the new message * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static Uri addMessage(ContentResolver resolver, String address, String body, String subject, Long date, boolean deliveryReport, long threadId) { diff --git a/core/java/android/security/KeystoreArguments.java b/core/java/android/security/KeystoreArguments.java index a59c4e04285d..19f78c8500d6 100644 --- a/core/java/android/security/KeystoreArguments.java +++ b/core/java/android/security/KeystoreArguments.java @@ -17,6 +17,7 @@ package android.security; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -28,7 +29,7 @@ import android.os.Parcelable; public class KeystoreArguments implements Parcelable { public byte[][] args; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final @android.annotation.NonNull Parcelable.Creator<KeystoreArguments> CREATOR = new Parcelable.Creator<KeystoreArguments>() { public KeystoreArguments createFromParcel(Parcel in) { @@ -43,7 +44,7 @@ public class KeystoreArguments implements Parcelable { args = null; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public KeystoreArguments(byte[][] args) { this.args = args; } diff --git a/core/java/android/security/keymaster/ExportResult.java b/core/java/android/security/keymaster/ExportResult.java index 037b85270306..2c382efab1be 100644 --- a/core/java/android/security/keymaster/ExportResult.java +++ b/core/java/android/security/keymaster/ExportResult.java @@ -17,6 +17,7 @@ package android.security.keymaster; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -33,7 +34,7 @@ public class ExportResult implements Parcelable { this.exportData = new byte[0]; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final @android.annotation.NonNull Parcelable.Creator<ExportResult> CREATOR = new Parcelable.Creator<ExportResult>() { public ExportResult createFromParcel(Parcel in) { diff --git a/core/java/android/security/keymaster/KeyCharacteristics.java b/core/java/android/security/keymaster/KeyCharacteristics.java index d8382fa8f969..4f2bad1127e8 100644 --- a/core/java/android/security/keymaster/KeyCharacteristics.java +++ b/core/java/android/security/keymaster/KeyCharacteristics.java @@ -17,6 +17,7 @@ package android.security.keymaster; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -45,7 +46,7 @@ public class KeyCharacteristics implements Parcelable { } }; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public KeyCharacteristics() {} protected KeyCharacteristics(Parcel in) { @@ -71,7 +72,7 @@ public class KeyCharacteristics implements Parcelable { hwEnforced.writeToParcel(out, flags); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void readFromParcel(Parcel in) { swEnforced = KeymasterArguments.CREATOR.createFromParcel(in); hwEnforced = KeymasterArguments.CREATOR.createFromParcel(in); diff --git a/core/java/android/security/keymaster/KeymasterArguments.java b/core/java/android/security/keymaster/KeymasterArguments.java index e009e128bfea..7608f3a7b9ef 100644 --- a/core/java/android/security/keymaster/KeymasterArguments.java +++ b/core/java/android/security/keymaster/KeymasterArguments.java @@ -17,6 +17,7 @@ package android.security.keymaster; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -41,7 +42,7 @@ public class KeymasterArguments implements Parcelable { private List<KeymasterArgument> mArguments; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final @android.annotation.NonNull Parcelable.Creator<KeymasterArguments> CREATOR = new Parcelable.Creator<KeymasterArguments>() { @Override @@ -55,7 +56,7 @@ public class KeymasterArguments implements Parcelable { } }; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public KeymasterArguments() { mArguments = new ArrayList<KeymasterArgument>(); } @@ -69,7 +70,7 @@ public class KeymasterArguments implements Parcelable { * * @throws IllegalArgumentException if {@code tag} is not an enum tag. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void addEnum(int tag, int value) { int tagType = KeymasterDefs.getTagType(tag); if ((tagType != KeymasterDefs.KM_ENUM) && (tagType != KeymasterDefs.KM_ENUM_REP)) { @@ -141,7 +142,7 @@ public class KeymasterArguments implements Parcelable { * @throws IllegalArgumentException if {@code tag} is not an unsigned 32-bit int tag or if * {@code value} is outside of the permitted range [0; 2^32). */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void addUnsignedInt(int tag, long value) { int tagType = KeymasterDefs.getTagType(tag); if ((tagType != KeymasterDefs.KM_UINT) && (tagType != KeymasterDefs.KM_UINT_REP)) { @@ -178,7 +179,7 @@ public class KeymasterArguments implements Parcelable { * @throws IllegalArgumentException if {@code tag} is not an unsigned 64-bit long tag or if * {@code value} is outside of the permitted range [0; 2^64). */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void addUnsignedLong(int tag, BigInteger value) { int tagType = KeymasterDefs.getTagType(tag); if ((tagType != KeymasterDefs.KM_ULONG) && (tagType != KeymasterDefs.KM_ULONG_REP)) { @@ -364,7 +365,7 @@ public class KeymasterArguments implements Parcelable { out.writeTypedList(mArguments); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void readFromParcel(Parcel in) { in.readTypedList(mArguments, KeymasterArgument.CREATOR); } diff --git a/core/java/android/security/keymaster/KeymasterBlob.java b/core/java/android/security/keymaster/KeymasterBlob.java index 68365bfe603f..18cdecb167db 100644 --- a/core/java/android/security/keymaster/KeymasterBlob.java +++ b/core/java/android/security/keymaster/KeymasterBlob.java @@ -17,6 +17,7 @@ package android.security.keymaster; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -29,7 +30,7 @@ public class KeymasterBlob implements Parcelable { public KeymasterBlob(byte[] blob) { this.blob = blob; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final @android.annotation.NonNull Parcelable.Creator<KeymasterBlob> CREATOR = new Parcelable.Creator<KeymasterBlob>() { public KeymasterBlob createFromParcel(Parcel in) { diff --git a/core/java/android/security/keymaster/KeymasterBlobArgument.java b/core/java/android/security/keymaster/KeymasterBlobArgument.java index 81b08c5b5b0a..b4106a6f2bc9 100644 --- a/core/java/android/security/keymaster/KeymasterBlobArgument.java +++ b/core/java/android/security/keymaster/KeymasterBlobArgument.java @@ -17,16 +17,17 @@ package android.security.keymaster; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; /** * @hide */ class KeymasterBlobArgument extends KeymasterArgument { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final byte[] blob; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public KeymasterBlobArgument(int tag, byte[] blob) { super(tag); switch (KeymasterDefs.getTagType(tag)) { @@ -39,7 +40,7 @@ class KeymasterBlobArgument extends KeymasterArgument { this.blob = blob; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public KeymasterBlobArgument(int tag, Parcel in) { super(tag); blob = in.createByteArray(); diff --git a/core/java/android/security/keymaster/KeymasterBooleanArgument.java b/core/java/android/security/keymaster/KeymasterBooleanArgument.java index 25b2ac409d97..574511c70051 100644 --- a/core/java/android/security/keymaster/KeymasterBooleanArgument.java +++ b/core/java/android/security/keymaster/KeymasterBooleanArgument.java @@ -17,6 +17,7 @@ package android.security.keymaster; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; /** @@ -37,7 +38,7 @@ class KeymasterBooleanArgument extends KeymasterArgument { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public KeymasterBooleanArgument(int tag, Parcel in) { super(tag); } diff --git a/core/java/android/security/keymaster/KeymasterDateArgument.java b/core/java/android/security/keymaster/KeymasterDateArgument.java index 218f4880b289..f6b8fb589b25 100644 --- a/core/java/android/security/keymaster/KeymasterDateArgument.java +++ b/core/java/android/security/keymaster/KeymasterDateArgument.java @@ -17,6 +17,7 @@ package android.security.keymaster; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import java.util.Date; @@ -38,7 +39,7 @@ class KeymasterDateArgument extends KeymasterArgument { this.date = date; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public KeymasterDateArgument(int tag, Parcel in) { super(tag); date = new Date(in.readLong()); diff --git a/core/java/android/security/keymaster/KeymasterDefs.java b/core/java/android/security/keymaster/KeymasterDefs.java index f08756a015b2..e32ffa6e9d05 100644 --- a/core/java/android/security/keymaster/KeymasterDefs.java +++ b/core/java/android/security/keymaster/KeymasterDefs.java @@ -157,6 +157,11 @@ public final class KeymasterDefs { public static final int HW_AUTH_PASSWORD = 1 << 0; public static final int HW_AUTH_BIOMETRIC = 1 << 1; + // Security Levels. + public static final int KM_SECURITY_LEVEL_SOFTWARE = 0; + public static final int KM_SECURITY_LEVEL_TRUSTED_ENVIRONMENT = 1; + public static final int KM_SECURITY_LEVEL_STRONGBOX = 2; + // Error codes. public static final int KM_ERROR_OK = 0; public static final int KM_ERROR_ROOT_OF_TRUST_ALREADY_SET = -1; diff --git a/core/java/android/security/keymaster/KeymasterIntArgument.java b/core/java/android/security/keymaster/KeymasterIntArgument.java index 01d38c799d9c..6aed8c998d62 100644 --- a/core/java/android/security/keymaster/KeymasterIntArgument.java +++ b/core/java/android/security/keymaster/KeymasterIntArgument.java @@ -17,16 +17,17 @@ package android.security.keymaster; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; /** * @hide */ class KeymasterIntArgument extends KeymasterArgument { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final int value; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public KeymasterIntArgument(int tag, int value) { super(tag); switch (KeymasterDefs.getTagType(tag)) { @@ -41,7 +42,7 @@ class KeymasterIntArgument extends KeymasterArgument { this.value = value; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public KeymasterIntArgument(int tag, Parcel in) { super(tag); value = in.readInt(); diff --git a/core/java/android/security/keymaster/KeymasterLongArgument.java b/core/java/android/security/keymaster/KeymasterLongArgument.java index 3ac27ccef295..c0c6f0e518cb 100644 --- a/core/java/android/security/keymaster/KeymasterLongArgument.java +++ b/core/java/android/security/keymaster/KeymasterLongArgument.java @@ -17,16 +17,17 @@ package android.security.keymaster; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; /** * @hide */ class KeymasterLongArgument extends KeymasterArgument { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final long value; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public KeymasterLongArgument(int tag, long value) { super(tag); switch (KeymasterDefs.getTagType(tag)) { @@ -39,7 +40,7 @@ class KeymasterLongArgument extends KeymasterArgument { this.value = value; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public KeymasterLongArgument(int tag, Parcel in) { super(tag); value = in.readLong(); diff --git a/core/java/android/security/keymaster/OperationResult.java b/core/java/android/security/keymaster/OperationResult.java index b4e155a527de..0ace764e435b 100644 --- a/core/java/android/security/keymaster/OperationResult.java +++ b/core/java/android/security/keymaster/OperationResult.java @@ -17,6 +17,7 @@ package android.security.keymaster; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.IBinder; import android.os.Parcel; import android.os.Parcelable; @@ -34,7 +35,7 @@ public class OperationResult implements Parcelable { public final byte[] output; public final KeymasterArguments outParams; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final @android.annotation.NonNull Parcelable.Creator<OperationResult> CREATOR = new Parcelable.Creator<OperationResult>() { @Override diff --git a/core/java/android/service/dreams/DreamService.java b/core/java/android/service/dreams/DreamService.java index d2dfb29ba25c..5da1775f32ba 100644 --- a/core/java/android/service/dreams/DreamService.java +++ b/core/java/android/service/dreams/DreamService.java @@ -770,7 +770,7 @@ public class DreamService extends Service implements Window.Callback { * @see #setDozeScreenBrightness * @hide For use by system UI components only. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getDozeScreenBrightness() { return mDozeScreenBrightness; } diff --git a/core/java/android/service/dreams/IDreamManager.aidl b/core/java/android/service/dreams/IDreamManager.aidl index 6496de3e15a0..0ce9cfa7a0bf 100644 --- a/core/java/android/service/dreams/IDreamManager.aidl +++ b/core/java/android/service/dreams/IDreamManager.aidl @@ -27,9 +27,9 @@ interface IDreamManager { void dream(); @UnsupportedAppUsage void awaken(); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void setDreamComponents(in ComponentName[] componentNames); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) ComponentName[] getDreamComponents(); ComponentName getDefaultDreamComponentForUser(int userId); void testDream(int userId, in ComponentName componentName); diff --git a/core/java/android/service/notification/NotificationListenerService.java b/core/java/android/service/notification/NotificationListenerService.java index 536c9c00df87..1d5f7fbb2641 100644 --- a/core/java/android/service/notification/NotificationListenerService.java +++ b/core/java/android/service/notification/NotificationListenerService.java @@ -310,7 +310,7 @@ public abstract class NotificationListenerService extends Service { private Handler mHandler; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) protected NotificationListenerWrapper mWrapper = null; private boolean isConnected = false; diff --git a/core/java/android/service/notification/StatusBarNotification.java b/core/java/android/service/notification/StatusBarNotification.java index 08d990581390..fd6a2fddc3cc 100644 --- a/core/java/android/service/notification/StatusBarNotification.java +++ b/core/java/android/service/notification/StatusBarNotification.java @@ -432,7 +432,7 @@ public class StatusBarNotification implements Parcelable { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Context getPackageContext(Context context) { if (mContext == null) { try { diff --git a/core/java/android/service/notification/ZenModeConfig.java b/core/java/android/service/notification/ZenModeConfig.java index 0827fef60252..96949a17c845 100644 --- a/core/java/android/service/notification/ZenModeConfig.java +++ b/core/java/android/service/notification/ZenModeConfig.java @@ -34,6 +34,7 @@ import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.res.Resources; import android.net.Uri; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.os.UserHandle; @@ -1741,9 +1742,9 @@ public class ZenModeConfig implements Parcelable { public static class ZenRule implements Parcelable { @UnsupportedAppUsage public boolean enabled; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean snoozing; // user manually disabled this instance - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public String name; // required for automatic @UnsupportedAppUsage public int zenMode; // ie: Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS @@ -1753,7 +1754,7 @@ public class ZenModeConfig implements Parcelable { public ComponentName component; // optional public ComponentName configurationActivity; // optional public String id; // required for automatic (unique) - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public long creationTime; // required for automatic // package name, only used for manual rules when they have turned DND on. public String enabler; diff --git a/core/java/android/service/vr/IVrManager.aidl b/core/java/android/service/vr/IVrManager.aidl index a8293b47db30..f8ae08563a52 100644 --- a/core/java/android/service/vr/IVrManager.aidl +++ b/core/java/android/service/vr/IVrManager.aidl @@ -94,7 +94,7 @@ interface IVrManager { * @return {@link android.view.Display.INVALID_DISPLAY} if there is no virtual display * currently, else return the display id of the virtual display */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) int getVr2dDisplayId(); /** diff --git a/core/java/android/service/vr/VrListenerService.java b/core/java/android/service/vr/VrListenerService.java index 2758ace8d00b..d92e3b8b6b9b 100644 --- a/core/java/android/service/vr/VrListenerService.java +++ b/core/java/android/service/vr/VrListenerService.java @@ -24,6 +24,7 @@ import android.compat.annotation.UnsupportedAppUsage; import android.content.ComponentName; import android.content.Context; import android.content.Intent; +import android.os.Build; import android.os.Handler; import android.os.IBinder; import android.os.Looper; @@ -140,7 +141,7 @@ public abstract class VrListenerService extends Service { * @see android.R.attr#enableVrMode * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void onCurrentVrActivityChanged( ComponentName component, boolean running2dInVr, int pid) { // Override to implement. Default to old behaviour of sending null for 2D. diff --git a/core/java/android/service/wallpaper/WallpaperService.java b/core/java/android/service/wallpaper/WallpaperService.java index e083417644e3..3eb9ce81b74a 100644 --- a/core/java/android/service/wallpaper/WallpaperService.java +++ b/core/java/android/service/wallpaper/WallpaperService.java @@ -124,7 +124,7 @@ public abstract class WallpaperService extends Service { private static final int MSG_VISIBILITY_CHANGED = 10010; private static final int MSG_WALLPAPER_OFFSETS = 10020; private static final int MSG_WALLPAPER_COMMAND = 10025; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final int MSG_WINDOW_RESIZED = 10030; private static final int MSG_WINDOW_MOVED = 10035; private static final int MSG_TOUCH_EVENT = 10040; diff --git a/core/java/android/speech/IRecognitionListener.aidl b/core/java/android/speech/IRecognitionListener.aidl index e77851b0e405..7c79b1ae15de 100644 --- a/core/java/android/speech/IRecognitionListener.aidl +++ b/core/java/android/speech/IRecognitionListener.aidl @@ -83,6 +83,6 @@ oneway interface IRecognitionListener { * @param eventType the type of the occurred event * @param params a Bundle containing the passed parameters */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void onEvent(in int eventType, in Bundle params); } diff --git a/core/java/android/telephony/PhoneStateListener.java b/core/java/android/telephony/PhoneStateListener.java index 0896f574cc46..d6ae434af9d5 100644 --- a/core/java/android/telephony/PhoneStateListener.java +++ b/core/java/android/telephony/PhoneStateListener.java @@ -834,7 +834,7 @@ public class PhoneStateListener { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void onDataConnectionRealTimeInfoChanged( DataConnectionRealTimeInfo dcRtInfo) { // default implementation empty @@ -1040,7 +1040,7 @@ public class PhoneStateListener { * @param rawData is the byte array of the OEM hook raw data. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void onOemHookRawEvent(byte[] rawData) { // default implementation empty } diff --git a/core/java/android/telephony/Rlog.java b/core/java/android/telephony/Rlog.java index 2afdd339e80b..a1c74e69e7a2 100644 --- a/core/java/android/telephony/Rlog.java +++ b/core/java/android/telephony/Rlog.java @@ -53,7 +53,7 @@ public final class Rlog { return Log.println_native(Log.LOG_ID_RADIO, Log.DEBUG, tag, msg); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static int d(String tag, String msg, Throwable tr) { return Log.println_native(Log.LOG_ID_RADIO, Log.DEBUG, tag, msg + '\n' + Log.getStackTraceString(tr)); diff --git a/core/java/android/text/AndroidBidi.java b/core/java/android/text/AndroidBidi.java index b9811638b28f..31da79995172 100644 --- a/core/java/android/text/AndroidBidi.java +++ b/core/java/android/text/AndroidBidi.java @@ -18,6 +18,7 @@ package android.text; import android.compat.annotation.UnsupportedAppUsage; import android.icu.text.Bidi; +import android.os.Build; import android.text.Layout.Directions; import com.android.internal.annotations.VisibleForTesting; @@ -32,7 +33,7 @@ public class AndroidBidi { /** * Runs the bidi algorithm on input text. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static int bidi(int dir, char[] chs, byte[] chInfo) { if (chs == null || chInfo == null) { throw new NullPointerException(); diff --git a/core/java/android/text/DynamicLayout.java b/core/java/android/text/DynamicLayout.java index c60d446d921d..16b45c30b69f 100644 --- a/core/java/android/text/DynamicLayout.java +++ b/core/java/android/text/DynamicLayout.java @@ -987,7 +987,7 @@ public class DynamicLayout extends Layout { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getIndexFirstChangedBlock() { return mIndexFirstChangedBlock; } @@ -995,7 +995,7 @@ public class DynamicLayout extends Layout { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setIndexFirstChangedBlock(int i) { mIndexFirstChangedBlock = i; } diff --git a/core/java/android/text/FontConfig.java b/core/java/android/text/FontConfig.java index b5688a48344e..1878d61c78ac 100644 --- a/core/java/android/text/FontConfig.java +++ b/core/java/android/text/FontConfig.java @@ -24,6 +24,7 @@ import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; import android.graphics.fonts.FontVariationAxis; import android.net.Uri; +import android.os.Build; import java.lang.annotation.Retention; @@ -44,7 +45,7 @@ public final class FontConfig { /** * Returns the ordered list of families included in the system fonts. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public @NonNull Family[] getFamilies() { return mFamilies; } @@ -91,7 +92,7 @@ public final class FontConfig { /** * Returns the index to be used to access this font when accessing a TTC file. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getTtcIndex() { return mTtcIndex; } @@ -99,7 +100,7 @@ public final class FontConfig { /** * Returns the list of axes associated to this font. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public @NonNull FontVariationAxis[] getAxes() { return mAxes; } @@ -107,7 +108,7 @@ public final class FontConfig { /** * Returns the weight value for this font. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getWeight() { return mWeight; } @@ -115,7 +116,7 @@ public final class FontConfig { /** * Returns whether this font is italic. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isItalic() { return mIsItalic; } @@ -231,7 +232,7 @@ public final class FontConfig { /** * Returns the name given by the system to this font family. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public @Nullable String getName() { return mName; } @@ -239,7 +240,7 @@ public final class FontConfig { /** * Returns the list of fonts included in this family. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public @Nullable Font[] getFonts() { return mFonts; } @@ -254,7 +255,7 @@ public final class FontConfig { /** * Returns the font variant for this family, e.g. "elegant" or "compact". May be null. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public @Variant int getVariant() { return mVariant; } diff --git a/core/java/android/text/Html.java b/core/java/android/text/Html.java index 8da92e38213e..480f46f935d3 100644 --- a/core/java/android/text/Html.java +++ b/core/java/android/text/Html.java @@ -23,6 +23,7 @@ import android.content.res.Resources; import android.graphics.Color; import android.graphics.Typeface; import android.graphics.drawable.Drawable; +import android.os.Build; import android.text.style.AbsoluteSizeSpan; import android.text.style.AlignmentSpan; import android.text.style.BackgroundColorSpan; @@ -629,7 +630,7 @@ public class Html { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static void withinStyle(StringBuilder out, CharSequence text, int start, int end) { for (int i = start; i < end; i++) { diff --git a/core/java/android/text/Layout.java b/core/java/android/text/Layout.java index 8a4497a0f0ce..f0f0867d414b 100644 --- a/core/java/android/text/Layout.java +++ b/core/java/android/text/Layout.java @@ -24,6 +24,7 @@ import android.graphics.Paint; import android.graphics.Path; import android.graphics.Rect; import android.graphics.text.LineBreaker; +import android.os.Build; import android.text.method.TextKeyListener; import android.text.style.AlignmentSpan; import android.text.style.LeadingMarginSpan; @@ -414,7 +415,7 @@ public abstract class Layout { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void drawText(Canvas canvas, int firstLine, int lastLine) { int previousLineBottom = getLineTop(firstLine); int previousLineEnd = getLineStart(firstLine); @@ -583,7 +584,7 @@ public abstract class Layout { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void drawBackground(Canvas canvas, Path highlight, Paint highlightPaint, int cursorOffsetVertical, int firstLine, int lastLine) { // First, draw LineBackgroundSpans. @@ -664,7 +665,7 @@ public abstract class Layout { * @return The range of lines that need to be drawn, possibly empty. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public long getLineRangeForDraw(Canvas canvas) { int dtop, dbottom; @@ -1154,7 +1155,7 @@ public abstract class Layout { * optionally clamp it so that it doesn't exceed the width of the layout. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public float getPrimaryHorizontal(int offset, boolean clamped) { boolean trailing = primaryIsTrailingPrevious(offset); return getHorizontal(offset, trailing, clamped); @@ -1174,7 +1175,7 @@ public abstract class Layout { * optionally clamp it so that it doesn't exceed the width of the layout. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public float getSecondaryHorizontal(int offset, boolean clamped) { boolean trailing = primaryIsTrailingPrevious(offset); return getHorizontal(offset, !trailing, clamped); @@ -1849,7 +1850,7 @@ public abstract class Layout { * only robust for left-aligned displays. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean shouldClampCursor(int line) { // Only clamp cursor position in left-aligned displays. switch (getParagraphAlignment(line)) { diff --git a/core/java/android/text/SpanSet.java b/core/java/android/text/SpanSet.java index 81bdd65974a8..d464278c714c 100644 --- a/core/java/android/text/SpanSet.java +++ b/core/java/android/text/SpanSet.java @@ -17,6 +17,7 @@ package android.text; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import java.lang.reflect.Array; import java.util.Arrays; @@ -34,7 +35,7 @@ public class SpanSet<E> { private final Class<? extends E> classType; int numberOfSpans; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) E[] spans; int[] spanStarts; int[] spanEnds; diff --git a/core/java/android/text/SpannableStringBuilder.java b/core/java/android/text/SpannableStringBuilder.java index ac27e3d10c4f..4312ad9c001f 100644 --- a/core/java/android/text/SpannableStringBuilder.java +++ b/core/java/android/text/SpannableStringBuilder.java @@ -20,6 +20,7 @@ import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; import android.graphics.BaseCanvas; import android.graphics.Paint; +import android.os.Build; import android.util.Log; import com.android.internal.annotations.GuardedBy; @@ -863,7 +864,7 @@ public class SpannableStringBuilder implements CharSequence, GetChars, Spannable * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public <T> T[] getSpans(int queryStart, int queryEnd, @Nullable Class<T> kind, boolean sortByInsertionOrder) { if (kind == null) return (T[]) ArrayUtils.emptyArray(Object.class); diff --git a/core/java/android/text/SpannableStringInternal.java b/core/java/android/text/SpannableStringInternal.java index 4c9328a1c372..4daec26c4ee7 100644 --- a/core/java/android/text/SpannableStringInternal.java +++ b/core/java/android/text/SpannableStringInternal.java @@ -17,6 +17,7 @@ package android.text; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import com.android.internal.util.ArrayUtils; import com.android.internal.util.GrowingArrayUtils; @@ -152,7 +153,7 @@ import java.lang.reflect.Array; * * @return True if excluded, false if included. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final boolean isOutOfCopyRange(int start, int end, int spanStart, int spanEnd) { if (spanStart > end || spanEnd < start) return true; if (spanStart != spanEnd && start != end) { @@ -184,12 +185,12 @@ import java.lang.reflect.Array; setSpan(what, start, end, flags, true/*enforceParagraph*/); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private boolean isIndexFollowsNextLine(int index) { return index != 0 && index != length() && charAt(index - 1) != '\n'; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private void setSpan(Object what, int start, int end, int flags, boolean enforceParagraph) { int nstart = start; int nend = end; @@ -554,12 +555,12 @@ import java.lang.reflect.Array; * * Due to backward compatibility reasons, we copy even NoCopySpan by default */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private void copySpans(Spanned src, int start, int end) { copySpansFromSpanned(src, start, end, false); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private void copySpans(SpannableStringInternal src, int start, int end) { copySpansFromInternal(src, start, end, false); } @@ -575,15 +576,15 @@ import java.lang.reflect.Array; @UnsupportedAppUsage private int mSpanCount; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) /* package */ static final Object[] EMPTY = new Object[0]; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final int START = 0; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final int END = 1; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final int FLAGS = 2; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final int COLUMNS = 3; } diff --git a/core/java/android/text/StaticLayout.java b/core/java/android/text/StaticLayout.java index 85e2d98e93c0..85911fffc1bf 100644 --- a/core/java/android/text/StaticLayout.java +++ b/core/java/android/text/StaticLayout.java @@ -1433,15 +1433,15 @@ public class StaticLayout extends Layout { // Unused, here because of gray list private API accesses. /*package*/ static class LineBreaks { private static final int INITIAL_SIZE = 16; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int[] breaks = new int[INITIAL_SIZE]; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public float[] widths = new float[INITIAL_SIZE]; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public float[] ascents = new float[INITIAL_SIZE]; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public float[] descents = new float[INITIAL_SIZE]; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int[] flags = new int[INITIAL_SIZE]; // hasTab // breaks, widths, and flags should all have the same length } diff --git a/core/java/android/text/TextLine.java b/core/java/android/text/TextLine.java index 3c51fa765263..91c9fc75e32f 100644 --- a/core/java/android/text/TextLine.java +++ b/core/java/android/text/TextLine.java @@ -55,7 +55,7 @@ public class TextLine { private static final char TAB_CHAR = '\t'; private TextPaint mPaint; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private CharSequence mText; private int mStart; private int mLen; @@ -81,13 +81,13 @@ public class TextLine { private final TextPaint mWorkPaint = new TextPaint(); private final TextPaint mActivePaint = new TextPaint(); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final SpanSet<MetricAffectingSpan> mMetricAffectingSpanSpanSet = new SpanSet<MetricAffectingSpan>(MetricAffectingSpan.class); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final SpanSet<CharacterStyle> mCharacterStyleSpanSet = new SpanSet<CharacterStyle>(CharacterStyle.class); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final SpanSet<ReplacementSpan> mReplacementSpanSpanSet = new SpanSet<ReplacementSpan>(ReplacementSpan.class); diff --git a/core/java/android/text/format/DateFormat.java b/core/java/android/text/format/DateFormat.java index 4a0bec1300b7..8900dfd30f47 100755 --- a/core/java/android/text/format/DateFormat.java +++ b/core/java/android/text/format/DateFormat.java @@ -19,7 +19,7 @@ package android.text.format; import android.annotation.NonNull; import android.app.compat.CompatChanges; import android.compat.annotation.ChangeId; -import android.compat.annotation.EnabledAfter; +import android.compat.annotation.EnabledSince; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.icu.text.DateFormatSymbols; @@ -169,7 +169,7 @@ public class DateFormat { * mean using 12-hour in some locales and, in this case, is duplicated as the 'a' field. */ @ChangeId - @EnabledAfter(targetSdkVersion = Build.VERSION_CODES.R) + @EnabledSince(targetSdkVersion = Build.VERSION_CODES.CUR_DEVELOPMENT) static final long DISALLOW_DUPLICATE_FIELD_IN_SKELETON = 170233598L; /** @@ -459,7 +459,7 @@ public class DateFormat { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static boolean hasDesignator(CharSequence inFormat, char designator) { if (inFormat == null) return false; diff --git a/core/java/android/text/format/DateUtils.java b/core/java/android/text/format/DateUtils.java index ff08269a93a4..511c9746c84c 100644 --- a/core/java/android/text/format/DateUtils.java +++ b/core/java/android/text/format/DateUtils.java @@ -25,6 +25,7 @@ import android.icu.text.MeasureFormat; import android.icu.text.MeasureFormat.FormatWidth; import android.icu.util.Measure; import android.icu.util.MeasureUnit; +import android.os.Build; import com.android.internal.R; @@ -395,7 +396,7 @@ public class DateUtils * the briefest form available (e.g. "2h"). * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static CharSequence formatDuration(long millis, int abbrev) { final FormatWidth width; switch (abbrev) { diff --git a/core/java/android/text/format/Time.java b/core/java/android/text/format/Time.java index f19e7d2724d9..bac7c6cf87d3 100644 --- a/core/java/android/text/format/Time.java +++ b/core/java/android/text/format/Time.java @@ -18,6 +18,7 @@ package android.text.format; import android.util.TimeFormatException; +import com.android.i18n.timezone.WallTime; import com.android.i18n.timezone.ZoneInfoData; import com.android.i18n.timezone.ZoneInfoDb; @@ -1070,7 +1071,7 @@ public class Time { * to the enclosing object, but others do not: thus separate state is retained. */ private static class TimeCalculator { - public final ZoneInfoData.WallTime wallTime; + public final WallTime wallTime; public String timezone; // Information about the current timezone. @@ -1078,7 +1079,7 @@ public class Time { public TimeCalculator(String timezoneId) { this.mZoneInfoData = lookupZoneInfoData(timezoneId); - this.wallTime = new ZoneInfoData.WallTime(); + this.wallTime = new WallTime(); } public long toMillis(boolean ignoreDst) { diff --git a/core/java/android/text/format/TimeFormatter.java b/core/java/android/text/format/TimeFormatter.java index c71dfbbafd40..e42ad6334649 100644 --- a/core/java/android/text/format/TimeFormatter.java +++ b/core/java/android/text/format/TimeFormatter.java @@ -24,6 +24,7 @@ import android.content.res.Resources; import android.icu.text.DateFormatSymbols; import android.icu.text.DecimalFormatSymbols; +import com.android.i18n.timezone.WallTime; import com.android.i18n.timezone.ZoneInfoData; import java.nio.CharBuffer; @@ -149,7 +150,7 @@ class TimeFormatter { /** * Format the specified {@code wallTime} using {@code pattern}. The output is returned. */ - public String format(String pattern, ZoneInfoData.WallTime wallTime, + public String format(String pattern, WallTime wallTime, ZoneInfoData zoneInfoData) { try { StringBuilder stringBuilder = new StringBuilder(); @@ -192,7 +193,7 @@ class TimeFormatter { * Format the specified {@code wallTime} using {@code pattern}. The output is written to * {@link #outputBuilder}. */ - private void formatInternal(String pattern, ZoneInfoData.WallTime wallTime, + private void formatInternal(String pattern, WallTime wallTime, ZoneInfoData zoneInfoData) { CharBuffer formatBuffer = CharBuffer.wrap(pattern); while (formatBuffer.remaining() > 0) { @@ -208,7 +209,7 @@ class TimeFormatter { } } - private boolean handleToken(CharBuffer formatBuffer, ZoneInfoData.WallTime wallTime, + private boolean handleToken(CharBuffer formatBuffer, WallTime wallTime, ZoneInfoData zoneInfoData) { // The char at formatBuffer.position() is expected to be '%' at this point. diff --git a/core/java/android/text/method/WordIterator.java b/core/java/android/text/method/WordIterator.java index d766186c13b0..f427e1bd2b72 100644 --- a/core/java/android/text/method/WordIterator.java +++ b/core/java/android/text/method/WordIterator.java @@ -21,6 +21,7 @@ import android.compat.annotation.UnsupportedAppUsage; import android.icu.lang.UCharacter; import android.icu.lang.UProperty; import android.icu.text.BreakIterator; +import android.os.Build; import android.text.CharSequenceCharacterIterator; import android.text.Selection; @@ -71,7 +72,7 @@ public class WordIterator implements Selection.PositionIterator { } /** {@inheritDoc} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int preceding(int offset) { checkOffsetIsValid(offset); while (true) { @@ -83,7 +84,7 @@ public class WordIterator implements Selection.PositionIterator { } /** {@inheritDoc} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int following(int offset) { checkOffsetIsValid(offset); while (true) { @@ -95,7 +96,7 @@ public class WordIterator implements Selection.PositionIterator { } /** {@inheritDoc} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isBoundary(int offset) { checkOffsetIsValid(offset); return mIterator.isBoundary(offset); @@ -108,7 +109,7 @@ public class WordIterator implements Selection.PositionIterator { * @param offset the given start position to search from. * @return the position of the last boundary preceding the given offset. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int nextBoundary(int offset) { checkOffsetIsValid(offset); return mIterator.following(offset); @@ -121,7 +122,7 @@ public class WordIterator implements Selection.PositionIterator { * @param offset the given start position to search from. * @return the position of the last boundary preceding the given offset. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int prevBoundary(int offset) { checkOffsetIsValid(offset); return mIterator.preceding(offset); @@ -180,7 +181,7 @@ public class WordIterator implements Selection.PositionIterator { * * @throws IllegalArgumentException is offset is not valid. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getPrevWordBeginningOnTwoWordsBoundary(int offset) { return getBeginning(offset, true); } @@ -199,7 +200,7 @@ public class WordIterator implements Selection.PositionIterator { * * @throws IllegalArgumentException is offset is not valid. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getNextWordEndOnTwoWordBoundary(int offset) { return getEnd(offset, true); } @@ -280,7 +281,7 @@ public class WordIterator implements Selection.PositionIterator { * * @param offset the offset to search from. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getPunctuationBeginning(int offset) { checkOffsetIsValid(offset); while (offset != BreakIterator.DONE && !isPunctuationStartBoundary(offset)) { @@ -297,7 +298,7 @@ public class WordIterator implements Selection.PositionIterator { * * @param offset the offset to search from. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getPunctuationEnd(int offset) { checkOffsetIsValid(offset); while (offset != BreakIterator.DONE && !isPunctuationEndBoundary(offset)) { @@ -314,7 +315,7 @@ public class WordIterator implements Selection.PositionIterator { * @param offset the offset to check from. * @return Whether the offset is after a punctuation character. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isAfterPunctuation(int offset) { if (mStart < offset && offset <= mEnd) { final int codePoint = Character.codePointBefore(mCharSeq, offset); @@ -330,7 +331,7 @@ public class WordIterator implements Selection.PositionIterator { * @param offset the offset to check from. * @return Whether the offset is at a punctuation character. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isOnPunctuation(int offset) { if (mStart <= offset && offset < mEnd) { final int codePoint = Character.codePointAt(mCharSeq, offset); diff --git a/core/java/android/text/style/EasyEditSpan.java b/core/java/android/text/style/EasyEditSpan.java index b23c2b7da6ac..ccccdcf88b69 100644 --- a/core/java/android/text/style/EasyEditSpan.java +++ b/core/java/android/text/style/EasyEditSpan.java @@ -19,6 +19,7 @@ package android.text.style; import android.annotation.NonNull; import android.app.PendingIntent; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.text.ParcelableSpan; import android.text.TextUtils; @@ -116,7 +117,7 @@ public class EasyEditSpan implements ParcelableSpan { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isDeleteEnabled() { return mDeleteEnabled; } @@ -126,7 +127,7 @@ public class EasyEditSpan implements ParcelableSpan { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setDeleteEnabled(boolean value) { mDeleteEnabled = value; } @@ -136,7 +137,7 @@ public class EasyEditSpan implements ParcelableSpan { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public PendingIntent getPendingIntent() { return mPendingIntent; } diff --git a/core/java/android/text/style/SuggestionSpan.java b/core/java/android/text/style/SuggestionSpan.java index be01bfb94f21..f323936d5ec4 100644 --- a/core/java/android/text/style/SuggestionSpan.java +++ b/core/java/android/text/style/SuggestionSpan.java @@ -23,6 +23,7 @@ import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Color; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.os.SystemClock; @@ -125,9 +126,9 @@ public class SuggestionSpan extends CharacterStyle implements ParcelableSpan { private final String mLanguageTag; private final int mHashCode; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private float mEasyCorrectUnderlineThickness; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private int mEasyCorrectUnderlineColor; private float mMisspelledUnderlineThickness; @@ -402,7 +403,7 @@ public class SuggestionSpan extends CharacterStyle implements ParcelableSpan { * @deprecated this is deprecated in {@link android.os.Build.VERSION_CODES#Q}. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @Deprecated public void notifySelection(Context context, String original, int index) { Log.w(TAG, "notifySelection() is deprecated. Does nothing."); diff --git a/core/java/android/text/util/Linkify.java b/core/java/android/text/util/Linkify.java index a7ddfa93a74e..6e25160de8ac 100644 --- a/core/java/android/text/util/Linkify.java +++ b/core/java/android/text/util/Linkify.java @@ -22,6 +22,7 @@ import android.annotation.Nullable; import android.app.ActivityThread; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; +import android.os.Build; import android.telephony.PhoneNumberUtils; import android.telephony.TelephonyManager; import android.text.Spannable; @@ -660,7 +661,7 @@ public class Linkify { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static void gatherTelLinks(ArrayList<LinkSpec> links, Spannable s, @Nullable Context context) { PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance(); diff --git a/core/java/android/timezone/TzDataSetVersion.java b/core/java/android/timezone/TzDataSetVersion.java index e1fb932b977d..52e1e58b2cfd 100644 --- a/core/java/android/timezone/TzDataSetVersion.java +++ b/core/java/android/timezone/TzDataSetVersion.java @@ -18,6 +18,7 @@ package android.timezone; import android.annotation.NonNull; +import com.android.i18n.timezone.TimeZoneDataFiles; import com.android.internal.annotations.VisibleForTesting; import java.io.IOException; @@ -75,8 +76,7 @@ public final class TzDataSetVersion { @NonNull public static TzDataSetVersion read() throws IOException, TzDataSetException { try { - return new TzDataSetVersion( - com.android.i18n.timezone.TzDataSetVersion.readTimeZoneModuleVersion()); + return new TzDataSetVersion(TimeZoneDataFiles.readTimeZoneModuleVersion()); } catch (com.android.i18n.timezone.TzDataSetVersion.TzDataSetException e) { throw new TzDataSetException(e.getMessage(), e); } diff --git a/core/java/android/transition/Transition.java b/core/java/android/transition/Transition.java index e5115846013f..a2046307302b 100644 --- a/core/java/android/transition/Transition.java +++ b/core/java/android/transition/Transition.java @@ -25,6 +25,7 @@ import android.content.Context; import android.content.res.TypedArray; import android.graphics.Path; import android.graphics.Rect; +import android.os.Build; import android.util.ArrayMap; import android.util.AttributeSet; import android.util.Log; @@ -848,7 +849,7 @@ public abstract class Transition implements Cloneable { return false; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static ArrayMap<Animator, AnimationInfo> getRunningAnimators() { ArrayMap<Animator, AnimationInfo> runningAnimators = sRunningAnimators.get(); if (runningAnimators == null) { @@ -1913,7 +1914,7 @@ public abstract class Transition implements Cloneable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) protected void end() { --mNumInstances; if (mNumInstances == 0) { @@ -1971,7 +1972,7 @@ public abstract class Transition implements Cloneable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) protected void cancel() { int numAnimators = mCurrentAnimators.size(); for (int i = numAnimators - 1; i >= 0; i--) { diff --git a/core/java/android/transition/TransitionManager.java b/core/java/android/transition/TransitionManager.java index 1b0612e87202..3d5b811f7d9c 100644 --- a/core/java/android/transition/TransitionManager.java +++ b/core/java/android/transition/TransitionManager.java @@ -19,6 +19,7 @@ package android.transition; import android.annotation.TestApi; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; +import android.os.Build; import android.util.ArrayMap; import android.util.Log; import android.view.View; @@ -215,7 +216,7 @@ public class TransitionManager { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static ArrayMap<ViewGroup, ArrayList<Transition>> getRunningTransitions() { WeakReference<ArrayMap<ViewGroup, ArrayList<Transition>>> runningTransitions = sRunningTransitions.get(); diff --git a/core/java/android/util/EventLog.java b/core/java/android/util/EventLog.java index 0093273aaf93..1f580af1caae 100644 --- a/core/java/android/util/EventLog.java +++ b/core/java/android/util/EventLog.java @@ -20,6 +20,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import java.io.BufferedReader; import java.io.FileReader; @@ -85,7 +86,7 @@ public class EventLog { private static final byte FLOAT_TYPE = 4; /** @param data containing event, read from the system */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) /*package*/ Event(byte[] data) { mBuffer = ByteBuffer.wrap(data); mBuffer.order(ByteOrder.nativeOrder()); diff --git a/core/java/android/util/IconDrawableFactory.java b/core/java/android/util/IconDrawableFactory.java index 721e6b39d24a..9b1e6cf5be87 100644 --- a/core/java/android/util/IconDrawableFactory.java +++ b/core/java/android/util/IconDrawableFactory.java @@ -23,6 +23,7 @@ import android.content.pm.PackageItemInfo; import android.content.pm.PackageManager; import android.content.res.Resources; import android.graphics.drawable.Drawable; +import android.os.Build; import android.os.UserHandle; import android.os.UserManager; @@ -51,7 +52,7 @@ public class IconDrawableFactory { return appInfo.isInstantApp() || mUm.isManagedProfile(userId); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Drawable getBadgedIcon(ApplicationInfo appInfo) { return getBadgedIcon(appInfo, UserHandle.getUserId(appInfo.uid)); } diff --git a/core/java/android/util/LocalLog.java b/core/java/android/util/LocalLog.java index fda5e0d008e6..17fb9e469606 100644 --- a/core/java/android/util/LocalLog.java +++ b/core/java/android/util/LocalLog.java @@ -17,6 +17,7 @@ package android.util; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.SystemClock; import java.io.FileDescriptor; @@ -113,7 +114,7 @@ public final class LocalLog { ReadOnlyLocalLog(LocalLog log) { mLog = log; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { mLog.dump(pw); } @@ -128,7 +129,7 @@ public final class LocalLog { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public ReadOnlyLocalLog readOnlyLocalLog() { return new ReadOnlyLocalLog(this); } diff --git a/core/java/android/util/LogWriter.java b/core/java/android/util/LogWriter.java index a674ae166d63..21b366531eac 100644 --- a/core/java/android/util/LogWriter.java +++ b/core/java/android/util/LogWriter.java @@ -17,6 +17,7 @@ package android.util; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import java.io.Writer; @@ -39,7 +40,7 @@ public class LogWriter extends Writer { * {@link android.util.Log#ERROR Log.ERROR}. * @param tag A string tag to associate with each printed log statement. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public LogWriter(int priority, String tag) { mPriority = priority; mTag = tag; diff --git a/core/java/android/util/LongArray.java b/core/java/android/util/LongArray.java index 93bcd6b8d4a1..53dddeb5ad0b 100644 --- a/core/java/android/util/LongArray.java +++ b/core/java/android/util/LongArray.java @@ -18,6 +18,7 @@ package android.util; import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import com.android.internal.util.ArrayUtils; import com.android.internal.util.Preconditions; @@ -45,7 +46,7 @@ public class LongArray implements Cloneable { /** * Creates an empty LongArray with the default initial capacity. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public LongArray() { this(10); } @@ -104,7 +105,7 @@ public class LongArray implements Cloneable { * * @throws IndexOutOfBoundsException when index < 0 || index > size() */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void add(int index, long value) { ensureCapacity(1); int rightSegment = mSize - index; @@ -208,7 +209,7 @@ public class LongArray implements Cloneable { /** * Returns the number of values in this array. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int size() { return mSize; } diff --git a/core/java/android/util/NtpTrustedTime.java b/core/java/android/util/NtpTrustedTime.java index 0892c94d5bec..4ac3178ecb4c 100644 --- a/core/java/android/util/NtpTrustedTime.java +++ b/core/java/android/util/NtpTrustedTime.java @@ -26,6 +26,7 @@ import android.net.ConnectivityManager; import android.net.Network; import android.net.NetworkInfo; import android.net.SntpClient; +import android.os.Build; import android.os.SystemClock; import android.provider.Settings; import android.text.TextUtils; @@ -138,7 +139,7 @@ public class NtpTrustedTime implements TrustedTime { return sSingleton; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean forceRefresh() { synchronized (this) { NtpConnectionInfo connectionInfo = getNtpConnectionInfo(); @@ -181,7 +182,7 @@ public class NtpTrustedTime implements TrustedTime { * @deprecated Use {@link #getCachedTimeResult()} to obtain a {@link TimeResult} atomically. */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean hasCache() { return mTimeResult != null; } @@ -208,7 +209,7 @@ public class NtpTrustedTime implements TrustedTime { * @deprecated Use {@link #getCachedTimeResult()} to obtain a {@link TimeResult} atomically. */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public long currentTimeMillis() { TimeResult timeResult = mTimeResult; if (timeResult == null) { @@ -227,7 +228,7 @@ public class NtpTrustedTime implements TrustedTime { * @deprecated Use {@link #getCachedTimeResult()} to obtain a {@link TimeResult} atomically. */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public long getCachedNtpTime() { if (LOGD) Log.d(TAG, "getCachedNtpTime() cache hit"); TimeResult timeResult = mTimeResult; @@ -240,7 +241,7 @@ public class NtpTrustedTime implements TrustedTime { * @deprecated Use {@link #getCachedTimeResult()} to obtain a {@link TimeResult} atomically. */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public long getCachedNtpTimeReference() { TimeResult timeResult = mTimeResult; return timeResult == null ? 0 : timeResult.getElapsedRealtimeMillis(); diff --git a/core/java/android/util/PathParser.java b/core/java/android/util/PathParser.java index 1e5ec0b1c5c3..9be17cf75ba7 100644 --- a/core/java/android/util/PathParser.java +++ b/core/java/android/util/PathParser.java @@ -16,6 +16,7 @@ package android.util; import android.compat.annotation.UnsupportedAppUsage; import android.graphics.Path; +import android.os.Build; import dalvik.annotation.optimization.FastNative; @@ -29,7 +30,7 @@ public class PathParser { * @param pathString The string representing a path, the same as "d" string in svg file. * @return the generated Path object. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static Path createPathFromPathData(String pathString) { if (pathString == null) { throw new IllegalArgumentException("Path string can not be null."); diff --git a/core/java/android/util/Rational.java b/core/java/android/util/Rational.java index 593000002cf7..c89dd16ed22f 100644 --- a/core/java/android/util/Rational.java +++ b/core/java/android/util/Rational.java @@ -18,6 +18,7 @@ package android.util; import static com.android.internal.util.Preconditions.checkNotNull; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import java.io.IOException; import java.io.InvalidObjectException; @@ -76,9 +77,9 @@ public final class Rational extends Number implements Comparable<Rational> { * Do not change the order of these fields or add new instance fields to maintain the * Serializable compatibility across API revisions. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final int mNumerator; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final int mDenominator; /** diff --git a/core/java/android/util/RecurrenceRule.java b/core/java/android/util/RecurrenceRule.java index a570e5e00b1c..89a06d2fd21d 100644 --- a/core/java/android/util/RecurrenceRule.java +++ b/core/java/android/util/RecurrenceRule.java @@ -17,6 +17,7 @@ package android.util; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -50,7 +51,7 @@ public class RecurrenceRule implements Parcelable { @VisibleForTesting public static Clock sClock = Clock.systemDefaultZone(); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final ZonedDateTime start; public final ZonedDateTime end; public final Period period; @@ -67,7 +68,7 @@ public class RecurrenceRule implements Parcelable { } @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static RecurrenceRule buildRecurringMonthly(int dayOfMonth, ZoneId zone) { // Assume we started last January, since it has all possible days final ZonedDateTime now = ZonedDateTime.now(sClock).withZoneSameInstant(zone); diff --git a/core/java/android/util/Slog.java b/core/java/android/util/Slog.java index 2c8bbbfcf8de..3880131324fc 100644 --- a/core/java/android/util/Slog.java +++ b/core/java/android/util/Slog.java @@ -89,7 +89,7 @@ public final class Slog { * will always be handled asynchronously. Primarily for use by coding running within * the system process. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static int wtf(String tag, String msg) { return Log.wtf(Log.LOG_ID_SYSTEM, tag, msg, null, false, true); } @@ -130,7 +130,7 @@ public final class Slog { return Log.wtf(Log.LOG_ID_SYSTEM, tag, msg, tr, false, true); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static int println(int priority, String tag, String msg) { return Log.println_native(Log.LOG_ID_SYSTEM, priority, tag, msg); } diff --git a/core/java/android/util/TimeUtils.java b/core/java/android/util/TimeUtils.java index e0b8d52aa132..cd6585cd3fa1 100644 --- a/core/java/android/util/TimeUtils.java +++ b/core/java/android/util/TimeUtils.java @@ -363,7 +363,7 @@ public class TimeUtils { * @return String representation of the time. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static String logTimeOfDay(long millis) { Calendar c = Calendar.getInstance(); if (millis >= 0) { diff --git a/core/java/android/util/TrustedTime.java b/core/java/android/util/TrustedTime.java index f41fe85fa8bb..f279bdb79420 100644 --- a/core/java/android/util/TrustedTime.java +++ b/core/java/android/util/TrustedTime.java @@ -17,6 +17,7 @@ package android.util; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; /** * Interface that provides trusted time information, possibly coming from an NTP @@ -52,7 +53,7 @@ public interface TrustedTime { * @deprecated Only kept for UnsupportedAppUsage. Do not use. See {@link NtpTrustedTime} */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public long getCacheAge(); /** diff --git a/core/java/android/uwb/AngleMeasurement.java b/core/java/android/uwb/AngleMeasurement.java index cf32b922078e..33bc121d8555 100644 --- a/core/java/android/uwb/AngleMeasurement.java +++ b/core/java/android/uwb/AngleMeasurement.java @@ -20,6 +20,8 @@ import android.annotation.FloatRange; import android.os.Parcel; import android.os.Parcelable; +import java.util.Objects; + /** * Angle measurement * @@ -75,6 +77,32 @@ public final class AngleMeasurement implements Parcelable { return mConfidenceLevel; } + /** + * @hide + */ + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + + if (obj instanceof AngleMeasurement) { + AngleMeasurement other = (AngleMeasurement) obj; + return mRadians == other.getRadians() + && mErrorRadians == other.getErrorRadians() + && mConfidenceLevel == other.getConfidenceLevel(); + } + return false; + } + + /** + * @hide + */ + @Override + public int hashCode() { + return Objects.hash(mRadians, mErrorRadians, mConfidenceLevel); + } + @Override public int describeContents() { return 0; diff --git a/core/java/android/uwb/AngleOfArrivalMeasurement.java b/core/java/android/uwb/AngleOfArrivalMeasurement.java index 646bd42cef2a..cd5af691ed51 100644 --- a/core/java/android/uwb/AngleOfArrivalMeasurement.java +++ b/core/java/android/uwb/AngleOfArrivalMeasurement.java @@ -21,6 +21,8 @@ import android.annotation.Nullable; import android.os.Parcel; import android.os.Parcelable; +import java.util.Objects; + /** * Represents an angle of arrival measurement between two devices using Ultra Wideband * @@ -72,6 +74,31 @@ public final class AngleOfArrivalMeasurement implements Parcelable { return mAltitudeAngleMeasurement; } + /** + * @hide + */ + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + + if (obj instanceof AngleOfArrivalMeasurement) { + AngleOfArrivalMeasurement other = (AngleOfArrivalMeasurement) obj; + return mAzimuthAngleMeasurement.equals(other.getAzimuth()) + && mAltitudeAngleMeasurement.equals(other.getAltitude()); + } + return false; + } + + /** + * @hide + */ + @Override + public int hashCode() { + return Objects.hash(mAzimuthAngleMeasurement, mAltitudeAngleMeasurement); + } + @Override public int describeContents() { return 0; diff --git a/core/java/android/uwb/DistanceMeasurement.java b/core/java/android/uwb/DistanceMeasurement.java index 9561be449a19..c959840c51ba 100644 --- a/core/java/android/uwb/DistanceMeasurement.java +++ b/core/java/android/uwb/DistanceMeasurement.java @@ -17,9 +17,12 @@ package android.uwb; import android.annotation.FloatRange; +import android.annotation.Nullable; import android.os.Parcel; import android.os.Parcelable; +import java.util.Objects; + /** * A data point for the distance measurement * @@ -71,6 +74,32 @@ public final class DistanceMeasurement implements Parcelable { return mConfidenceLevel; } + /** + * @hide + */ + @Override + public boolean equals(@Nullable Object obj) { + if (this == obj) { + return true; + } + + if (obj instanceof DistanceMeasurement) { + DistanceMeasurement other = (DistanceMeasurement) obj; + return mMeters == other.getMeters() + && mErrorMeters == other.getErrorMeters() + && mConfidenceLevel == other.getConfidenceLevel(); + } + return false; + } + + /** + * @hide + */ + @Override + public int hashCode() { + return Objects.hash(mMeters, mErrorMeters, mConfidenceLevel); + } + @Override public int describeContents() { return 0; diff --git a/core/java/android/uwb/RangingMeasurement.java b/core/java/android/uwb/RangingMeasurement.java index d4d7fb23959a..f1c316289653 100644 --- a/core/java/android/uwb/RangingMeasurement.java +++ b/core/java/android/uwb/RangingMeasurement.java @@ -26,6 +26,7 @@ import android.os.SystemClock; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.util.Objects; /** * Representation of a ranging measurement between the local device and a remote device @@ -129,6 +130,35 @@ public final class RangingMeasurement implements Parcelable { return mAngleOfArrivalMeasurement; } + /** + * @hide + */ + @Override + public boolean equals(@Nullable Object obj) { + if (this == obj) { + return true; + } + + if (obj instanceof RangingMeasurement) { + RangingMeasurement other = (RangingMeasurement) obj; + return mRemoteDeviceAddress.equals(other.getRemoteDeviceAddress()) + && mStatus == other.getStatus() + && mElapsedRealtimeNanos == other.getElapsedRealtimeNanos() + && mDistanceMeasurement.equals(other.getDistance()) + && mAngleOfArrivalMeasurement.equals(other.getAngleOfArrival()); + } + return false; + } + + /** + * @hide + */ + @Override + public int hashCode() { + return Objects.hash(mRemoteDeviceAddress, mStatus, mElapsedRealtimeNanos, + mDistanceMeasurement, mAngleOfArrivalMeasurement); + } + @Override public int describeContents() { return 0; diff --git a/core/java/android/uwb/RangingParams.java b/core/java/android/uwb/RangingParams.java index c5d4807859b5..f23d9ed0dd3a 100644 --- a/core/java/android/uwb/RangingParams.java +++ b/core/java/android/uwb/RangingParams.java @@ -30,6 +30,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.List; +import java.util.Objects; import java.util.Set; /** @@ -201,6 +202,43 @@ public final class RangingParams implements Parcelable { return new PersistableBundle(mSpecificationParameters); } + /** + * @hide + */ + @Override + public boolean equals(@Nullable Object obj) { + if (this == obj) { + return true; + } + + if (obj instanceof RangingParams) { + RangingParams other = (RangingParams) obj; + + return mIsInitiator == other.mIsInitiator + && mIsController == other.mIsController + && mSamplePeriod.equals(other.mSamplePeriod) + && mLocalDeviceAddress.equals(other.mLocalDeviceAddress) + && mRemoteDeviceAddresses.equals(other.mRemoteDeviceAddresses) + && mChannelNumber == other.mChannelNumber + && mTransmitPreambleCodeIndex == other.mTransmitPreambleCodeIndex + && mReceivePreambleCodeIndex == other.mReceivePreambleCodeIndex + && mStsPhyPacketType == other.mStsPhyPacketType + && mSpecificationParameters.size() == other.mSpecificationParameters.size() + && mSpecificationParameters.kindofEquals(other.mSpecificationParameters); + } + return false; + } + + /** + * @hide + */ + @Override + public int hashCode() { + return Objects.hash(mIsInitiator, mIsController, mSamplePeriod, mLocalDeviceAddress, + mRemoteDeviceAddresses, mChannelNumber, mTransmitPreambleCodeIndex, + mReceivePreambleCodeIndex, mStsPhyPacketType, mSpecificationParameters); + } + @Override public int describeContents() { return 0; diff --git a/core/java/android/uwb/RangingReport.java b/core/java/android/uwb/RangingReport.java index 1d340b4b0358..45180bfa6981 100644 --- a/core/java/android/uwb/RangingReport.java +++ b/core/java/android/uwb/RangingReport.java @@ -17,11 +17,13 @@ package android.uwb; import android.annotation.NonNull; +import android.annotation.Nullable; import android.os.Parcel; import android.os.Parcelable; import java.util.ArrayList; import java.util.List; +import java.util.Objects; /** * This class contains the UWB ranging data @@ -50,6 +52,31 @@ public final class RangingReport implements Parcelable { return mRangingMeasurements; } + /** + * @hide + */ + @Override + public boolean equals(@Nullable Object obj) { + if (this == obj) { + return true; + } + + if (obj instanceof RangingReport) { + RangingReport other = (RangingReport) obj; + return mRangingMeasurements.equals(other.getMeasurements()); + } + + return false; + } + + /** + * @hide + */ + @Override + public int hashCode() { + return Objects.hash(mRangingMeasurements); + } + @Override public int describeContents() { return 0; diff --git a/core/java/android/uwb/TEST_MAPPING b/core/java/android/uwb/TEST_MAPPING new file mode 100644 index 000000000000..9e50bd64d089 --- /dev/null +++ b/core/java/android/uwb/TEST_MAPPING @@ -0,0 +1,7 @@ +{ + "presubmit": [ + { + "name": "UwbManagerTests" + } + ] +}
\ No newline at end of file diff --git a/core/java/android/view/AccessibilityIterators.java b/core/java/android/view/AccessibilityIterators.java index bee04f4d8036..c41b3cf9fb72 100644 --- a/core/java/android/view/AccessibilityIterators.java +++ b/core/java/android/view/AccessibilityIterators.java @@ -18,6 +18,7 @@ package android.view; import android.compat.annotation.UnsupportedAppUsage; import android.content.res.Configuration; +import android.os.Build; import java.text.BreakIterator; import java.util.Locale; @@ -46,11 +47,11 @@ public final class AccessibilityIterators { */ public static abstract class AbstractTextSegmentIterator implements TextSegmentIterator { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public AbstractTextSegmentIterator() { } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) protected String mText; private final int[] mSegment = new int[2]; diff --git a/core/java/android/view/Choreographer.java b/core/java/android/view/Choreographer.java index 987edf7761d2..148db3242ce8 100644 --- a/core/java/android/view/Choreographer.java +++ b/core/java/android/view/Choreographer.java @@ -827,7 +827,7 @@ public final class Choreographer { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private void scheduleVsyncLocked() { mDisplayEventReceiver.scheduleVsync(); } @@ -964,7 +964,7 @@ public final class Choreographer { public Object action; // Runnable or FrameCallback public Object token; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void run(long frameTimeNanos) { if (token == FRAME_CALLBACK_TOKEN) { ((FrameCallback)action).doFrame(frameTimeNanos); diff --git a/core/java/android/view/Display.java b/core/java/android/view/Display.java index 0cc469a2d5eb..b5ec12f7bc61 100644 --- a/core/java/android/view/Display.java +++ b/core/java/android/view/Display.java @@ -288,7 +288,7 @@ public final class Display { * Display type: Physical display connected through an external port. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @TestApi public static final int TYPE_EXTERNAL = 2; @@ -1389,7 +1389,7 @@ public final class Display { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Mode(int modeId, int width, int height, float refreshRate) { mModeId = modeId; mWidth = width; @@ -1572,7 +1572,7 @@ public final class Display { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public HdrCapabilities(int[] supportedHdrTypes, float maxLuminance, float maxAverageLuminance, float minLuminance) { mSupportedHdrTypes = supportedHdrTypes; diff --git a/core/java/android/view/DisplayEventReceiver.java b/core/java/android/view/DisplayEventReceiver.java index eaf297cc05d8..437a44b658ad 100644 --- a/core/java/android/view/DisplayEventReceiver.java +++ b/core/java/android/view/DisplayEventReceiver.java @@ -17,6 +17,7 @@ package android.view; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Looper; import android.os.MessageQueue; import android.util.Log; @@ -205,7 +206,7 @@ public abstract class DisplayEventReceiver { // Called from native code. @SuppressWarnings("unused") - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private void dispatchHotplug(long timestampNanos, long physicalDisplayId, boolean connected) { onHotplug(timestampNanos, physicalDisplayId, connected); } diff --git a/core/java/android/view/DragEvent.java b/core/java/android/view/DragEvent.java index 35af0f252d2d..37511616da22 100644 --- a/core/java/android/view/DragEvent.java +++ b/core/java/android/view/DragEvent.java @@ -19,6 +19,7 @@ package android.view; import android.compat.annotation.UnsupportedAppUsage; import android.content.ClipData; import android.content.ClipDescription; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -130,9 +131,9 @@ public class DragEvent implements Parcelable { int mAction; float mX, mY; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) ClipDescription mClipDescription; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) ClipData mClipData; IDragAndDropPermissions mDragAndDropPermissions; @@ -316,7 +317,7 @@ public class DragEvent implements Parcelable { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static DragEvent obtain(DragEvent source) { return obtain(source.mAction, source.mX, source.mY, source.mLocalState, source.mClipDescription, source.mClipData, source.mDragAndDropPermissions, diff --git a/core/java/android/view/FrameMetrics.java b/core/java/android/view/FrameMetrics.java index 054dff726ca1..f8500fa9f0aa 100644 --- a/core/java/android/view/FrameMetrics.java +++ b/core/java/android/view/FrameMetrics.java @@ -18,6 +18,7 @@ package android.view; import android.annotation.IntDef; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -250,7 +251,7 @@ public final class FrameMetrics { Index.INTENDED_VSYNC, Index.FRAME_COMPLETED, }; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) /* package */ final long[] mTimingData; /** diff --git a/core/java/android/view/IRecentsAnimationRunner.aidl b/core/java/android/view/IRecentsAnimationRunner.aidl index 925786f82e00..f054b869a9b9 100644 --- a/core/java/android/view/IRecentsAnimationRunner.aidl +++ b/core/java/android/view/IRecentsAnimationRunner.aidl @@ -42,7 +42,7 @@ oneway interface IRecentsAnimationRunner { * * @see {@link RecentsAnimationController#cleanupScreenshot} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void onAnimationCanceled(in @nullable ActivityManager.TaskSnapshot taskSnapshot) = 1; /** @@ -52,7 +52,7 @@ oneway interface IRecentsAnimationRunner { * @param minimizedHomeBounds Specifies the bounds of the minimized home app, will be * {@code null} if the device is not currently in split screen */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void onAnimationStart(in IRecentsAnimationController controller, in RemoteAnimationTarget[] apps, in RemoteAnimationTarget[] wallpapers, in Rect homeContentInsets, in Rect minimizedHomeBounds) = 2; diff --git a/core/java/android/view/IRemoteAnimationRunner.aidl b/core/java/android/view/IRemoteAnimationRunner.aidl index 7b35aa2d2b45..423e23d2bc08 100644 --- a/core/java/android/view/IRemoteAnimationRunner.aidl +++ b/core/java/android/view/IRemoteAnimationRunner.aidl @@ -33,7 +33,7 @@ oneway interface IRemoteAnimationRunner { * @param apps The list of apps to animate. * @param finishedCallback The callback to invoke when the animation is finished. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void onAnimationStart(in RemoteAnimationTarget[] apps, in RemoteAnimationTarget[] wallpapers, in IRemoteAnimationFinishedCallback finishedCallback); @@ -41,6 +41,6 @@ oneway interface IRemoteAnimationRunner { * Called when the animation was cancelled. From this point on, any updates onto the leashes * won't have any effect anymore. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void onAnimationCancelled(); } diff --git a/core/java/android/view/IWindowManager.aidl b/core/java/android/view/IWindowManager.aidl index 58597cf3fb6d..4aeb7bb71ce2 100644 --- a/core/java/android/view/IWindowManager.aidl +++ b/core/java/android/view/IWindowManager.aidl @@ -187,7 +187,7 @@ interface IWindowManager * Used by system ui to report that recents has shown itself. * @deprecated to be removed once prebuilts are updated */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void endProlongedAnimations(); void startFreezingScreen(int exitAnim, int enterAnim); @@ -201,7 +201,7 @@ interface IWindowManager void exitKeyguardSecurely(IOnKeyguardExitResult callback); @UnsupportedAppUsage boolean isKeyguardLocked(); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) boolean isKeyguardSecure(int userId); void dismissKeyguard(IKeyguardDismissCallback callback, CharSequence message); @@ -213,11 +213,11 @@ interface IWindowManager // These can only be called with the SET_ANIMATON_SCALE permission. @UnsupportedAppUsage float getAnimationScale(int which); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) float[] getAnimationScales(); @UnsupportedAppUsage void setAnimationScale(int which, float scale); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void setAnimationScales(in float[] scales); float getCurrentAnimatorScale(); @@ -238,7 +238,7 @@ interface IWindowManager // should be enabled. The 'enabled' value is null or blank for // the system default (differs per build variant) or any valid // boolean string as parsed by SystemProperties.getBoolean(). - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void setStrictModeVisualIndicatorPreference(String enabled); /** @@ -429,7 +429,7 @@ interface IWindowManager /** * Lock the device immediately with the specified options (can be null). */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void lockNow(in Bundle options); /** diff --git a/core/java/android/view/IWindowSession.aidl b/core/java/android/view/IWindowSession.aidl index 0410c9024dcb..ed80fcab747f 100644 --- a/core/java/android/view/IWindowSession.aidl +++ b/core/java/android/view/IWindowSession.aidl @@ -191,7 +191,7 @@ interface IWindowSession { * @param data Data transferred by drag and drop * @return Token of drag operation which will be passed to cancelDragAndDrop. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) IBinder performDrag(IWindow window, int flags, in SurfaceControl surface, int touchSource, float touchX, float touchY, float thumbCenterX, float thumbCenterY, in ClipData data); diff --git a/core/java/android/view/InputChannel.java b/core/java/android/view/InputChannel.java index 5a64b131faea..d7a3cb163e1a 100644 --- a/core/java/android/view/InputChannel.java +++ b/core/java/android/view/InputChannel.java @@ -17,6 +17,7 @@ package android.view; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.IBinder; import android.os.Parcel; import android.os.Parcelable; @@ -49,7 +50,7 @@ public final class InputChannel implements Parcelable { }; @SuppressWarnings("unused") - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private long mPtr; // used by native code private static native InputChannel[] nativeOpenInputChannelPair(String name); diff --git a/core/java/android/view/InputDevice.java b/core/java/android/view/InputDevice.java index 58e5b2dfaa37..22ac4dcd2cfe 100644 --- a/core/java/android/view/InputDevice.java +++ b/core/java/android/view/InputDevice.java @@ -424,7 +424,7 @@ public final class InputDevice implements Parcelable { }; // Called by native code. - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private InputDevice(int id, int generation, int controllerNumber, String name, int vendorId, int productId, String descriptor, boolean isExternal, int sources, int keyboardType, KeyCharacterMap keyCharacterMap, boolean hasVibrator, boolean hasMicrophone, @@ -757,7 +757,7 @@ public final class InputDevice implements Parcelable { } // Called from native code. - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private void addMotionRange(int axis, int source, float min, float max, float flat, float fuzz, float resolution) { mMotionRanges.add(new MotionRange(axis, source, min, max, flat, fuzz, resolution)); diff --git a/core/java/android/view/InputEventReceiver.java b/core/java/android/view/InputEventReceiver.java index 25a4108c612c..972318cea29d 100644 --- a/core/java/android/view/InputEventReceiver.java +++ b/core/java/android/view/InputEventReceiver.java @@ -17,6 +17,7 @@ package android.view; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.IBinder; import android.os.Looper; import android.os.MessageQueue; @@ -122,7 +123,7 @@ public abstract class InputEventReceiver { * * @param event The input event that was received. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void onInputEvent(InputEvent event) { finishInputEvent(event, false); } @@ -214,7 +215,7 @@ public abstract class InputEventReceiver { // Called from native code. @SuppressWarnings("unused") - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private void dispatchInputEvent(int seq, InputEvent event) { mSeqMap.put(event.getSequenceNumber(), seq); onInputEvent(event); diff --git a/core/java/android/view/InputEventSender.java b/core/java/android/view/InputEventSender.java index 86a309e3ed79..40eb438262a1 100644 --- a/core/java/android/view/InputEventSender.java +++ b/core/java/android/view/InputEventSender.java @@ -17,6 +17,7 @@ package android.view; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Looper; import android.os.MessageQueue; import android.util.Log; @@ -138,7 +139,7 @@ public abstract class InputEventSender { // Called from native code. @SuppressWarnings("unused") - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private void dispatchInputEventFinished(int seq, boolean handled) { onInputEventFinished(seq, handled); } diff --git a/core/java/android/view/InputFilter.java b/core/java/android/view/InputFilter.java index 36d558630da9..b18c5cdb2aab 100644 --- a/core/java/android/view/InputFilter.java +++ b/core/java/android/view/InputFilter.java @@ -17,6 +17,7 @@ package android.view; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Handler; import android.os.Looper; import android.os.Message; @@ -118,7 +119,7 @@ public abstract class InputFilter extends IInputFilter.Stub { * * @param looper The looper to run callbacks on. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public InputFilter(Looper looper) { mH = new H(looper); } @@ -188,7 +189,7 @@ public abstract class InputFilter extends IInputFilter.Stub { * @param event The input event that was received. * @param policyFlags The input event policy flags. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void onInputEvent(InputEvent event, int policyFlags) { sendInputEvent(event, policyFlags); } diff --git a/core/java/android/view/InputQueue.java b/core/java/android/view/InputQueue.java index 74ce6ac02db3..7accb66aa3aa 100644 --- a/core/java/android/view/InputQueue.java +++ b/core/java/android/view/InputQueue.java @@ -17,6 +17,7 @@ package android.view; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Looper; import android.os.MessageQueue; import android.util.LongSparseArray; @@ -101,7 +102,7 @@ public final class InputQueue { mActiveEventArray.put(id, event); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private void finishInputEvent(long id, boolean handled) { int index = mActiveEventArray.indexOfKey(id); if (index >= 0) { diff --git a/core/java/android/view/InsetsController.java b/core/java/android/view/InsetsController.java index c383bc7a4d70..985829f6c885 100644 --- a/core/java/android/view/InsetsController.java +++ b/core/java/android/view/InsetsController.java @@ -1134,15 +1134,14 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation if (invokeCallback) { control.cancel(); } + boolean stateChanged = false; for (int i = mRunningAnimations.size() - 1; i >= 0; i--) { RunningAnimation runningAnimation = mRunningAnimations.get(i); if (runningAnimation.runner == control) { mRunningAnimations.remove(i); ArraySet<Integer> types = toInternalType(control.getTypes()); for (int j = types.size() - 1; j >= 0; j--) { - if (getSourceConsumer(types.valueAt(j)).notifyAnimationFinished()) { - mHost.notifyInsetsChanged(); - } + stateChanged |= getSourceConsumer(types.valueAt(j)).notifyAnimationFinished(); } if (invokeCallback && runningAnimation.startDispatched) { dispatchAnimationEnd(runningAnimation.runner.getAnimation()); @@ -1150,6 +1149,10 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation break; } } + if (stateChanged) { + mHost.notifyInsetsChanged(); + updateRequestedState(); + } } private void applyLocalVisibilityOverride() { diff --git a/core/java/android/view/KeyCharacterMap.java b/core/java/android/view/KeyCharacterMap.java index 90e0f3f89a0f..02a97888cffd 100644 --- a/core/java/android/view/KeyCharacterMap.java +++ b/core/java/android/view/KeyCharacterMap.java @@ -18,6 +18,7 @@ package android.view; import android.compat.annotation.UnsupportedAppUsage; import android.hardware.input.InputManager; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.text.method.MetaKeyKeyListener; @@ -308,7 +309,7 @@ public class KeyCharacterMap implements Parcelable { } // Called from native - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private KeyCharacterMap(long ptr) { mPtr = ptr; } @@ -750,9 +751,9 @@ public class KeyCharacterMap implements Parcelable { private FallbackAction next; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int keyCode; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int metaState; private FallbackAction() { diff --git a/core/java/android/view/KeyEvent.java b/core/java/android/view/KeyEvent.java index e249c777caf6..99d6c3463ef5 100644 --- a/core/java/android/view/KeyEvent.java +++ b/core/java/android/view/KeyEvent.java @@ -849,7 +849,7 @@ public class KeyEvent extends InputEvent implements Parcelable { // Symbolic names of all metakeys in bit order from least significant to most significant. // Accordingly there are exactly 32 values in this table. - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final String[] META_SYMBOLIC_NAMES = new String[] { "META_SHIFT_ON", "META_ALT_ON", @@ -920,7 +920,7 @@ public class KeyEvent extends InputEvent implements Parcelable { * Reserved for use by {@link MetaKeyKeyListener} for a published constant in its API. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int META_CAP_LOCKED = 0x100; /** @@ -928,7 +928,7 @@ public class KeyEvent extends InputEvent implements Parcelable { * Reserved for use by {@link MetaKeyKeyListener} for a published constant in its API. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int META_ALT_LOCKED = 0x200; /** @@ -936,7 +936,7 @@ public class KeyEvent extends InputEvent implements Parcelable { * Reserved for use by {@link MetaKeyKeyListener} for a published constant in its API. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int META_SYM_LOCKED = 0x400; /** @@ -945,7 +945,7 @@ public class KeyEvent extends InputEvent implements Parcelable { * in its API that is currently being retained for legacy reasons. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int META_SELECTING = 0x800; /** @@ -1266,29 +1266,29 @@ public class KeyEvent extends InputEvent implements Parcelable { private KeyEvent mNext; private int mId; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private int mDeviceId; @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) private int mSource; private int mDisplayId; private @Nullable byte[] mHmac; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private int mMetaState; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private int mAction; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private int mKeyCode; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private int mScanCode; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private int mRepeatCount; @UnsupportedAppUsage private int mFlags; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private long mDownTime; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private long mEventTime; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private String mCharacters; public interface Callback { @@ -1651,7 +1651,7 @@ public class KeyEvent extends InputEvent implements Parcelable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static KeyEvent obtain(long downTime, long eventTime, int action, int code, int repeat, int metaState, int deviceId, int scancode, int flags, int source, String characters) { @@ -2105,7 +2105,7 @@ public class KeyEvent extends InputEvent implements Parcelable { } // Mask of all modifier key meta states. Specifically excludes locked keys like caps lock. - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final int META_MODIFIER_MASK = META_SHIFT_ON | META_SHIFT_LEFT_ON | META_SHIFT_RIGHT_ON | META_ALT_ON | META_ALT_LEFT_ON | META_ALT_RIGHT_ON @@ -2114,23 +2114,23 @@ public class KeyEvent extends InputEvent implements Parcelable { | META_SYM_ON | META_FUNCTION_ON; // Mask of all lock key meta states. - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final int META_LOCK_MASK = META_CAPS_LOCK_ON | META_NUM_LOCK_ON | META_SCROLL_LOCK_ON; // Mask of all valid meta states. - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final int META_ALL_MASK = META_MODIFIER_MASK | META_LOCK_MASK; // Mask of all synthetic meta states that are reserved for API compatibility with // historical uses in MetaKeyKeyListener. - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final int META_SYNTHETIC_MASK = META_CAP_LOCKED | META_ALT_LOCKED | META_SYM_LOCKED | META_SELECTING; // Mask of all meta states that are not valid use in specifying a modifier key. // These bits are known to be used for purposes other than specifying modifiers. - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final int META_INVALID_MODIFIER_MASK = META_LOCK_MASK | META_SYNTHETIC_MASK; diff --git a/core/java/android/view/LayoutInflater.java b/core/java/android/view/LayoutInflater.java index 1afe11ea1acf..60176ecde605 100644 --- a/core/java/android/view/LayoutInflater.java +++ b/core/java/android/view/LayoutInflater.java @@ -954,7 +954,7 @@ public abstract class LayoutInflater { * argument and should be used for everything except {@code >include>} * tag parsing. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private View createViewFromTag(View parent, String name, Context context, AttributeSet attrs) { return createViewFromTag(parent, name, context, attrs, false); } @@ -974,7 +974,7 @@ public abstract class LayoutInflater { * attribute (if set) for the view being inflated, * {@code false} otherwise */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) View createViewFromTag(View parent, String name, Context context, AttributeSet attrs, boolean ignoreThemeAttr) { if (name.equals("view")) { diff --git a/core/java/android/view/MotionEvent.java b/core/java/android/view/MotionEvent.java index 51b0c6b59f3c..92373fa13116 100644 --- a/core/java/android/view/MotionEvent.java +++ b/core/java/android/view/MotionEvent.java @@ -1483,7 +1483,7 @@ public final class MotionEvent extends InputEvent implements Parcelable { } // Private value for history pos that obtains the current sample. - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final int HISTORY_CURRENT = -0x80000000; // This is essentially the same as native AMOTION_EVENT_INVALID_CURSOR_POSITION as they're all diff --git a/core/java/android/view/NotificationHeaderView.java b/core/java/android/view/NotificationHeaderView.java index 0c50cb782c24..4ed7571a6cf9 100644 --- a/core/java/android/view/NotificationHeaderView.java +++ b/core/java/android/view/NotificationHeaderView.java @@ -26,6 +26,7 @@ import android.graphics.Canvas; import android.graphics.Outline; import android.graphics.Rect; import android.graphics.drawable.Drawable; +import android.os.Build; import android.util.AttributeSet; import android.widget.ImageView; import android.widget.LinearLayout; @@ -83,7 +84,7 @@ public class NotificationHeaderView extends ViewGroup { this(context, null); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public NotificationHeaderView(Context context, @Nullable AttributeSet attrs) { this(context, attrs, 0); } diff --git a/core/java/android/view/PointerIcon.java b/core/java/android/view/PointerIcon.java index 18d0d7b98a42..e021e3ebd404 100644 --- a/core/java/android/view/PointerIcon.java +++ b/core/java/android/view/PointerIcon.java @@ -152,17 +152,17 @@ public final class PointerIcon implements Parcelable { @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) private final int mType; private int mSystemIconResourceId; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private Bitmap mBitmap; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private float mHotSpotX; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private float mHotSpotY; // The bitmaps for the additional frame of animated pointer icon. Note that the first frame // will be stored in mBitmap. - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private Bitmap mBitmapFrames[]; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private int mDurationPerFrame; /** diff --git a/core/java/android/view/RemoteAnimationAdapter.java b/core/java/android/view/RemoteAnimationAdapter.java index 166d3baa2fdf..a78036fba094 100644 --- a/core/java/android/view/RemoteAnimationAdapter.java +++ b/core/java/android/view/RemoteAnimationAdapter.java @@ -18,6 +18,7 @@ package android.view; import android.app.ActivityOptions; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -65,7 +66,7 @@ public class RemoteAnimationAdapter implements Parcelable { * @param statusBarTransitionDelay The desired delay for all visual animations in the * status bar caused by this app animation in millis. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public RemoteAnimationAdapter(IRemoteAnimationRunner runner, long duration, long statusBarTransitionDelay, boolean changeNeedsSnapshot) { mRunner = runner; diff --git a/core/java/android/view/RemoteAnimationTarget.java b/core/java/android/view/RemoteAnimationTarget.java index 3c22ed80cb86..641b24d37b59 100644 --- a/core/java/android/view/RemoteAnimationTarget.java +++ b/core/java/android/view/RemoteAnimationTarget.java @@ -36,6 +36,7 @@ import android.app.WindowConfiguration; import android.compat.annotation.UnsupportedAppUsage; import android.graphics.Point; import android.graphics.Rect; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.util.proto.ProtoOutputStream; @@ -96,7 +97,7 @@ public class RemoteAnimationTarget implements Parcelable { * The {@link SurfaceControl} for the starting state of a target if this transition is * MODE_CHANGING, {@code null)} otherwise. This is relative to the app window. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final SurfaceControl startLeash; /** @@ -169,7 +170,7 @@ public class RemoteAnimationTarget implements Parcelable { * should be equivalent to the size of the starting thumbnail. Note that sourceContainerBounds * is the end bounds of a change transition. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final Rect startBounds; /** diff --git a/core/java/android/view/Surface.java b/core/java/android/view/Surface.java index b1d552060c87..4139a3ac94a8 100644 --- a/core/java/android/view/Surface.java +++ b/core/java/android/view/Surface.java @@ -32,6 +32,7 @@ import android.graphics.RecordingCanvas; import android.graphics.Rect; import android.graphics.RenderNode; import android.graphics.SurfaceTexture; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.util.Log; @@ -70,7 +71,7 @@ public class Surface implements Parcelable { throws OutOfResourcesException; private static native void nativeUnlockCanvasAndPost(long nativeObject, Canvas canvas); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static native void nativeRelease(long nativeObject); private static native boolean nativeIsValid(long nativeObject); private static native boolean nativeIsConsumerRunningBehind(long nativeObject); @@ -123,7 +124,7 @@ public class Surface implements Parcelable { private String mName; @UnsupportedAppUsage long mNativeObject; // package scope only for SurfaceControl access - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private long mLockedObject; private int mGenerationId; // incremented each time mNativeObject changes private final Canvas mCanvas = new CompatibleCanvas(); @@ -260,7 +261,7 @@ public class Surface implements Parcelable { } /* called from android_view_Surface_createFromIGraphicBufferProducer() */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private Surface(long nativeObject) { synchronized (mLock) { setNativeObjectLocked(nativeObject); diff --git a/core/java/android/view/SurfaceControl.java b/core/java/android/view/SurfaceControl.java index 6826253874f2..cbaf9dbce5c3 100644 --- a/core/java/android/view/SurfaceControl.java +++ b/core/java/android/view/SurfaceControl.java @@ -314,7 +314,7 @@ public final class SurfaceControl implements Parcelable { * Surface creation flag: Surface is created hidden * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int HIDDEN = 0x00000004; /** @@ -2679,7 +2679,7 @@ public final class SurfaceControl implements Parcelable { * @return Itself. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Transaction setCornerRadius(SurfaceControl sc, float cornerRadius) { checkPreconditions(sc); nativeSetCornerRadius(mNativeObject, sc.mNativeObject, cornerRadius); diff --git a/core/java/android/view/SurfaceSession.java b/core/java/android/view/SurfaceSession.java index 0f851c1881f5..cbc0479a4c07 100644 --- a/core/java/android/view/SurfaceSession.java +++ b/core/java/android/view/SurfaceSession.java @@ -17,6 +17,7 @@ package android.view; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; /** * An instance of this class represents a connection to the surface @@ -26,7 +27,7 @@ import android.compat.annotation.UnsupportedAppUsage; */ public final class SurfaceSession { // Note: This field is accessed by native code. - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private long mNativeClient; // SurfaceComposerClient* private static native long nativeCreate(); diff --git a/core/java/android/view/TextureView.java b/core/java/android/view/TextureView.java index 277b872a8cd0..8ed003394a38 100644 --- a/core/java/android/view/TextureView.java +++ b/core/java/android/view/TextureView.java @@ -28,6 +28,7 @@ import android.graphics.RecordingCanvas; import android.graphics.Rect; import android.graphics.SurfaceTexture; import android.graphics.drawable.Drawable; +import android.os.Build; import android.util.AttributeSet; import android.util.Log; @@ -116,7 +117,7 @@ public class TextureView extends View { private SurfaceTextureListener mListener; private boolean mHadSurface; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private boolean mOpaque = true; private final Matrix mMatrix = new Matrix(); @@ -124,7 +125,7 @@ public class TextureView extends View { private final Object[] mLock = new Object[0]; private boolean mUpdateLayer; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private boolean mUpdateSurface; private Canvas mCanvas; @@ -132,7 +133,7 @@ public class TextureView extends View { private final Object[] mNativeWindowLock = new Object[0]; // Set by native code, do not write! - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private long mNativeWindow; /** @@ -226,7 +227,7 @@ public class TextureView extends View { /** @hide */ @Override - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) protected void onDetachedFromWindowInternal() { destroyHardwareLayer(); releaseSurfaceTexture(); @@ -243,7 +244,7 @@ public class TextureView extends View { destroyHardwareLayer(); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private void destroyHardwareLayer() { if (mLayer != null) { mLayer.detachSurfaceTexture(); @@ -852,9 +853,9 @@ public class TextureView extends View { void onSurfaceTextureUpdated(@NonNull SurfaceTexture surface); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private native void nCreateNativeWindow(SurfaceTexture surface); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private native void nDestroyNativeWindow(); private static native boolean nLockCanvas(long nativeWindow, Canvas canvas, Rect dirty); diff --git a/core/java/android/view/VelocityTracker.java b/core/java/android/view/VelocityTracker.java index a56633e3c5fa..f932e89f1fbd 100644 --- a/core/java/android/view/VelocityTracker.java +++ b/core/java/android/view/VelocityTracker.java @@ -17,6 +17,7 @@ package android.view; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.util.Pools.SynchronizedPool; /** @@ -237,25 +238,25 @@ public final class VelocityTracker { /** * Polynomial coefficients describing motion in X. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final float[] xCoeff = new float[MAX_DEGREE + 1]; /** * Polynomial coefficients describing motion in Y. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final float[] yCoeff = new float[MAX_DEGREE + 1]; /** * Polynomial degree, or zero if only position information is available. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int degree; /** * Confidence (coefficient of determination), between 0 (no fit) and 1 (perfect fit). */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public float confidence; /** diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index 154c287049b8..0aaedf3f5a14 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -809,7 +809,7 @@ import java.util.function.Predicate; @UiThread public class View implements Drawable.Callback, KeyEvent.Callback, AccessibilityEventSource { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final boolean DBG = false; /** @hide */ @@ -2396,7 +2396,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, private int mAutofillViewId = NO_ID; // ID for accessibility purposes. This ID must be unique for every window - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private int mAccessibilityViewId = NO_ID; private int mAccessibilityCursorPosition = ACCESSIBILITY_CURSOR_POSITION_UNDEFINED; @@ -2408,7 +2408,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * @see #setTag(Object) * @see #getTag() */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) protected Object mTag = null; /* @@ -3863,7 +3863,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * Flag to make the status bar not expandable. Unless you also * set {@link #STATUS_BAR_DISABLE_NOTIFICATION_ICONS}, new notifications will continue to show. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int STATUS_BAR_DISABLE_EXPAND = 0x00010000; /** @@ -4604,7 +4604,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, private LongSparseLongArray mMeasureCache; @ViewDebug.ExportedProperty(deepExport = true, prefix = "bg_") - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private Drawable mBackground; private TintInfo mBackgroundTint; @@ -4722,7 +4722,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * This field should be made private, so it is hidden from the SDK. * {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) protected OnCreateContextMenuListener mOnCreateContextMenuListener; @UnsupportedAppUsage @@ -4731,13 +4731,13 @@ public class View implements Drawable.Callback, KeyEvent.Callback, @UnsupportedAppUsage private OnTouchListener mOnTouchListener; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private OnHoverListener mOnHoverListener; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private OnGenericMotionListener mOnGenericMotionListener; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private OnDragListener mOnDragListener; private OnSystemUiVisibilityChangeListener mOnSystemUiVisibilityChangeListener; @@ -5165,7 +5165,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean mCachingFailed; @UnsupportedAppUsage private Bitmap mDrawingCache; @@ -6900,7 +6900,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private ScrollabilityCache getScrollCache() { initScrollCache(); return mScrollCache; @@ -10379,7 +10379,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) protected boolean isVisibleToUser(Rect boundInView) { if (mAttachInfo != null) { // Attached to invisible window means this view is not visible. @@ -10767,7 +10767,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * @hide pending API council approval */ @CallSuper - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) protected void onFocusLost() { resetPressedState(); } @@ -11639,7 +11639,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean fitsSystemWindows() { return getFitsSystemWindows(); } @@ -13685,7 +13685,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void notifyViewAccessibilityStateChangedIfNeeded(int changeType) { if (!AccessibilityManager.getInstance(mContext).isEnabled() || mAttachInfo == null) { return; @@ -14094,7 +14094,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public TextSegmentIterator getIteratorForGranularity(int granularity) { switch (granularity) { case AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER: { @@ -14561,7 +14561,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * @return True if the event was handled by the view, false otherwise. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final boolean dispatchPointerEvent(MotionEvent event) { if (event.isTouchEvent()) { return dispatchTouchEvent(event); @@ -15863,7 +15863,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isInScrollingContainer() { ViewParent p = getParent(); while (p != null && p instanceof ViewGroup) { @@ -16587,7 +16587,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * @return The inverse of the current matrix of this view. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final Matrix getInverseMatrix() { ensureTransformationInfo(); if (mTransformationInfo.mInverseMatrix == null) { @@ -18629,7 +18629,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) protected void invalidateParentIfNeeded() { if (isHardwareAccelerated() && mParent instanceof View) { ((View) mParent).invalidate(true); @@ -18736,7 +18736,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public ThreadedRenderer getThreadedRenderer() { return mAttachInfo != null ? mAttachInfo.mThreadedRenderer : null; } @@ -19873,7 +19873,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * @see #computeHorizontalScrollOffset() * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) protected void onDrawHorizontalScrollBar(Canvas canvas, Drawable scrollBar, int l, int t, int r, int b) { scrollBar.setBounds(l, t, r, b); @@ -20056,7 +20056,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, /** * Return true if the application tag in the AndroidManifest has set "supportRtl" to true */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private boolean hasRtlSupport() { return mContext.getApplicationInfo().hasRtlSupport(); } @@ -20214,7 +20214,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void resolvePadding() { final int resolvedLayoutDirection = getLayoutDirection(); @@ -20312,7 +20312,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * @hide */ @CallSuper - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) protected void onDetachedFromWindowInternal() { mPrivateFlags &= ~PFLAG_CANCEL_NEXT_UP_EVENT; mPrivateFlags3 &= ~PFLAG3_IS_LAID_OUT; @@ -21029,7 +21029,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * @hide */ @CallSuper - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) protected void destroyHardwareResources() { if (mOverlay != null) { mOverlay.getOverlayView().destroyHardwareResources(); @@ -21165,7 +21165,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * @hide */ @NonNull - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public RenderNode updateDisplayListIfDirty() { final RenderNode renderNode = mRenderNode; if (!canHaveDisplayList()) { @@ -21236,7 +21236,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, return renderNode; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private void resetDisplayList() { mRenderNode.discardDisplayList(); if (mBackgroundRenderNode != null) { @@ -24691,7 +24691,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * @return false if the transformation could not be applied * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean toGlobalMotionEvent(MotionEvent ev) { final AttachInfo info = mAttachInfo; if (info == null) { @@ -24713,7 +24713,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * @return false if the transformation could not be applied * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean toLocalMotionEvent(MotionEvent ev) { final AttachInfo info = mAttachInfo; if (info == null) { @@ -26135,7 +26135,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setDisabledSystemUiVisibility(int flags) { if (mAttachInfo != null) { if (mAttachInfo.mDisabledSystemUiVisibility != flags) { @@ -26176,7 +26176,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * </div> */ public static class DragShadowBuilder { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final WeakReference<View> mView; /** @@ -26640,7 +26640,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * Drawable that are not transparent. * {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void applyDrawableToTransparentRegion(Drawable dr, Region region) { if (DBG) { Log.i("View", "Getting transparent region for: " + this); @@ -27208,7 +27208,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, @EnumEntry(value = TEXT_DIRECTION_FIRST_STRONG_LTR, name = "firstStrongLtr"), @EnumEntry(value = TEXT_DIRECTION_FIRST_STRONG_RTL, name = "firstStrongRtl"), }) - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getRawTextDirection() { return (mPrivateFlags2 & PFLAG2_TEXT_DIRECTION_MASK) >> PFLAG2_TEXT_DIRECTION_MASK_SHIFT; } @@ -27465,7 +27465,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, @EnumEntry(value = TEXT_ALIGNMENT_VIEW_END, name = "viewEnd") }) @TextAlignment - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getRawTextAlignment() { return (mPrivateFlags2 & PFLAG2_TEXT_ALIGNMENT_MASK) >> PFLAG2_TEXT_ALIGNMENT_MASK_SHIFT; } @@ -28815,7 +28815,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * constants declared by {@link View} (there are more display states than * screen states). */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) int mDisplayState = Display.STATE_UNKNOWN; /** @@ -29322,7 +29322,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, /** * The current state of the scrollbars: ON, OFF, or FADING */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int state = OFF; private int mLastColor; @@ -29774,7 +29774,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public AccessibilityNodeInfo createAccessibilityNodeInfo(View host) { return host.createAccessibilityNodeInfoInternal(); } @@ -30192,7 +30192,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, return true; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) void hideTooltip() { if (mTooltipInfo == null) { return; diff --git a/core/java/android/view/ViewConfiguration.java b/core/java/android/view/ViewConfiguration.java index ffeeb806ba54..f777f5518da6 100644 --- a/core/java/android/view/ViewConfiguration.java +++ b/core/java/android/view/ViewConfiguration.java @@ -678,7 +678,7 @@ public class ViewConfiguration { * to a hover movement gesture. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static int getHoverTapSlop() { return HOVER_TAP_SLOP; } diff --git a/core/java/android/view/ViewDebug.java b/core/java/android/view/ViewDebug.java index e138baed31cb..6a07f644fd07 100644 --- a/core/java/android/view/ViewDebug.java +++ b/core/java/android/view/ViewDebug.java @@ -29,6 +29,7 @@ import android.graphics.Picture; import android.graphics.RecordingCanvas; import android.graphics.Rect; import android.graphics.RenderNode; +import android.os.Build; import android.os.Debug; import android.os.Handler; import android.os.Looper; @@ -477,7 +478,7 @@ public class ViewDebug { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static long getViewRootImplCount() { return Debug.countInstancesOfClass(ViewRootImpl.class); } @@ -1157,7 +1158,7 @@ public class ViewDebug { * @hide */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static void dump(View root, boolean skipChildren, boolean includeProperties, OutputStream clientStream) throws IOException { BufferedWriter out = null; diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java index 3cdf61c273de..a6d6959fb198 100644 --- a/core/java/android/view/ViewGroup.java +++ b/core/java/android/view/ViewGroup.java @@ -130,7 +130,7 @@ import java.util.function.Predicate; public abstract class ViewGroup extends View implements ViewParent, ViewManager { private static final String TAG = "ViewGroup"; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final boolean DBG = false; /** @@ -3058,7 +3058,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void transformPointToViewLocal(float[] point, View child) { point[0] += mScrollX - child.mLeft; point[1] += mScrollY - child.mTop; @@ -3772,7 +3772,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager /** @hide */ @Override - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void onInitializeAccessibilityNodeInfoInternal(AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfoInternal(info); if (getAccessibilityNodeProvider() != null) { @@ -3904,7 +3904,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager } @Override - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) void dispatchDetachedFromWindow() { // If we still have a touch target, we are still in the process of // dispatching motion events to a child; we need to get rid of that @@ -7760,7 +7760,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager * @hide */ @Override - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void resolvePadding() { super.resolvePadding(); int count = getChildCount(); @@ -9231,7 +9231,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager /** @hide */ @Override - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) protected void encodeProperties(@NonNull ViewHierarchyEncoder encoder) { super.encodeProperties(encoder); diff --git a/core/java/android/view/ViewOverlay.java b/core/java/android/view/ViewOverlay.java index 7830c57e53ec..7449fb2951e4 100644 --- a/core/java/android/view/ViewOverlay.java +++ b/core/java/android/view/ViewOverlay.java @@ -22,6 +22,7 @@ import android.content.Context; import android.graphics.Canvas; import android.graphics.Rect; import android.graphics.drawable.Drawable; +import android.os.Build; import java.util.ArrayList; @@ -56,7 +57,7 @@ public class ViewOverlay { * of the overlay * @return */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) ViewGroup getOverlayView() { return mOverlayViewGroup; } @@ -96,7 +97,7 @@ public class ViewOverlay { mOverlayViewGroup.clear(); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) boolean isEmpty() { return mOverlayViewGroup.isEmpty(); } diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index bcf3b49c6644..994a95983673 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -281,7 +281,7 @@ public final class ViewRootImpl implements ViewParent, */ private static final int CONTENT_CAPTURE_ENABLED_FALSE = 2; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) static final ThreadLocal<HandlerActionQueue> sRunQueues = new ThreadLocal<HandlerActionQueue>(); static final ArrayList<Runnable> sFirstDrawHandlers = new ArrayList<>(); @@ -427,11 +427,11 @@ public final class ViewRootImpl implements ViewParent, final Region mTransparentRegion; final Region mPreviousTransparentRegion; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) int mWidth; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) int mHeight; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) Rect mDirty; public boolean mIsAnimating; @@ -802,7 +802,7 @@ public final class ViewRootImpl implements ViewParent, } /** Add static config callback to be notified about global config changes. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static void addConfigCallback(ConfigChangedCallback callback) { synchronized (sConfigCallbacks) { sConfigCallbacks.add(callback); @@ -1174,7 +1174,7 @@ public final class ViewRootImpl implements ViewParent, } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getWindowFlags() { return mWindowAttributes.flags; } @@ -1913,7 +1913,7 @@ public final class ViewRootImpl implements ViewParent, } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) void scheduleTraversals() { if (!mTraversalScheduled) { mTraversalScheduled = true; @@ -5151,7 +5151,7 @@ public final class ViewRootImpl implements ViewParent, * @param inTouchMode Whether we want to be in touch mode. * @return True if the touch mode changed and focus changed was changed as a result */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) boolean ensureTouchMode(boolean inTouchMode) { if (DBG) Log.d("touchmode", "ensureTouchMode(" + inTouchMode + "), current " + "touch mode is " + mAttachInfo.mInTouchMode); @@ -7184,7 +7184,7 @@ public final class ViewRootImpl implements ViewParent, } /* drag/drop */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) void setLocalDragState(Object obj) { mLocalDragState = obj; } @@ -7946,7 +7946,7 @@ public final class ViewRootImpl implements ViewParent, } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) void enqueueInputEvent(InputEvent event) { enqueueInputEvent(event, null, 0, false); } @@ -8352,7 +8352,7 @@ public final class ViewRootImpl implements ViewParent, mInvalidateOnAnimationRunnable.addViewRect(info); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void cancelInvalidate(View view) { mHandler.removeMessages(MSG_INVALIDATE, view); // fixme: might leak the AttachInfo.InvalidateInfo objects instead of returning @@ -8361,12 +8361,12 @@ public final class ViewRootImpl implements ViewParent, mInvalidateOnAnimationRunnable.removeView(view); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void dispatchInputEvent(InputEvent event) { dispatchInputEvent(event, null); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void dispatchInputEvent(InputEvent event, InputEventReceiver receiver) { SomeArgs args = SomeArgs.obtain(); args.arg1 = event; diff --git a/core/java/android/view/ViewTreeObserver.java b/core/java/android/view/ViewTreeObserver.java index d7b0afc89eaa..b63f40ce4b09 100644 --- a/core/java/android/view/ViewTreeObserver.java +++ b/core/java/android/view/ViewTreeObserver.java @@ -51,7 +51,7 @@ public final class ViewTreeObserver { // Non-recursive listeners use CopyOnWriteArray // Any listener invoked from ViewRootImpl.performTraversals() should not be recursive - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private CopyOnWriteArray<OnGlobalLayoutListener> mOnGlobalLayoutListeners; @UnsupportedAppUsage private CopyOnWriteArray<OnComputeInternalInsetsListener> mOnComputeInternalInsetsListeners; @@ -242,7 +242,7 @@ public final class ViewTreeObserver { * Only used when {@link #setTouchableInsets(int)} is called with * the option {@link #TOUCHABLE_INSETS_REGION}. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final Region touchableRegion = new Region(); /** @@ -267,7 +267,7 @@ public final class ViewTreeObserver { * Option for {@link #setTouchableInsets(int)}: the area inside of * the provided touchable region in {@link #touchableRegion} can be touched. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int TOUCHABLE_INSETS_REGION = 3; /** diff --git a/core/java/android/view/Window.java b/core/java/android/view/Window.java index 446e7aa67bc5..f2772d6d041c 100644 --- a/core/java/android/view/Window.java +++ b/core/java/android/view/Window.java @@ -161,7 +161,7 @@ public abstract class Window { * Max value used as a feature ID * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int FEATURE_MAX = FEATURE_ACTIVITY_TRANSITIONS; /** @@ -788,7 +788,7 @@ public abstract class Window { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final boolean isDestroyed() { return mDestroyed; } @@ -1134,7 +1134,7 @@ public abstract class Window { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void addPrivateFlags(int flags) { setPrivateFlags(flags, flags); } diff --git a/core/java/android/view/WindowAnimationFrameStats.java b/core/java/android/view/WindowAnimationFrameStats.java index dfc4f0cd4dc6..251ae9bd58f2 100644 --- a/core/java/android/view/WindowAnimationFrameStats.java +++ b/core/java/android/view/WindowAnimationFrameStats.java @@ -17,6 +17,7 @@ package android.view; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -48,7 +49,7 @@ public final class WindowAnimationFrameStats extends FrameStats implements Parce * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void init(long refreshPeriodNano, long[] framesPresentedTimeNano) { mRefreshPeriodNano = refreshPeriodNano; mFramesPresentedTimeNano = framesPresentedTimeNano; diff --git a/core/java/android/view/WindowContentFrameStats.java b/core/java/android/view/WindowContentFrameStats.java index 217197c96793..c788346efdd8 100644 --- a/core/java/android/view/WindowContentFrameStats.java +++ b/core/java/android/view/WindowContentFrameStats.java @@ -17,6 +17,7 @@ package android.view; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -61,7 +62,7 @@ public final class WindowContentFrameStats extends FrameStats implements Parcela * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void init(long refreshPeriodNano, long[] framesPostedTimeNano, long[] framesPresentedTimeNano, long[] framesReadyTimeNano) { mRefreshPeriodNano = refreshPeriodNano; diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java index 5c6269421a1f..4567cc96cbb7 100644 --- a/core/java/android/view/WindowManager.java +++ b/core/java/android/view/WindowManager.java @@ -74,6 +74,7 @@ import android.content.pm.ActivityInfo; import android.graphics.PixelFormat; import android.graphics.Rect; import android.graphics.Region; +import android.os.Build; import android.os.IBinder; import android.os.Parcel; import android.os.Parcelable; @@ -1035,7 +1036,7 @@ public interface WindowManager extends ViewManager { * In multiuser systems shows only on the owning user's window. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int TYPE_SECURE_SYSTEM_OVERLAY = FIRST_SYSTEM_WINDOW+15; /** @@ -1104,7 +1105,7 @@ public interface WindowManager extends ViewManager { * In multiuser systems shows on all users' windows. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int TYPE_DISPLAY_OVERLAY = FIRST_SYSTEM_WINDOW+26; /** @@ -2554,7 +2555,7 @@ public interface WindowManager extends ViewManager { * The ui visibility as requested by the views in this hierarchy. * the combined value should be systemUiVisibility | subtreeSystemUiVisibility. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int subtreeSystemUiVisibility; /** @@ -2730,7 +2731,7 @@ public interface WindowManager extends ViewManager { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int INPUT_FEATURE_DISABLE_USER_ACTIVITY = 0x00000004; /** diff --git a/core/java/android/view/WindowManagerGlobal.java b/core/java/android/view/WindowManagerGlobal.java index 8490f2abeffa..03cceca1846d 100644 --- a/core/java/android/view/WindowManagerGlobal.java +++ b/core/java/android/view/WindowManagerGlobal.java @@ -259,7 +259,7 @@ public final class WindowManagerGlobal { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public ArrayList<ViewRootImpl> getRootViews(IBinder token) { ArrayList<ViewRootImpl> views = new ArrayList<>(); synchronized (mLock) { @@ -438,7 +438,7 @@ public final class WindowManagerGlobal { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void removeView(View view, boolean immediate) { if (view == null) { throw new IllegalArgumentException("view must not be null"); diff --git a/core/java/android/view/accessibility/AccessibilityInteractionClient.java b/core/java/android/view/accessibility/AccessibilityInteractionClient.java index 299ae2f0c55e..6f17e34fb5c4 100644 --- a/core/java/android/view/accessibility/AccessibilityInteractionClient.java +++ b/core/java/android/view/accessibility/AccessibilityInteractionClient.java @@ -126,7 +126,7 @@ public final class AccessibilityInteractionClient /** * @return The client for the current thread. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static AccessibilityInteractionClient getInstance() { final long threadId = Thread.currentThread().getId(); return getInstanceForThread(threadId); @@ -205,7 +205,7 @@ public final class AccessibilityInteractionClient * * @param message The message. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setSameThreadMessage(Message message) { synchronized (mInstanceLock) { mSameThreadMessage = message; @@ -729,7 +729,7 @@ public final class AccessibilityInteractionClient return false; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void clearCache() { sAccessibilityCache.clear(); } diff --git a/core/java/android/view/accessibility/AccessibilityManager.java b/core/java/android/view/accessibility/AccessibilityManager.java index c0f92fd7843e..199e64d11b07 100644 --- a/core/java/android/view/accessibility/AccessibilityManager.java +++ b/core/java/android/view/accessibility/AccessibilityManager.java @@ -111,7 +111,7 @@ public final class AccessibilityManager { public static final int DALTONIZER_DISABLED = -1; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int DALTONIZER_SIMULATE_MONOCHROMACY = 0; /** @hide */ diff --git a/core/java/android/view/accessibility/AccessibilityNodeInfo.java b/core/java/android/view/accessibility/AccessibilityNodeInfo.java index 8bc7f3c91d8c..12393a596c15 100644 --- a/core/java/android/view/accessibility/AccessibilityNodeInfo.java +++ b/core/java/android/view/accessibility/AccessibilityNodeInfo.java @@ -726,7 +726,7 @@ public class AccessibilityNodeInfo implements Parcelable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static int getAccessibilityViewId(long accessibilityNodeId) { return (int) accessibilityNodeId; } @@ -740,7 +740,7 @@ public class AccessibilityNodeInfo implements Parcelable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static int getVirtualDescendantId(long accessibilityNodeId) { return (int) ((accessibilityNodeId & VIRTUAL_DESCENDANT_ID_MASK) >> VIRTUAL_DESCENDANT_ID_SHIFT); @@ -768,7 +768,7 @@ public class AccessibilityNodeInfo implements Parcelable { private static final AccessibilityNodeInfo DEFAULT = new AccessibilityNodeInfo(); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private boolean mSealed; // Data. @@ -988,7 +988,7 @@ public class AccessibilityNodeInfo implements Parcelable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean refresh(Bundle arguments, boolean bypassCache) { enforceSealed(); if (!canPerformRequestOverConnection(mConnectionId, mWindowId, mSourceNodeId)) { diff --git a/core/java/android/view/accessibility/IAccessibilityInteractionConnectionCallback.aidl b/core/java/android/view/accessibility/IAccessibilityInteractionConnectionCallback.aidl index f96f0acd6082..049bb31adbb1 100644 --- a/core/java/android/view/accessibility/IAccessibilityInteractionConnectionCallback.aidl +++ b/core/java/android/view/accessibility/IAccessibilityInteractionConnectionCallback.aidl @@ -33,7 +33,7 @@ oneway interface IAccessibilityInteractionConnectionCallback { * @param infos The result {@link AccessibilityNodeInfo}. * @param interactionId The interaction id to match the result with the request. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void setFindAccessibilityNodeInfoResult(in AccessibilityNodeInfo info, int interactionId); /** @@ -42,7 +42,7 @@ oneway interface IAccessibilityInteractionConnectionCallback { * @param infos The result {@link AccessibilityNodeInfo}s. * @param interactionId The interaction id to match the result with the request. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void setFindAccessibilityNodeInfosResult(in List<AccessibilityNodeInfo> infos, int interactionId); @@ -52,6 +52,6 @@ oneway interface IAccessibilityInteractionConnectionCallback { * @param Whether the action was performed. * @param interactionId The interaction id to match the result with the request. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void setPerformAccessibilityActionResult(boolean succeeded, int interactionId); } diff --git a/core/java/android/view/accessibility/IAccessibilityManager.aidl b/core/java/android/view/accessibility/IAccessibilityManager.aidl index 97036f3f3a1b..5d3c72015ee3 100644 --- a/core/java/android/view/accessibility/IAccessibilityManager.aidl +++ b/core/java/android/view/accessibility/IAccessibilityManager.aidl @@ -44,7 +44,7 @@ interface IAccessibilityManager { List<AccessibilityServiceInfo> getInstalledAccessibilityServiceList(int userId); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) List<AccessibilityServiceInfo> getEnabledAccessibilityServiceList(int feedbackType, int userId); int addAccessibilityInteractionConnection(IWindow windowToken, IBinder leashToken, diff --git a/core/java/android/view/inputmethod/InputMethodManager.java b/core/java/android/view/inputmethod/InputMethodManager.java index 0d21673dfc71..b1f4df143a0f 100644 --- a/core/java/android/view/inputmethod/InputMethodManager.java +++ b/core/java/android/view/inputmethod/InputMethodManager.java @@ -2282,7 +2282,7 @@ public final class InputMethodManager { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isCursorAnchorInfoEnabled() { synchronized (mH) { final boolean isImmediate = (mRequestUpdateCursorAnchorInfoMonitorMode & @@ -2298,7 +2298,7 @@ public final class InputMethodManager { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setUpdateCursorAnchorInfoMode(int flags) { synchronized (mH) { mRequestUpdateCursorAnchorInfoMonitorMode = flags; diff --git a/core/java/android/view/textclassifier/TextClassificationManager.java b/core/java/android/view/textclassifier/TextClassificationManager.java index fa4f7d6d32da..b606340b77a7 100644 --- a/core/java/android/view/textclassifier/TextClassificationManager.java +++ b/core/java/android/view/textclassifier/TextClassificationManager.java @@ -21,6 +21,7 @@ import android.annotation.Nullable; import android.annotation.SystemService; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; +import android.os.Build; import android.os.ServiceManager; import android.view.textclassifier.TextClassifier.TextClassifierType; @@ -104,7 +105,7 @@ public final class TextClassificationManager { * @see TextClassifier#DEFAULT_SYSTEM * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public TextClassifier getTextClassifier(@TextClassifierType int type) { switch (type) { case TextClassifier.LOCAL: diff --git a/core/java/android/view/textservice/SpellCheckerSession.java b/core/java/android/view/textservice/SpellCheckerSession.java index afddaa2ff58a..35d84458bd35 100644 --- a/core/java/android/view/textservice/SpellCheckerSession.java +++ b/core/java/android/view/textservice/SpellCheckerSession.java @@ -18,6 +18,7 @@ package android.view.textservice; import android.compat.annotation.UnsupportedAppUsage; import android.os.Binder; +import android.os.Build; import android.os.Handler; import android.os.HandlerThread; import android.os.Message; @@ -97,7 +98,7 @@ public class SpellCheckerSession { private final InternalListener mInternalListener; private final TextServicesManager mTextServicesManager; private final SpellCheckerInfo mSpellCheckerInfo; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final SpellCheckerSessionListener mSpellCheckerSessionListener; private final SpellCheckerSessionListenerImpl mSpellCheckerSessionListenerImpl; diff --git a/core/java/android/view/textservice/TextServicesManager.java b/core/java/android/view/textservice/TextServicesManager.java index acb35d63df9d..08de464d9cb2 100644 --- a/core/java/android/view/textservice/TextServicesManager.java +++ b/core/java/android/view/textservice/TextServicesManager.java @@ -21,6 +21,7 @@ import android.annotation.SystemService; import android.annotation.UserIdInt; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; +import android.os.Build; import android.os.Bundle; import android.os.RemoteException; import android.os.ServiceManager; @@ -216,7 +217,7 @@ public final class TextServicesManager { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public SpellCheckerInfo[] getEnabledSpellCheckers() { try { final SpellCheckerInfo[] retval = mService.getEnabledSpellCheckers(mUserId); diff --git a/core/java/android/webkit/IWebViewUpdateService.aidl b/core/java/android/webkit/IWebViewUpdateService.aidl index 1da0500727ad..e17773159ec5 100644 --- a/core/java/android/webkit/IWebViewUpdateService.aidl +++ b/core/java/android/webkit/IWebViewUpdateService.aidl @@ -51,7 +51,7 @@ interface IWebViewUpdateService { * DevelopmentSettings uses this to get the current available WebView * providers (to display as choices to the user). */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) WebViewProviderInfo[] getValidWebViewPackages(); /** @@ -62,7 +62,7 @@ interface IWebViewUpdateService { /** * Used by DevelopmentSetting to get the name of the WebView provider currently in use. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) String getCurrentWebViewPackageName(); /** diff --git a/core/java/android/webkit/PluginData.java b/core/java/android/webkit/PluginData.java index c9a196017a75..5d481b12a27c 100644 --- a/core/java/android/webkit/PluginData.java +++ b/core/java/android/webkit/PluginData.java @@ -17,6 +17,7 @@ package android.webkit; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import java.io.InputStream; import java.util.Map; @@ -93,7 +94,7 @@ public final class PluginData { * deprecated, so is this class. */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public InputStream getInputStream() { return mStream; } @@ -108,7 +109,7 @@ public final class PluginData { * deprecated, so is this class. */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public long getContentLength() { return mContentLength; } @@ -126,7 +127,7 @@ public final class PluginData { * deprecated, so is this class. */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Map<String, String[]> getHeaders() { return mHeaders; } @@ -141,7 +142,7 @@ public final class PluginData { * deprecated, so is this class. */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getStatusCode() { return mStatusCode; } diff --git a/core/java/android/webkit/UrlInterceptRegistry.java b/core/java/android/webkit/UrlInterceptRegistry.java index c9dee00942c3..4fa6fdeecbee 100644 --- a/core/java/android/webkit/UrlInterceptRegistry.java +++ b/core/java/android/webkit/UrlInterceptRegistry.java @@ -18,6 +18,7 @@ package android.webkit; import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.webkit.CacheManager.CacheResult; import java.util.Iterator; @@ -154,7 +155,7 @@ public final class UrlInterceptRegistry { */ @Deprecated @Nullable - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static synchronized PluginData getPluginData( String url, Map<String, String> headers) { if (urlInterceptDisabled()) { diff --git a/core/java/android/webkit/WebResourceResponse.java b/core/java/android/webkit/WebResourceResponse.java index 219523b15ab0..e4af9095265c 100644 --- a/core/java/android/webkit/WebResourceResponse.java +++ b/core/java/android/webkit/WebResourceResponse.java @@ -19,6 +19,7 @@ package android.webkit; import android.annotation.NonNull; import android.annotation.SystemApi; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import java.io.InputStream; import java.io.StringBufferInputStream; @@ -34,7 +35,7 @@ public class WebResourceResponse { private boolean mImmutable; private String mMimeType; private String mEncoding; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private int mStatusCode; private String mReasonPhrase; private Map<String, String> mResponseHeaders; diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index 5eeab7225299..56849c1491ca 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -111,7 +111,7 @@ public class WebView extends AbsoluteLayout // Throwing an exception for incorrect thread usage if the // build target is JB MR2 or newer. Defaults to false, and is // set in the WebView constructor. - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static volatile boolean sEnforceThreadChecking = false; /** @@ -406,7 +406,7 @@ public class WebView extends AbsoluteLayout * @hide */ @SuppressWarnings("deprecation") // for super() call into deprecated base class constructor. - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) protected WebView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes, @Nullable Map<String, Object> javaScriptInterfaces, boolean privateBrowsing) { @@ -2576,7 +2576,7 @@ public class WebView extends AbsoluteLayout return WebViewFactory.getProvider(); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final Looper mWebViewThread = Looper.myLooper(); @UnsupportedAppUsage diff --git a/core/java/android/webkit/WebViewFactory.java b/core/java/android/webkit/WebViewFactory.java index 8790bbdcd8f7..d388bcdff468 100644 --- a/core/java/android/webkit/WebViewFactory.java +++ b/core/java/android/webkit/WebViewFactory.java @@ -26,6 +26,7 @@ import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.Signature; +import android.os.Build; import android.os.RemoteException; import android.os.ServiceManager; import android.os.Trace; @@ -390,7 +391,7 @@ public final class WebViewFactory { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static Class<WebViewFactoryProvider> getProviderClass() { Context webViewContext = null; Application initialApplication = AppGlobals.getInitialApplication(); diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java index 16e87f8bca9a..64e1ca84cb81 100644 --- a/core/java/android/widget/AbsListView.java +++ b/core/java/android/widget/AbsListView.java @@ -252,7 +252,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te /** * Controls CHOICE_MODE_MULTIPLE_MODAL. null when inactive. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) ActionMode mChoiceActionMode; /** @@ -287,7 +287,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te /** * Should be used by subclasses to listen to changes in the dataset */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) AdapterDataSetObserver mDataSetObserver; /** @@ -451,7 +451,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te /** * Handles scrolling between positions within the list. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) AbsPositionScroller mPositionScroller; /** @@ -1453,7 +1453,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te * @hide */ @Override - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) protected boolean isVerticalScrollBarHidden() { return isFastScrollEnabled(); } @@ -2247,7 +2247,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private boolean canScrollUp() { boolean canScrollUp; // 0th element is not visible @@ -2264,7 +2264,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te return canScrollUp; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private boolean canScrollDown() { boolean canScrollDown; int count = getChildCount(); @@ -3273,7 +3273,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te CheckForLongPress.INVALID_COORD); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) boolean performLongPress(final View child, final int longPressPosition, final long longPressId, float x, float y) { // CHOICE_MODE_MULTIPLE_MODAL takes over long press. @@ -6686,7 +6686,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te * scrap heap. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) int scrappedFromPosition; /** diff --git a/core/java/android/widget/AbsSeekBar.java b/core/java/android/widget/AbsSeekBar.java index 67ed30f2ec73..b9ff26b7d9ff 100644 --- a/core/java/android/widget/AbsSeekBar.java +++ b/core/java/android/widget/AbsSeekBar.java @@ -29,6 +29,7 @@ import android.graphics.PorterDuff; import android.graphics.Rect; import android.graphics.Region.Op; import android.graphics.drawable.Drawable; +import android.os.Build; import android.os.Bundle; import android.util.AttributeSet; import android.view.KeyEvent; @@ -857,7 +858,7 @@ public abstract class AbsSeekBar extends ProgressBar { /** * Draw the thumb. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) void drawThumb(Canvas canvas) { if (mThumb != null) { final int saveCount = canvas.save(); diff --git a/core/java/android/widget/ActionMenuPresenter.java b/core/java/android/widget/ActionMenuPresenter.java index aa3590aaff0a..6d566baa23cd 100644 --- a/core/java/android/widget/ActionMenuPresenter.java +++ b/core/java/android/widget/ActionMenuPresenter.java @@ -27,6 +27,7 @@ import android.content.Context; import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.drawable.Drawable; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.util.SparseArray; @@ -587,7 +588,7 @@ public class ActionMenuPresenter extends BaseMenuPresenter * Dismiss all popup menus - overflow and submenus. * @return true if popups were dismissed, false otherwise. (This can be because none were open.) */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean dismissPopupMenus() { boolean result = hideOverflowMenu(); result |= hideSubMenus(); @@ -610,7 +611,7 @@ public class ActionMenuPresenter extends BaseMenuPresenter /** * @return true if the overflow menu is currently showing */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isOverflowMenuShowing() { return mOverflowPopup != null && mOverflowPopup.isShowing(); } @@ -769,7 +770,7 @@ public class ActionMenuPresenter extends BaseMenuPresenter } @Override - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Parcelable onSaveInstanceState() { SavedState state = new SavedState(); state.openSubMenuId = mOpenSubMenuId; @@ -777,7 +778,7 @@ public class ActionMenuPresenter extends BaseMenuPresenter } @Override - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void onRestoreInstanceState(Parcelable state) { SavedState saved = (SavedState) state; if (saved.openSubMenuId > 0) { diff --git a/core/java/android/widget/ActionMenuView.java b/core/java/android/widget/ActionMenuView.java index 3a743562110f..f83ff305cfdc 100644 --- a/core/java/android/widget/ActionMenuView.java +++ b/core/java/android/widget/ActionMenuView.java @@ -22,6 +22,7 @@ import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.content.res.Configuration; import android.graphics.drawable.Drawable; +import android.os.Build; import android.util.AttributeSet; import android.view.ContextThemeWrapper; import android.view.Gravity; @@ -719,7 +720,7 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo * @hide Private LinearLayout (superclass) API. Un-hide if LinearLayout API is made public. */ @Override - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) protected boolean hasDividerBeforeChildAt(int childIndex) { if (childIndex == 0) { return false; @@ -790,7 +791,7 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo /** @hide */ public interface ActionMenuChildView { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean needsDividerBefore(); public boolean needsDividerAfter(); } @@ -798,31 +799,31 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo public static class LayoutParams extends LinearLayout.LayoutParams { /** @hide */ @ViewDebug.ExportedProperty(category = "layout") - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isOverflowButton; /** @hide */ @ViewDebug.ExportedProperty(category = "layout") - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int cellsUsed; /** @hide */ @ViewDebug.ExportedProperty(category = "layout") - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int extraPixels; /** @hide */ @ViewDebug.ExportedProperty(category = "layout") - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean expandable; /** @hide */ @ViewDebug.ExportedProperty(category = "layout") - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean preventEdgeOffset; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean expanded; public LayoutParams(Context c, AttributeSet attrs) { diff --git a/core/java/android/widget/ActivityChooserModel.java b/core/java/android/widget/ActivityChooserModel.java index d87bdf482e43..bba64c9382dc 100644 --- a/core/java/android/widget/ActivityChooserModel.java +++ b/core/java/android/widget/ActivityChooserModel.java @@ -26,6 +26,7 @@ import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.database.DataSetObservable; import android.os.AsyncTask; +import android.os.Build; import android.text.TextUtils; import android.util.Log; import android.util.Xml; @@ -378,7 +379,7 @@ public class ActivityChooserModel extends DataSetObservable { * * @param intent The intent. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setIntent(Intent intent) { synchronized (mInstanceLock) { if (mIntent == intent) { @@ -513,7 +514,7 @@ public class ActivityChooserModel extends DataSetObservable { * * @param listener The listener. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setOnChooseActivityListener(OnChooseActivityListener listener) { synchronized (mInstanceLock) { mActivityChoserModelPolicy = listener; diff --git a/core/java/android/widget/AutoCompleteTextView.java b/core/java/android/widget/AutoCompleteTextView.java index 00526d9f8a2c..ea906c68c69b 100644 --- a/core/java/android/widget/AutoCompleteTextView.java +++ b/core/java/android/widget/AutoCompleteTextView.java @@ -113,7 +113,7 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe private final PassThroughClickListener mPassThroughClickListener; private CharSequence mHintText; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private TextView mHintView; private int mHintResource; @@ -615,7 +615,7 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe * * @hide Pending API council approval */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setDropDownDismissedOnCompletion(boolean dropDownDismissedOnCompletion) { mDropDownDismissedOnCompletion = dropDownDismissedOnCompletion; } @@ -1225,7 +1225,7 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe * * @hide internal used only by SearchDialog */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void showDropDownAfterLayout() { mPopup.postShow(); } diff --git a/core/java/android/widget/DatePickerSpinnerDelegate.java b/core/java/android/widget/DatePickerSpinnerDelegate.java index fd89b2e09131..c6d456d8cb01 100644 --- a/core/java/android/widget/DatePickerSpinnerDelegate.java +++ b/core/java/android/widget/DatePickerSpinnerDelegate.java @@ -21,6 +21,7 @@ import android.content.Context; import android.content.res.Configuration; import android.content.res.TypedArray; import android.icu.util.Calendar; +import android.os.Build; import android.os.Parcelable; import android.text.InputType; import android.text.TextUtils; @@ -501,7 +502,7 @@ class DatePickerSpinnerDelegate extends AbstractDatePickerDelegate { || mCurrentDate.get(Calendar.DAY_OF_MONTH) != dayOfMonth); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private void setDate(int year, int month, int dayOfMonth) { mCurrentDate.set(year, month, dayOfMonth); resetAutofilledValue(); @@ -512,7 +513,7 @@ class DatePickerSpinnerDelegate extends AbstractDatePickerDelegate { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private void updateSpinners() { // set the spinner ranges respecting the min and max dates if (mCurrentDate.equals(mMinDate)) { @@ -565,7 +566,7 @@ class DatePickerSpinnerDelegate extends AbstractDatePickerDelegate { /** * Updates the calendar view with the current date. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private void updateCalendarView() { mCalendarView.setDate(mCurrentDate.getTimeInMillis(), false, false); } @@ -574,7 +575,7 @@ class DatePickerSpinnerDelegate extends AbstractDatePickerDelegate { /** * Notifies the listener, if such, for a change in the selected date. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private void notifyDateChanged() { mDelegator.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_SELECTED); if (mOnDateChangedListener != null) { @@ -630,7 +631,7 @@ class DatePickerSpinnerDelegate extends AbstractDatePickerDelegate { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private void updateInputState() { // Make sure that if the user changes the value and the IME is active // for one of the inputs if this widget, the IME is closed. If the user diff --git a/core/java/android/widget/DateTimeView.java b/core/java/android/widget/DateTimeView.java index 20a53c03bed1..955552289c3a 100644 --- a/core/java/android/widget/DateTimeView.java +++ b/core/java/android/widget/DateTimeView.java @@ -30,6 +30,7 @@ import android.content.IntentFilter; import android.content.res.Configuration; import android.content.res.TypedArray; import android.database.ContentObserver; +import android.os.Build; import android.os.Handler; import android.util.AttributeSet; import android.view.accessibility.AccessibilityNodeInfo; @@ -81,7 +82,7 @@ public class DateTimeView extends TextView { this(context, null); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public DateTimeView(Context context, AttributeSet attrs) { super(context, attrs); final TypedArray a = context.obtainStyledAttributes(attrs, diff --git a/core/java/android/widget/EdgeEffect.java b/core/java/android/widget/EdgeEffect.java index 32f3acd387b0..c10ffbee686a 100644 --- a/core/java/android/widget/EdgeEffect.java +++ b/core/java/android/widget/EdgeEffect.java @@ -87,7 +87,7 @@ public class EdgeEffect { private static final float RADIUS_FACTOR = 0.6f; private float mGlowAlpha; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private float mGlowScaleY; private float mGlowAlphaStart; diff --git a/core/java/android/widget/Editor.java b/core/java/android/widget/Editor.java index 07a721f5a9c9..0eed7b6af43c 100644 --- a/core/java/android/widget/Editor.java +++ b/core/java/android/widget/Editor.java @@ -308,7 +308,7 @@ public class Editor { private boolean mShowErrorAfterAttach; boolean mInBatchEditControllers; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) boolean mShowSoftInputOnFocus = true; private boolean mPreserveSelection; private boolean mRestartActionModeOnNextRefresh; @@ -340,7 +340,7 @@ public class Editor { Callback mCustomInsertionActionModeCallback; // Set when this TextView gained focus with some text selected. Will start selection mode. - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) boolean mCreatedWithASelection; // The button state as of the last time #onTouchEvent is called. diff --git a/core/java/android/widget/FastScroller.java b/core/java/android/widget/FastScroller.java index 0c0b3491a854..7dbe7b234422 100644 --- a/core/java/android/widget/FastScroller.java +++ b/core/java/android/widget/FastScroller.java @@ -140,7 +140,7 @@ class FastScroller { @UnsupportedAppUsage private Drawable mThumbDrawable; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private Drawable mTrackDrawable; private int mTextAppearance; private int mThumbPosition; diff --git a/core/java/android/widget/GridLayout.java b/core/java/android/widget/GridLayout.java index f1321979e2de..aa51d2c5de2d 100644 --- a/core/java/android/widget/GridLayout.java +++ b/core/java/android/widget/GridLayout.java @@ -38,6 +38,7 @@ import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Insets; import android.graphics.Paint; +import android.os.Build; import android.util.AttributeSet; import android.util.Log; import android.util.LogPrinter; @@ -2814,7 +2815,7 @@ public class GridLayout extends ViewGroup { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) static final Alignment UNDEFINED_ALIGNMENT = new Alignment() { @Override int getGravityOffset(View view, int cellDelta) { diff --git a/core/java/android/widget/GridView.java b/core/java/android/widget/GridView.java index 4a5e95e492e5..196d68bcd08a 100644 --- a/core/java/android/widget/GridView.java +++ b/core/java/android/widget/GridView.java @@ -979,7 +979,7 @@ public class GridView extends AbsListView { return sel; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private boolean determineColumns(int availableSpace) { final int requestedHorizontalSpacing = mRequestedHorizontalSpacing; final int stretchMode = mStretchMode; diff --git a/core/java/android/widget/HorizontalScrollView.java b/core/java/android/widget/HorizontalScrollView.java index 3bb39c135034..97dbb1542717 100644 --- a/core/java/android/widget/HorizontalScrollView.java +++ b/core/java/android/widget/HorizontalScrollView.java @@ -150,9 +150,9 @@ public class HorizontalScrollView extends FrameLayout { private int mMinimumVelocity; private int mMaximumVelocity; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private int mOverscrollDistance; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private int mOverflingDistance; private float mHorizontalScrollFactor; diff --git a/core/java/android/widget/ImageView.java b/core/java/android/widget/ImageView.java index c20773848759..e4de4001c3e2 100644 --- a/core/java/android/widget/ImageView.java +++ b/core/java/android/widget/ImageView.java @@ -127,7 +127,7 @@ public class ImageView extends View { @UnsupportedAppUsage private Drawable mDrawable = null; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private BitmapDrawable mRecycleableBitmapDrawable = null; private ColorStateList mDrawableTintList = null; private BlendMode mDrawableBlendMode = null; diff --git a/core/java/android/widget/LinearLayout.java b/core/java/android/widget/LinearLayout.java index a796ba545d8f..fa84407c5c4d 100644 --- a/core/java/android/widget/LinearLayout.java +++ b/core/java/android/widget/LinearLayout.java @@ -212,9 +212,9 @@ public class LinearLayout extends ViewGroup { private static final int VERTICAL_GRAVITY_COUNT = 4; private static final int INDEX_CENTER_VERTICAL = 0; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final int INDEX_TOP = 1; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final int INDEX_BOTTOM = 2; private static final int INDEX_FILL = 3; diff --git a/core/java/android/widget/ListPopupWindow.java b/core/java/android/widget/ListPopupWindow.java index 4311ffbe0e95..6232480f8620 100755 --- a/core/java/android/widget/ListPopupWindow.java +++ b/core/java/android/widget/ListPopupWindow.java @@ -332,7 +332,7 @@ public class ListPopupWindow implements ShowableListMenu { * * @hide Only used by AutoCompleteTextView under special conditions. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setDropDownAlwaysVisible(boolean dropDownAlwaysVisible) { mDropDownAlwaysVisible = dropDownAlwaysVisible; } @@ -342,7 +342,7 @@ public class ListPopupWindow implements ShowableListMenu { * * @hide Only used by AutoCompleteTextView under special conditions. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isDropDownAlwaysVisible() { return mDropDownAlwaysVisible; } @@ -933,7 +933,7 @@ public class ListPopupWindow implements ShowableListMenu { * * @param max Max number of items that can be visible and still allow the list to expand. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) void setListItemExpandMax(int max) { mListItemExpandMaximum = max; } @@ -1130,7 +1130,7 @@ public class ListPopupWindow implements ShowableListMenu { * * @return the content's height or -1 if content already exists */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private int buildDropDown() { ViewGroup dropDownView; int otherHeights = 0; diff --git a/core/java/android/widget/ListView.java b/core/java/android/widget/ListView.java index 3c3daa3c7001..cf0e0d1f1842 100644 --- a/core/java/android/widget/ListView.java +++ b/core/java/android/widget/ListView.java @@ -1979,7 +1979,7 @@ public class ListView extends AbsListView { } @Override - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) boolean trackMotionScroll(int deltaY, int incrementalDeltaY) { final boolean result = super.trackMotionScroll(deltaY, incrementalDeltaY); removeUnusedFixedViews(mHeaderViewInfos); @@ -4028,7 +4028,7 @@ public class ListView extends AbsListView { } @Override - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) int getHeightForPosition(int position) { final int height = super.getHeightForPosition(position); if (shouldAdjustHeightForDivider(position)) { diff --git a/core/java/android/widget/NumberPicker.java b/core/java/android/widget/NumberPicker.java index 8dfb936ef7ee..7c20472df357 100644 --- a/core/java/android/widget/NumberPicker.java +++ b/core/java/android/widget/NumberPicker.java @@ -250,7 +250,7 @@ public class NumberPicker extends LinearLayout { /** * The min height of this widget. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final int mMinHeight; /** @@ -261,7 +261,7 @@ public class NumberPicker extends LinearLayout { /** * The max width of this widget. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final int mMinWidth; /** @@ -277,7 +277,7 @@ public class NumberPicker extends LinearLayout { /** * The height of the text. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final int mTextSize; /** @@ -298,7 +298,7 @@ public class NumberPicker extends LinearLayout { /** * Upper value of the range of numbers allowed for the NumberPicker */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private int mMaxValue; /** @@ -309,7 +309,7 @@ public class NumberPicker extends LinearLayout { /** * Listener to be notified upon current value change. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private OnValueChangeListener mOnValueChangeListener; /** @@ -367,7 +367,7 @@ public class NumberPicker extends LinearLayout { /** * The {@link Scroller} responsible for flinging the selector. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final Scroller mFlingScroller; /** @@ -429,7 +429,7 @@ public class NumberPicker extends LinearLayout { /** * @see ViewConfiguration#getScaledMaximumFlingVelocity() */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private int mMaximumFlingVelocity; /** diff --git a/core/java/android/widget/OverScroller.java b/core/java/android/widget/OverScroller.java index 1c33d80fd4ca..27fcde25ad37 100644 --- a/core/java/android/widget/OverScroller.java +++ b/core/java/android/widget/OverScroller.java @@ -19,6 +19,7 @@ package android.widget; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.hardware.SensorManager; +import android.os.Build; import android.util.Log; import android.view.ViewConfiguration; import android.view.animation.AnimationUtils; @@ -36,7 +37,7 @@ public class OverScroller { @UnsupportedAppUsage private final SplineOverScroller mScrollerY; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private Interpolator mInterpolator; private final boolean mFlywheel; diff --git a/core/java/android/widget/PopupMenu.java b/core/java/android/widget/PopupMenu.java index 0ce964666a2b..2aa587539930 100644 --- a/core/java/android/widget/PopupMenu.java +++ b/core/java/android/widget/PopupMenu.java @@ -20,6 +20,7 @@ import android.annotation.MenuRes; import android.annotation.TestApi; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; +import android.os.Build; import android.view.Gravity; import android.view.Menu; import android.view.MenuInflater; @@ -40,7 +41,7 @@ import com.android.internal.view.menu.ShowableListMenu; * it. */ public class PopupMenu { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final Context mContext; private final MenuBuilder mMenu; private final View mAnchor; diff --git a/core/java/android/widget/PopupWindow.java b/core/java/android/widget/PopupWindow.java index cc3d74477342..e7e148abb95a 100644 --- a/core/java/android/widget/PopupWindow.java +++ b/core/java/android/widget/PopupWindow.java @@ -183,7 +183,7 @@ public class PopupWindow { private boolean mClipToScreen; private boolean mAllowScrollingAnchorParent = true; private boolean mLayoutInsetDecor = false; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private boolean mNotTouchModal; private boolean mAttachedInDecor = true; private boolean mAttachedInDecorSet = false; diff --git a/core/java/android/widget/ProgressBar.java b/core/java/android/widget/ProgressBar.java index 4b32e10d083b..8de9149a404c 100644 --- a/core/java/android/widget/ProgressBar.java +++ b/core/java/android/widget/ProgressBar.java @@ -238,7 +238,7 @@ public class ProgressBar extends View { /** Value used to track progress animation, in the range [0...1]. */ private float mVisualProgress; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) boolean mMirrorForRtl = false; private boolean mAggregatedIsVisible; @@ -1663,7 +1663,7 @@ public class ProgressBar extends View { // Stub method. } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private synchronized void refreshProgress(int id, int progress, boolean fromUser, boolean animate) { if (mUiThreadId == Thread.currentThread().getId()) { diff --git a/core/java/android/widget/RemoteViews.java b/core/java/android/widget/RemoteViews.java index 7016c5cf0de6..99cd2702a03d 100644 --- a/core/java/android/widget/RemoteViews.java +++ b/core/java/android/widget/RemoteViews.java @@ -260,7 +260,7 @@ public class RemoteViews implements Parcelable, Filter { * RemoteViews. */ private RemoteViews mLandscape = null; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private RemoteViews mPortrait = null; @ApplyFlags @@ -438,7 +438,7 @@ public class RemoteViews implements Parcelable, Filter { // Do nothing } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int mergeBehavior() { return MERGE_REPLACE; } @@ -507,7 +507,7 @@ public class RemoteViews implements Parcelable, Filter { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void mergeRemoteViews(RemoteViews newRv) { if (newRv == null) return; // We first copy the new RemoteViews, as the process of merging modifies the way the actions @@ -699,7 +699,7 @@ public class RemoteViews implements Parcelable, Filter { return SET_PENDING_INTENT_TEMPLATE_TAG; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) PendingIntent pendingIntentTemplate; } @@ -1147,7 +1147,7 @@ public class RemoteViews implements Parcelable, Filter { private static class BitmapCache { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) ArrayList<Bitmap> mBitmaps; int mBitmapMemory = -1; @@ -1563,7 +1563,7 @@ public class RemoteViews implements Parcelable, Filter { * ViewGroup methods that are related to adding Views. */ private class ViewGroupActionAdd extends Action { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private RemoteViews mNestedViews; private int mIndex; @@ -2478,7 +2478,7 @@ public class RemoteViews implements Parcelable, Filter { * Returns an estimate of the bitmap heap memory usage for this RemoteViews. */ /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int estimateMemoryUsage() { return mBitmapCache.getBitmapMemory(); } @@ -3003,7 +3003,7 @@ public class RemoteViews implements Parcelable, Filter { * @hide * @deprecated this appears to have no users outside of UnsupportedAppUsage? */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @Deprecated public void setRemoteAdapter(int viewId, ArrayList<RemoteViews> list, int viewTypeCount) { addAction(new SetRemoteViewsAdapterList(viewId, list, viewTypeCount)); diff --git a/core/java/android/widget/RemoteViewsAdapter.java b/core/java/android/widget/RemoteViewsAdapter.java index e58f08a79965..a3858c880b01 100644 --- a/core/java/android/widget/RemoteViewsAdapter.java +++ b/core/java/android/widget/RemoteViewsAdapter.java @@ -31,6 +31,7 @@ import android.content.ServiceConnection; import android.content.pm.ActivityInfo; import android.content.pm.ApplicationInfo; import android.content.res.Configuration; +import android.os.Build; import android.os.Handler; import android.os.HandlerThread; import android.os.IBinder; @@ -106,7 +107,7 @@ public class RemoteViewsAdapter extends BaseAdapter implements Handler.Callback private final Executor mAsyncViewLoadExecutor; private OnClickHandler mRemoteViewsOnClickHandler; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final FixedSizeRemoteViewsCache mCache; private int mVisibleWindowLowerBound; private int mVisibleWindowUpperBound; @@ -115,7 +116,7 @@ public class RemoteViewsAdapter extends BaseAdapter implements Handler.Callback // loaded. private RemoteViewsFrameLayoutRefSet mRequestedViews; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final HandlerThread mWorkerThread; // items may be interrupted within the normally processed queues private final Handler mMainHandler; @@ -895,17 +896,17 @@ public class RemoteViewsAdapter extends BaseAdapter implements Handler.Callback } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isDataReady() { return mDataReady; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setRemoteViewsOnClickHandler(OnClickHandler handler) { mRemoteViewsOnClickHandler = handler; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void saveRemoteViewsCache() { final RemoteViewsCacheKey key = new RemoteViewsCacheKey( new Intent.FilterComparison(mIntent), mAppWidgetId); @@ -1050,7 +1051,7 @@ public class RemoteViewsAdapter extends BaseAdapter implements Handler.Callback } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Intent getRemoteViewsServiceIntent() { return mIntent; } @@ -1097,7 +1098,7 @@ public class RemoteViewsAdapter extends BaseAdapter implements Handler.Callback * views are currently being displayed. This allows for certain optimizations and preloading * which wouldn't otherwise be possible. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setVisibleRangeHint(int lowerBound, int upperBound) { mVisibleWindowLowerBound = lowerBound; mVisibleWindowUpperBound = upperBound; diff --git a/core/java/android/widget/ScrollView.java b/core/java/android/widget/ScrollView.java index b44b8c222fac..f3de9828c4aa 100644 --- a/core/java/android/widget/ScrollView.java +++ b/core/java/android/widget/ScrollView.java @@ -188,7 +188,7 @@ public class ScrollView extends FrameLayout { * These are no-ops on user builds. */ private StrictMode.Span mScrollStrictSpan = null; // aka "drag" - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private StrictMode.Span mFlingStrictSpan = null; /** diff --git a/core/java/android/widget/SearchView.java b/core/java/android/widget/SearchView.java index 6ef570cdc784..e246288b81f1 100755 --- a/core/java/android/widget/SearchView.java +++ b/core/java/android/widget/SearchView.java @@ -1938,7 +1938,7 @@ public class SearchView extends LinearLayout implements CollapsibleActionView { mThreshold = getThreshold(); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public SearchAutoComplete(Context context, AttributeSet attrs) { super(context, attrs); mThreshold = getThreshold(); diff --git a/core/java/android/widget/SeekBar.java b/core/java/android/widget/SeekBar.java index 5676881cee76..201cab1c81e3 100644 --- a/core/java/android/widget/SeekBar.java +++ b/core/java/android/widget/SeekBar.java @@ -18,6 +18,7 @@ package android.widget; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; +import android.os.Build; import android.util.AttributeSet; import android.view.accessibility.AccessibilityNodeInfo; @@ -90,7 +91,7 @@ public class SeekBar extends AbsSeekBar { } @Override - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) void onProgressRefresh(float scale, boolean fromUser, int progress) { super.onProgressRefresh(scale, fromUser, progress); diff --git a/core/java/android/widget/Spinner.java b/core/java/android/widget/Spinner.java index 46fc09f4c3b3..ba6fa197f164 100644 --- a/core/java/android/widget/Spinner.java +++ b/core/java/android/widget/Spinner.java @@ -1082,7 +1082,7 @@ public class Spinner extends AbsSpinner implements OnClickListener { /** * @return true if the popup is showing, false otherwise. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isShowing(); /** @@ -1113,7 +1113,7 @@ public class Spinner extends AbsSpinner implements OnClickListener { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isShowing() { return mPopup != null ? mPopup.isShowing() : false; } diff --git a/core/java/android/widget/Switch.java b/core/java/android/widget/Switch.java index e1fd77624a29..8c8172ea15a6 100644 --- a/core/java/android/widget/Switch.java +++ b/core/java/android/widget/Switch.java @@ -35,6 +35,7 @@ import android.graphics.Rect; import android.graphics.Region.Op; import android.graphics.Typeface; import android.graphics.drawable.Drawable; +import android.os.Build; import android.os.Build.VERSION_CODES; import android.text.Layout; import android.text.StaticLayout; @@ -110,7 +111,7 @@ public class Switch extends CompoundButton { private boolean mHasTrackTintMode = false; private int mThumbTextPadding; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private int mSwitchMinWidth; private int mSwitchPadding; private boolean mSplitTrack; diff --git a/core/java/android/widget/TextClock.java b/core/java/android/widget/TextClock.java index 95c0e8658c57..b1485ef27de5 100644 --- a/core/java/android/widget/TextClock.java +++ b/core/java/android/widget/TextClock.java @@ -32,6 +32,7 @@ import android.content.res.TypedArray; import android.database.ContentObserver; import android.icu.text.DateTimePatternGenerator; import android.net.Uri; +import android.os.Build; import android.os.Handler; import android.os.SystemClock; import android.os.UserHandle; @@ -494,7 +495,7 @@ public class TextClock extends TextView { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public CharSequence getFormat() { return mFormat; } diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index f2bc89e9deb6..c617ccca516e 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -4319,7 +4319,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener shouldRequestLayout); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private void setRawTextSize(float size, boolean shouldRequestLayout) { if (size != mTextPaint.getTextSize()) { mTextPaint.setTextSize(size); @@ -7823,7 +7823,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener return drawableState; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private Path getUpdatedHighlightPath() { Path highlight = null; Paint highlightPaint = mHighlightPaint; @@ -12228,7 +12228,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener * be {@code null} if no text is set */ @Nullable - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private CharSequence getTextForAccessibility() { // If the text is empty, we must be showing the hint text. if (TextUtils.isEmpty(mText)) { @@ -12370,7 +12370,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener return false; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) CharSequence getTransformedText(int start, int end) { return removeSuggestionSpans(mTransformed.subSequence(start, end)); } @@ -12880,7 +12880,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener return x; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) int getLineAtCoordinate(float y) { y -= getTotalPaddingTop(); // Clamp the position to inside of the view. @@ -13069,7 +13069,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener * Deletes the range of text [start, end[. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) protected void deleteText_internal(int start, int end) { ((Editable) mText).delete(start, end); } @@ -13121,7 +13121,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener * @hide */ @Override - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public CharSequence getIterableTextForAccessibility() { return mText; } diff --git a/core/java/android/widget/ViewAnimator.java b/core/java/android/widget/ViewAnimator.java index 90f61ca50d52..3f8325a8f547 100644 --- a/core/java/android/widget/ViewAnimator.java +++ b/core/java/android/widget/ViewAnimator.java @@ -21,6 +21,7 @@ import android.annotation.AnimRes; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.content.res.TypedArray; +import android.os.Build; import android.util.AttributeSet; import android.view.View; import android.view.ViewGroup; @@ -156,7 +157,7 @@ public class ViewAnimator extends FrameLayout { * @param animate Whether or not to use the in and out animations, defaults * to true. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) void showOnly(int childIndex, boolean animate) { final int count = getChildCount(); for (int i = 0; i < count; i++) { diff --git a/core/java/android/widget/ViewFlipper.java b/core/java/android/widget/ViewFlipper.java index 2df9a785450b..5abb6e1637e7 100644 --- a/core/java/android/widget/ViewFlipper.java +++ b/core/java/android/widget/ViewFlipper.java @@ -23,6 +23,7 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.res.TypedArray; +import android.os.Build; import android.os.Message; import android.util.AttributeSet; import android.util.Log; @@ -183,7 +184,7 @@ public class ViewFlipper extends ViewAnimator { * addition to queuing future flips. If omitted, defaults to * true. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private void updateRunning(boolean flipNow) { boolean running = mVisible && mStarted && mUserPresent; if (running != mRunning) { diff --git a/core/java/com/android/ims/internal/uce/common/CapInfo.java b/core/java/com/android/ims/internal/uce/common/CapInfo.java index a7a90f6912c2..bca647a911d6 100644 --- a/core/java/com/android/ims/internal/uce/common/CapInfo.java +++ b/core/java/com/android/ims/internal/uce/common/CapInfo.java @@ -17,6 +17,7 @@ package com.android.ims.internal.uce.common; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -91,7 +92,7 @@ public class CapInfo implements Parcelable { /** * Constructor for the CapInfo class. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public CapInfo() { }; @@ -99,7 +100,7 @@ public class CapInfo implements Parcelable { /** * Checks whether IM is supported. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isImSupported() { return mImSupported; } @@ -107,7 +108,7 @@ public class CapInfo implements Parcelable { /** * Sets IM as supported or not supported. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setImSupported(boolean imSupported) { this.mImSupported = imSupported; } @@ -115,7 +116,7 @@ public class CapInfo implements Parcelable { /** * Checks whether FT Thumbnail is supported. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isFtThumbSupported() { return mFtThumbSupported; } @@ -123,7 +124,7 @@ public class CapInfo implements Parcelable { /** * Sets FT thumbnail as supported or not supported. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setFtThumbSupported(boolean ftThumbSupported) { this.mFtThumbSupported = ftThumbSupported; } @@ -133,7 +134,7 @@ public class CapInfo implements Parcelable { /** * Checks whether FT Store and Forward is supported */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isFtSnFSupported() { return mFtSnFSupported; } @@ -141,7 +142,7 @@ public class CapInfo implements Parcelable { /** * Sets FT Store and Forward as supported or not supported. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setFtSnFSupported(boolean ftSnFSupported) { this.mFtSnFSupported = ftSnFSupported; } @@ -149,7 +150,7 @@ public class CapInfo implements Parcelable { /** * Checks whether File transfer HTTP is supported. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isFtHttpSupported() { return mFtHttpSupported; } @@ -157,7 +158,7 @@ public class CapInfo implements Parcelable { /** * Sets File transfer HTTP as supported or not supported. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setFtHttpSupported(boolean ftHttpSupported) { this.mFtHttpSupported = ftHttpSupported; } @@ -165,7 +166,7 @@ public class CapInfo implements Parcelable { /** * Checks whether FT is supported. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isFtSupported() { return mFtSupported; } @@ -173,7 +174,7 @@ public class CapInfo implements Parcelable { /** * Sets FT as supported or not supported. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setFtSupported(boolean ftSupported) { this.mFtSupported = ftSupported; } @@ -181,7 +182,7 @@ public class CapInfo implements Parcelable { /** * Checks whether IS is supported. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isIsSupported() { return mIsSupported; } @@ -189,7 +190,7 @@ public class CapInfo implements Parcelable { /** * Sets IS as supported or not supported. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setIsSupported(boolean isSupported) { this.mIsSupported = isSupported; } @@ -197,7 +198,7 @@ public class CapInfo implements Parcelable { /** * Checks whether video sharing is supported during a CS call. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isVsDuringCSSupported() { return mVsDuringCSSupported; } @@ -206,7 +207,7 @@ public class CapInfo implements Parcelable { * Sets video sharing as supported or not supported during a CS * call. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setVsDuringCSSupported(boolean vsDuringCSSupported) { this.mVsDuringCSSupported = vsDuringCSSupported; } @@ -215,7 +216,7 @@ public class CapInfo implements Parcelable { * Checks whether video sharing outside a voice call is * supported. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isVsSupported() { return mVsSupported; } @@ -223,7 +224,7 @@ public class CapInfo implements Parcelable { /** * Sets video sharing as supported or not supported. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setVsSupported(boolean vsSupported) { this.mVsSupported = vsSupported; } @@ -231,7 +232,7 @@ public class CapInfo implements Parcelable { /** * Checks whether social presence is supported. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isSpSupported() { return mSpSupported; } @@ -239,7 +240,7 @@ public class CapInfo implements Parcelable { /** * Sets social presence as supported or not supported. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setSpSupported(boolean spSupported) { this.mSpSupported = spSupported; } @@ -248,7 +249,7 @@ public class CapInfo implements Parcelable { * Checks whether capability discovery via presence is * supported. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isCdViaPresenceSupported() { return mCdViaPresenceSupported; } @@ -257,7 +258,7 @@ public class CapInfo implements Parcelable { * Sets capability discovery via presence as supported or not * supported. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setCdViaPresenceSupported(boolean cdViaPresenceSupported) { this.mCdViaPresenceSupported = cdViaPresenceSupported; } @@ -265,7 +266,7 @@ public class CapInfo implements Parcelable { /** * Checks whether IP voice call is supported. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isIpVoiceSupported() { return mIpVoiceSupported; } @@ -273,7 +274,7 @@ public class CapInfo implements Parcelable { /** * Sets IP voice call as supported or not supported. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setIpVoiceSupported(boolean ipVoiceSupported) { this.mIpVoiceSupported = ipVoiceSupported; } @@ -281,7 +282,7 @@ public class CapInfo implements Parcelable { /** * Checks whether IP video call is supported. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isIpVideoSupported() { return mIpVideoSupported; } @@ -289,7 +290,7 @@ public class CapInfo implements Parcelable { /** * Sets IP video call as supported or not supported. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setIpVideoSupported(boolean ipVideoSupported) { this.mIpVideoSupported = ipVideoSupported; } @@ -298,7 +299,7 @@ public class CapInfo implements Parcelable { * Checks whether Geo location Pull using File Transfer is * supported. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isGeoPullFtSupported() { return mGeoPullFtSupported; } @@ -307,7 +308,7 @@ public class CapInfo implements Parcelable { * Sets Geo location Pull using File Transfer as supported or * not supported. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setGeoPullFtSupported(boolean geoPullFtSupported) { this.mGeoPullFtSupported = geoPullFtSupported; } @@ -315,7 +316,7 @@ public class CapInfo implements Parcelable { /** * Checks whether Geo Pull is supported. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isGeoPullSupported() { return mGeoPullSupported; } @@ -323,7 +324,7 @@ public class CapInfo implements Parcelable { /** * Sets Geo Pull as supported or not supported. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setGeoPullSupported(boolean geoPullSupported) { this.mGeoPullSupported = geoPullSupported; } @@ -331,7 +332,7 @@ public class CapInfo implements Parcelable { /** * Checks whether Geo Push is supported. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isGeoPushSupported() { return mGeoPushSupported; } @@ -339,7 +340,7 @@ public class CapInfo implements Parcelable { /** * Sets Geo Push as supported or not supported. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setGeoPushSupported(boolean geoPushSupported) { this.mGeoPushSupported = geoPushSupported; } @@ -347,7 +348,7 @@ public class CapInfo implements Parcelable { /** * Checks whether short messaging is supported. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isSmSupported() { return mSmSupported; } @@ -355,7 +356,7 @@ public class CapInfo implements Parcelable { /** * Sets short messaging as supported or not supported. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setSmSupported(boolean smSupported) { this.mSmSupported = smSupported; } @@ -363,22 +364,22 @@ public class CapInfo implements Parcelable { /** * Checks whether store/forward and group chat are supported. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isFullSnFGroupChatSupported() { return mFullSnFGroupChatSupported; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isRcsIpVoiceCallSupported() { return mRcsIpVoiceCallSupported; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isRcsIpVideoCallSupported() { return mRcsIpVideoCallSupported; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isRcsIpVideoOnlyCallSupported() { return mRcsIpVideoOnlyCallSupported; } @@ -386,20 +387,20 @@ public class CapInfo implements Parcelable { /** * Sets store/forward and group chat supported or not supported. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setFullSnFGroupChatSupported(boolean fullSnFGroupChatSupported) { this.mFullSnFGroupChatSupported = fullSnFGroupChatSupported; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setRcsIpVoiceCallSupported(boolean rcsIpVoiceCallSupported) { this.mRcsIpVoiceCallSupported = rcsIpVoiceCallSupported; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setRcsIpVideoCallSupported(boolean rcsIpVideoCallSupported) { this.mRcsIpVideoCallSupported = rcsIpVideoCallSupported; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setRcsIpVideoOnlyCallSupported(boolean rcsIpVideoOnlyCallSupported) { this.mRcsIpVideoOnlyCallSupported = rcsIpVideoOnlyCallSupported; } @@ -536,20 +537,20 @@ public class CapInfo implements Parcelable { } /** Sets the list of supported extensions. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setExts(String[] exts) { this.mExts = exts; } /** Gets the time stamp for when to query again. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public long getCapTimestamp() { return mCapTimestamp; } /** Sets the time stamp for when to query again. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setCapTimestamp(long capTimestamp) { this.mCapTimestamp = capTimestamp; } diff --git a/core/java/com/android/ims/internal/uce/common/StatusCode.java b/core/java/com/android/ims/internal/uce/common/StatusCode.java index 7f69493aa284..847792f4b50c 100644 --- a/core/java/com/android/ims/internal/uce/common/StatusCode.java +++ b/core/java/com/android/ims/internal/uce/common/StatusCode.java @@ -17,6 +17,7 @@ package com.android.ims.internal.uce.common; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -75,14 +76,14 @@ public class StatusCode implements Parcelable { * Constructor for the StatusCode class. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public StatusCode() {} /** * Gets the status code. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getStatusCode() { return mStatusCode; } @@ -91,7 +92,7 @@ public class StatusCode implements Parcelable { * Sets the status code. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setStatusCode(int nStatusCode) { this.mStatusCode = nStatusCode; } diff --git a/core/java/com/android/ims/internal/uce/common/UceLong.java b/core/java/com/android/ims/internal/uce/common/UceLong.java index bf514471b506..d878c10c76b4 100644 --- a/core/java/com/android/ims/internal/uce/common/UceLong.java +++ b/core/java/com/android/ims/internal/uce/common/UceLong.java @@ -17,6 +17,7 @@ package com.android.ims.internal.uce.common; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -32,7 +33,7 @@ public class UceLong implements Parcelable { * Constructor for the UceLong class. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public UceLong() { }; @@ -40,7 +41,7 @@ public class UceLong implements Parcelable { * Gets the long value. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public long getUceLong() { return mUceLong; } @@ -49,7 +50,7 @@ public class UceLong implements Parcelable { * Sets the long value. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setUceLong(long uceLong) { this.mUceLong = uceLong; } @@ -57,7 +58,7 @@ public class UceLong implements Parcelable { /** Get the client ID as integer value. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getClientId() { return mClientId; } @@ -66,7 +67,7 @@ public class UceLong implements Parcelable { * Set the client ID as integer value. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setClientId(int nClientId) { this.mClientId = nClientId; } diff --git a/core/java/com/android/ims/internal/uce/options/IOptionsListener.aidl b/core/java/com/android/ims/internal/uce/options/IOptionsListener.aidl index c69d5a94f760..62897c7fb1ae 100644 --- a/core/java/com/android/ims/internal/uce/options/IOptionsListener.aidl +++ b/core/java/com/android/ims/internal/uce/options/IOptionsListener.aidl @@ -29,7 +29,7 @@ interface IOptionsListener * @param version, version information of the service. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void getVersionCb(in String version ); /** @@ -38,7 +38,7 @@ interface IOptionsListener * @param statusCode, UCE_SUCCESS as service availability. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void serviceAvailable(in StatusCode statusCode); /** @@ -47,7 +47,7 @@ interface IOptionsListener * @param statusCode, UCE_SUCCESS as service unavailability. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void serviceUnavailable(in StatusCode statusCode); /** @@ -58,7 +58,7 @@ interface IOptionsListener * @param capInfo, capabilities of the remote entity received. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void sipResponseReceived( String uri, in OptionsSipResponse sipResponse, in OptionsCapInfo capInfo); @@ -67,7 +67,7 @@ interface IOptionsListener * @param cmdStatus, command status of the request placed. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void cmdStatus(in OptionsCmdStatus cmdStatus); /** @@ -78,7 +78,7 @@ interface IOptionsListener * @param tID, transation of the request received from network. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void incomingOptions( String uri, in OptionsCapInfo capInfo, in int tID); } diff --git a/core/java/com/android/ims/internal/uce/options/IOptionsService.aidl b/core/java/com/android/ims/internal/uce/options/IOptionsService.aidl index 2e49082988c3..a7487b804567 100644 --- a/core/java/com/android/ims/internal/uce/options/IOptionsService.aidl +++ b/core/java/com/android/ims/internal/uce/options/IOptionsService.aidl @@ -33,7 +33,7 @@ interface IOptionsService * @return StatusCode, status of the request placed. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) StatusCode getVersion(int optionsServiceHandle); /** @@ -45,7 +45,7 @@ interface IOptionsService * The service will fill UceLong.mUceLong with optionsServiceListenerHdl * @return StatusCode, status of the request placed. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) StatusCode addListener(int optionsServiceHandle, IOptionsListener optionsListener, inout UceLong optionsServiceListenerHdl); @@ -56,7 +56,7 @@ interface IOptionsService * @param optionsServiceListenerHdl provided in createOptionsService() or Addlistener(). * @return StatusCode, status of the request placed. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) StatusCode removeListener(int optionsServiceHandle, in UceLong optionsServiceListenerHdl); /** @@ -69,7 +69,7 @@ interface IOptionsService * with original request. * @return StatusCode, status of the request placed. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) StatusCode setMyInfo(int optionsServiceHandle , in CapInfo capInfo, int reqUserData); @@ -82,7 +82,7 @@ interface IOptionsService * with original request. * @return StatusCode, status of the request placed. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) StatusCode getMyInfo(int optionsServiceHandle , int reqUserdata); /** @@ -95,7 +95,7 @@ interface IOptionsService * with original request. * @return StatusCode, status of the request placed. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) StatusCode getContactCap(int optionsServiceHandle , String remoteURI, int reqUserData); @@ -109,7 +109,7 @@ interface IOptionsService * with original request. * @return StatusCode, status of the request placed. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) StatusCode getContactListCap(int optionsServiceHandle, in String[] remoteURIList, int reqUserData); @@ -126,7 +126,7 @@ interface IOptionsService * @param bContactInBL, true if the contact is blacklisted, else false. * @return StatusCode, status of the request placed. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) StatusCode responseIncomingOptions(int optionsServiceHandle, int tId, int sipResponseCode, String reasonPhrase, in OptionsCapInfo capInfo, in boolean bContactInBL); diff --git a/core/java/com/android/ims/internal/uce/options/OptionsCapInfo.java b/core/java/com/android/ims/internal/uce/options/OptionsCapInfo.java index 1da5a2439f02..6f83bf3224a8 100644 --- a/core/java/com/android/ims/internal/uce/options/OptionsCapInfo.java +++ b/core/java/com/android/ims/internal/uce/options/OptionsCapInfo.java @@ -16,6 +16,7 @@ package com.android.ims.internal.uce.options; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -31,12 +32,12 @@ public class OptionsCapInfo implements Parcelable { return new OptionsCapInfo(); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public String getSdp() { return mSdp; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setSdp(String sdp) { this.mSdp = sdp; } @@ -44,19 +45,19 @@ public class OptionsCapInfo implements Parcelable { /** * Constructor for the OptionsCapInfo class. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public OptionsCapInfo() { mCapInfo = new CapInfo(); }; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public CapInfo getCapInfo() { return mCapInfo; } /** * Sets the CapInfo */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setCapInfo(CapInfo capInfo) { this.mCapInfo = capInfo; } diff --git a/core/java/com/android/ims/internal/uce/options/OptionsCmdId.java b/core/java/com/android/ims/internal/uce/options/OptionsCmdId.java index 401ca2fa24ea..82eb1b54a775 100644 --- a/core/java/com/android/ims/internal/uce/options/OptionsCmdId.java +++ b/core/java/com/android/ims/internal/uce/options/OptionsCmdId.java @@ -18,6 +18,7 @@ package com.android.ims.internal.uce.options; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -56,7 +57,7 @@ public class OptionsCmdId implements Parcelable { * Sets the command ID. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setCmdId(int nCmdId) { this.mCmdId = nCmdId; } @@ -65,7 +66,7 @@ public class OptionsCmdId implements Parcelable { * Constructor for the OptionsCDCmdId class. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public OptionsCmdId(){}; /** @hide */ diff --git a/core/java/com/android/ims/internal/uce/options/OptionsCmdStatus.java b/core/java/com/android/ims/internal/uce/options/OptionsCmdStatus.java index 70a7a84d3820..461f8bfb48c8 100644 --- a/core/java/com/android/ims/internal/uce/options/OptionsCmdStatus.java +++ b/core/java/com/android/ims/internal/uce/options/OptionsCmdStatus.java @@ -17,6 +17,7 @@ package com.android.ims.internal.uce.options; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -42,7 +43,7 @@ public class OptionsCmdStatus implements Parcelable { * Sets the command ID. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setCmdId(OptionsCmdId cmdId) { this.mCmdId = cmdId; } @@ -58,7 +59,7 @@ public class OptionsCmdStatus implements Parcelable { /** Sets the user data. @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setUserData(int userData) { this.mUserData = userData; } @@ -75,7 +76,7 @@ public class OptionsCmdStatus implements Parcelable { * Sets the status code. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setStatus(StatusCode status) { this.mStatus = status; } @@ -84,7 +85,7 @@ public class OptionsCmdStatus implements Parcelable { * Constructor for the OptionsCmdStatus class. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public OptionsCmdStatus() { mStatus = new StatusCode(); mCapInfo = new CapInfo(); @@ -101,7 +102,7 @@ public class OptionsCmdStatus implements Parcelable { * Sets the CapInfo * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setCapInfo(CapInfo capInfo) { this.mCapInfo = capInfo; } diff --git a/core/java/com/android/ims/internal/uce/options/OptionsSipResponse.java b/core/java/com/android/ims/internal/uce/options/OptionsSipResponse.java index 5afddf0c42c0..acea0f03742f 100644 --- a/core/java/com/android/ims/internal/uce/options/OptionsSipResponse.java +++ b/core/java/com/android/ims/internal/uce/options/OptionsSipResponse.java @@ -17,6 +17,7 @@ package com.android.ims.internal.uce.options; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -42,7 +43,7 @@ public class OptionsSipResponse implements Parcelable { * Sets the Options command ID. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setCmdId(OptionsCmdId cmdId) { this.mCmdId = cmdId; } @@ -59,7 +60,7 @@ public class OptionsSipResponse implements Parcelable { * Sets the request ID * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setRequestId(int requestId) { this.mRequestId = requestId; } @@ -76,7 +77,7 @@ public class OptionsSipResponse implements Parcelable { * Sets the SIP response code. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setSipResponseCode(int sipResponseCode) { this.mSipResponseCode = sipResponseCode; } @@ -93,7 +94,7 @@ public class OptionsSipResponse implements Parcelable { * Sets the SIP response code reason phrase. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setReasonPhrase(String reasonPhrase) { this.mReasonPhrase = reasonPhrase; } @@ -110,7 +111,7 @@ public class OptionsSipResponse implements Parcelable { * Sets the SIP retryAfter sec value * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setRetryAfter(int retryAfter) { this.mRetryAfter = retryAfter; } @@ -119,7 +120,7 @@ public class OptionsSipResponse implements Parcelable { * Constructor for the OptionsSipResponse class. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public OptionsSipResponse() { mCmdId = new OptionsCmdId(); }; diff --git a/core/java/com/android/ims/internal/uce/presence/IPresenceListener.aidl b/core/java/com/android/ims/internal/uce/presence/IPresenceListener.aidl index 65e7fc9756bb..572a5f32ee93 100644 --- a/core/java/com/android/ims/internal/uce/presence/IPresenceListener.aidl +++ b/core/java/com/android/ims/internal/uce/presence/IPresenceListener.aidl @@ -36,7 +36,7 @@ interface IPresenceListener * Gets the version of the presence listener implementation. * @param version, version information. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void getVersionCb(in String version ); /** @@ -44,7 +44,7 @@ interface IPresenceListener * availability. * @param statusCode, UCE_SUCCESS as service availability. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void serviceAvailable(in StatusCode statusCode); /** @@ -52,7 +52,7 @@ interface IPresenceListener * unavailability. * @param statusCode, UCE_SUCCESS as service unAvailability. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void serviceUnAvailable(in StatusCode statusCode); /** @@ -60,14 +60,14 @@ interface IPresenceListener * publish request. * @param publishTrigger, Publish trigger for the network being supported. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void publishTriggering(in PresPublishTriggerType publishTrigger); /** * Callback function to be invoked to inform the client of the status of an asynchronous call. * @param cmdStatus, command status of the request placed. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void cmdStatus( in PresCmdStatus cmdStatus); /** @@ -75,7 +75,7 @@ interface IPresenceListener * such as PUBLISH or SUBSCRIBE, has been received. * @param sipResponse, network response received for the request placed. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void sipResponseReceived(in PresSipResponse sipResponse); /** @@ -84,7 +84,7 @@ interface IPresenceListener * @param presentityURI, URI of the remote entity the request was placed. * @param tupleInfo, array of capability information remote entity supports. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void capInfoReceived(in String presentityURI, in PresTupleInfo [] tupleInfo); @@ -94,7 +94,7 @@ interface IPresenceListener * @param rlmiInfo, resource infomation received from network. * @param resInfo, array of capabilities received from network for the list of remore URI. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void listCapInfoReceived(in PresRlmiInfo rlmiInfo, in PresResInfo [] resInfo); @@ -102,7 +102,7 @@ interface IPresenceListener * Callback function to be invoked to inform the client when Unpublish message * is sent to network. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void unpublishMessageSent(); }
\ No newline at end of file diff --git a/core/java/com/android/ims/internal/uce/presence/IPresenceService.aidl b/core/java/com/android/ims/internal/uce/presence/IPresenceService.aidl index 26a3e83efcfa..de28dfa9f2d7 100644 --- a/core/java/com/android/ims/internal/uce/presence/IPresenceService.aidl +++ b/core/java/com/android/ims/internal/uce/presence/IPresenceService.aidl @@ -33,7 +33,7 @@ interface IPresenceService * @param presenceServiceHdl returned in createPresenceService(). * @return StatusCode, status of the request placed. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) StatusCode getVersion(int presenceServiceHdl); /** @@ -46,7 +46,7 @@ interface IPresenceService * * @return StatusCode, status of the request placed */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) StatusCode addListener(int presenceServiceHdl, IPresenceListener presenceServiceListener, inout UceLong presenceServiceListenerHdl); @@ -56,7 +56,7 @@ interface IPresenceService * @param presenceServiceListenerHdl provided in createPresenceService() or Addlistener(). * @return StatusCode, status of the request placed. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) StatusCode removeListener(int presenceServiceHdl, in UceLong presenceServiceListenerHdl); /** @@ -72,7 +72,7 @@ interface IPresenceService * with original request. * @return StatusCode, status of the request placed. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) StatusCode reenableService(int presenceServiceHdl, int userData); /** @@ -85,7 +85,7 @@ interface IPresenceService * with original request. * @return StatusCode, status of the request placed. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) StatusCode publishMyCap(int presenceServiceHdl, in PresCapInfo myCapInfo , int userData); /** @@ -99,7 +99,7 @@ interface IPresenceService * with original request. * @return StatusCode, status of the request placed. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) StatusCode getContactCap(int presenceServiceHdl , String remoteUri, int userData); /** @@ -113,7 +113,7 @@ interface IPresenceService * with original request. * @return StatusCode, status of the request placed. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) StatusCode getContactListCap(int presenceServiceHdl, in String[] remoteUriList, int userData); /** @@ -129,7 +129,7 @@ interface IPresenceService * with original request. * @return StatusCode, status of the request placed. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) StatusCode setNewFeatureTag(int presenceServiceHdl, String featureTag, in PresServiceInfo serviceInfo, int userData); diff --git a/core/java/com/android/ims/internal/uce/presence/PresCapInfo.java b/core/java/com/android/ims/internal/uce/presence/PresCapInfo.java index 1a3a028713f6..ec8b6bfa4ef3 100644 --- a/core/java/com/android/ims/internal/uce/presence/PresCapInfo.java +++ b/core/java/com/android/ims/internal/uce/presence/PresCapInfo.java @@ -17,6 +17,7 @@ package com.android.ims.internal.uce.presence; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -27,14 +28,14 @@ import com.android.ims.internal.uce.common.CapInfo; public class PresCapInfo implements Parcelable { private CapInfo mCapInfo; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private String mContactUri = ""; /** * Gets the UCE capability information. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public CapInfo getCapInfo() { return mCapInfo; } @@ -51,7 +52,7 @@ public class PresCapInfo implements Parcelable { * Gets the contact URI. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public String getContactUri() { return mContactUri; } diff --git a/core/java/com/android/ims/internal/uce/presence/PresCmdId.java b/core/java/com/android/ims/internal/uce/presence/PresCmdId.java index fba0c77e8dbf..9692b428c792 100644 --- a/core/java/com/android/ims/internal/uce/presence/PresCmdId.java +++ b/core/java/com/android/ims/internal/uce/presence/PresCmdId.java @@ -17,6 +17,7 @@ package com.android.ims.internal.uce.presence; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -58,7 +59,7 @@ public class PresCmdId implements Parcelable { * Sets the command ID. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setCmdId(int nCmdId) { this.mCmdId = nCmdId; } @@ -68,7 +69,7 @@ public class PresCmdId implements Parcelable { * Constructor for the PresCmdId class. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public PresCmdId(){}; diff --git a/core/java/com/android/ims/internal/uce/presence/PresCmdStatus.java b/core/java/com/android/ims/internal/uce/presence/PresCmdStatus.java index fbc64b83a360..7e22106f3be3 100644 --- a/core/java/com/android/ims/internal/uce/presence/PresCmdStatus.java +++ b/core/java/com/android/ims/internal/uce/presence/PresCmdStatus.java @@ -17,6 +17,7 @@ package com.android.ims.internal.uce.presence; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -43,7 +44,7 @@ public class PresCmdStatus implements Parcelable{ * Sets the command ID. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setCmdId(PresCmdId cmdId) { this.mCmdId = cmdId; } @@ -60,7 +61,7 @@ public class PresCmdStatus implements Parcelable{ * Sets the user data. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setUserData(int userData) { this.mUserData = userData; } @@ -76,7 +77,7 @@ public class PresCmdStatus implements Parcelable{ * Sets the status code. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setStatus(StatusCode status) { this.mStatus = status; } @@ -93,7 +94,7 @@ public class PresCmdStatus implements Parcelable{ * Sets the request ID. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setRequestId(int requestId) { this.mRequestId = requestId; } @@ -102,7 +103,7 @@ public class PresCmdStatus implements Parcelable{ * Constructor for the PresCmdStatus class. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public PresCmdStatus() { mStatus = new StatusCode(); }; diff --git a/core/java/com/android/ims/internal/uce/presence/PresPublishTriggerType.java b/core/java/com/android/ims/internal/uce/presence/PresPublishTriggerType.java index fdff86f9669f..04bbf6cd8e30 100644 --- a/core/java/com/android/ims/internal/uce/presence/PresPublishTriggerType.java +++ b/core/java/com/android/ims/internal/uce/presence/PresPublishTriggerType.java @@ -17,6 +17,7 @@ package com.android.ims.internal.uce.presence; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -70,7 +71,7 @@ public class PresPublishTriggerType implements Parcelable { * Sets the publish trigger type. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setPublishTrigeerType(int nPublishTriggerType) { this.mPublishTriggerType = nPublishTriggerType; } @@ -80,7 +81,7 @@ public class PresPublishTriggerType implements Parcelable { * Constructor for the PresPublishTriggerType class. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public PresPublishTriggerType(){}; /** @hide */ diff --git a/core/java/com/android/ims/internal/uce/presence/PresResInfo.java b/core/java/com/android/ims/internal/uce/presence/PresResInfo.java index af9b0568d29b..2f797b41b14f 100644 --- a/core/java/com/android/ims/internal/uce/presence/PresResInfo.java +++ b/core/java/com/android/ims/internal/uce/presence/PresResInfo.java @@ -17,6 +17,7 @@ package com.android.ims.internal.uce.presence; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -39,7 +40,7 @@ public class PresResInfo implements Parcelable { * Sets the Presence service resource instance information. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setInstanceInfo(PresResInstanceInfo instanceInfo) { this.mInstanceInfo = instanceInfo; } @@ -56,7 +57,7 @@ public class PresResInfo implements Parcelable { * Sets the resource URI. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setResUri(String resUri) { this.mResUri = resUri; } @@ -73,7 +74,7 @@ public class PresResInfo implements Parcelable { * Sets the display name. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setDisplayName(String displayName) { this.mDisplayName = displayName; } @@ -83,7 +84,7 @@ public class PresResInfo implements Parcelable { * Constructor for the PresResInstanceInfo class. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public PresResInfo() { mInstanceInfo = new PresResInstanceInfo(); }; diff --git a/core/java/com/android/ims/internal/uce/presence/PresResInstanceInfo.java b/core/java/com/android/ims/internal/uce/presence/PresResInstanceInfo.java index 9f3725133452..733c0afff367 100644 --- a/core/java/com/android/ims/internal/uce/presence/PresResInstanceInfo.java +++ b/core/java/com/android/ims/internal/uce/presence/PresResInstanceInfo.java @@ -17,6 +17,7 @@ package com.android.ims.internal.uce.presence; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -61,7 +62,7 @@ public class PresResInstanceInfo implements Parcelable{ * Sets the resource instance state. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setResInstanceState(int nResInstanceState) { this.mResInstanceState = nResInstanceState; } @@ -78,7 +79,7 @@ public class PresResInstanceInfo implements Parcelable{ * Sets the resource ID. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setResId(String resourceId) { this.mId = resourceId; } @@ -97,7 +98,7 @@ public class PresResInstanceInfo implements Parcelable{ * code. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setReason(String reason) { this.mReason = reason; } @@ -114,7 +115,7 @@ public class PresResInstanceInfo implements Parcelable{ * Sets the entity URI. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setPresentityUri(String presentityUri) { this.mPresentityUri = presentityUri; } @@ -131,7 +132,7 @@ public class PresResInstanceInfo implements Parcelable{ * Sets the tuple information. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setTupleInfo(PresTupleInfo[] tupleInfo) { this.mTupleInfoArray = new PresTupleInfo[tupleInfo.length]; this.mTupleInfoArray = tupleInfo; @@ -142,7 +143,7 @@ public class PresResInstanceInfo implements Parcelable{ * Constructor for the PresResInstanceInfo class. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public PresResInstanceInfo(){ }; diff --git a/core/java/com/android/ims/internal/uce/presence/PresRlmiInfo.java b/core/java/com/android/ims/internal/uce/presence/PresRlmiInfo.java index 65b9fdbbeb18..e33aa1303886 100644 --- a/core/java/com/android/ims/internal/uce/presence/PresRlmiInfo.java +++ b/core/java/com/android/ims/internal/uce/presence/PresRlmiInfo.java @@ -17,6 +17,7 @@ package com.android.ims.internal.uce.presence; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -61,7 +62,7 @@ public class PresRlmiInfo implements Parcelable { * Sets the URI. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setUri(String uri) { this.mUri = uri; } @@ -78,7 +79,7 @@ public class PresRlmiInfo implements Parcelable { * Sets the version. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setVersion(int version) { this.mVersion = version; } @@ -95,7 +96,7 @@ public class PresRlmiInfo implements Parcelable { * Sets the RLMI state. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setFullState(boolean fullState) { this.mFullState = fullState; } @@ -112,7 +113,7 @@ public class PresRlmiInfo implements Parcelable { * Sets the RLMI list name. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setListName(String listName) { this.mListName = listName; } @@ -129,7 +130,7 @@ public class PresRlmiInfo implements Parcelable { * Sets the subscription request ID. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setRequestId(int requestId) { this.mRequestId = requestId; } @@ -146,7 +147,7 @@ public class PresRlmiInfo implements Parcelable { * Sets the presence subscription state. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setPresSubscriptionState(PresSubscriptionState presSubscriptionState) { this.mPresSubscriptionState = presSubscriptionState; } @@ -163,7 +164,7 @@ public class PresRlmiInfo implements Parcelable { * Sets the presence subscription expiration time. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setSubscriptionExpireTime(int subscriptionExpireTime) { this.mSubscriptionExpireTime = subscriptionExpireTime; } @@ -180,7 +181,7 @@ public class PresRlmiInfo implements Parcelable { * Sets the presence subscription terminated reason. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setSubscriptionTerminatedReason(String subscriptionTerminatedReason) { this.mSubscriptionTerminatedReason = subscriptionTerminatedReason; } @@ -189,7 +190,7 @@ public class PresRlmiInfo implements Parcelable { * Constructor for the PresTupleInfo class. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public PresRlmiInfo(){}; /** @hide */ diff --git a/core/java/com/android/ims/internal/uce/presence/PresServiceInfo.java b/core/java/com/android/ims/internal/uce/presence/PresServiceInfo.java index 5eafa0fde8cc..aed673e63d94 100644 --- a/core/java/com/android/ims/internal/uce/presence/PresServiceInfo.java +++ b/core/java/com/android/ims/internal/uce/presence/PresServiceInfo.java @@ -17,6 +17,7 @@ package com.android.ims.internal.uce.presence; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -46,7 +47,7 @@ public class PresServiceInfo implements Parcelable { * Gets the media type. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getMediaType() { return mMediaCap; } @@ -63,7 +64,7 @@ public class PresServiceInfo implements Parcelable { * Gets the service ID. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public String getServiceId() { return mServiceID; } @@ -79,7 +80,7 @@ public class PresServiceInfo implements Parcelable { * Gets the service description. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public String getServiceDesc() { return mServiceDesc; } @@ -96,7 +97,7 @@ public class PresServiceInfo implements Parcelable { * Gets the service version. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public String getServiceVer() { return mServiceVer; } diff --git a/core/java/com/android/ims/internal/uce/presence/PresSipResponse.java b/core/java/com/android/ims/internal/uce/presence/PresSipResponse.java index 45b02f31eddc..9549152ce175 100644 --- a/core/java/com/android/ims/internal/uce/presence/PresSipResponse.java +++ b/core/java/com/android/ims/internal/uce/presence/PresSipResponse.java @@ -17,6 +17,7 @@ package com.android.ims.internal.uce.presence; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -33,7 +34,7 @@ public class PresSipResponse implements Parcelable { * Gets the Presence command ID. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public PresCmdId getCmdId() { return mCmdId; } @@ -42,7 +43,7 @@ public class PresSipResponse implements Parcelable { * Sets the Presence command ID. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setCmdId(PresCmdId cmdId) { this.mCmdId = cmdId; } @@ -51,7 +52,7 @@ public class PresSipResponse implements Parcelable { * Gets the request ID. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getRequestId() { return mRequestId; } @@ -60,7 +61,7 @@ public class PresSipResponse implements Parcelable { * Sets the request ID. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setRequestId(int requestId) { this.mRequestId = requestId; } @@ -69,7 +70,7 @@ public class PresSipResponse implements Parcelable { * Gets the SIP response code. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getSipResponseCode() { return mSipResponseCode; } @@ -78,7 +79,7 @@ public class PresSipResponse implements Parcelable { * Sets the SIP response code. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setSipResponseCode(int sipResponseCode) { this.mSipResponseCode = sipResponseCode; } @@ -89,7 +90,7 @@ public class PresSipResponse implements Parcelable { * code. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public String getReasonPhrase() { return mReasonPhrase; } @@ -98,7 +99,7 @@ public class PresSipResponse implements Parcelable { * Sets the SIP response code reason phrase. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setReasonPhrase(String reasonPhrase) { this.mReasonPhrase = reasonPhrase; } @@ -107,7 +108,7 @@ public class PresSipResponse implements Parcelable { * Gets the SIP retryAfter sec value. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getRetryAfter() { return mRetryAfter; } @@ -116,7 +117,7 @@ public class PresSipResponse implements Parcelable { * Sets the SIP retryAfter sec value * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setRetryAfter(int retryAfter) { this.mRetryAfter = retryAfter; } @@ -125,7 +126,7 @@ public class PresSipResponse implements Parcelable { * Constructor for the PresSipResponse class. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public PresSipResponse(){}; /** @hide */ diff --git a/core/java/com/android/ims/internal/uce/presence/PresSubscriptionState.java b/core/java/com/android/ims/internal/uce/presence/PresSubscriptionState.java index ab1e17c48e75..85ec3967f8f3 100644 --- a/core/java/com/android/ims/internal/uce/presence/PresSubscriptionState.java +++ b/core/java/com/android/ims/internal/uce/presence/PresSubscriptionState.java @@ -17,6 +17,7 @@ package com.android.ims.internal.uce.presence; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -78,7 +79,7 @@ public class PresSubscriptionState implements Parcelable { * Constructor for the PresSubscriptionState class. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public PresSubscriptionState() { }; /** @@ -94,7 +95,7 @@ public class PresSubscriptionState implements Parcelable { * Sets the Presence subscription state. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setPresSubscriptionState(int nPresSubscriptionState) { this.mPresSubscriptionState = nPresSubscriptionState; } diff --git a/core/java/com/android/ims/internal/uce/presence/PresTupleInfo.java b/core/java/com/android/ims/internal/uce/presence/PresTupleInfo.java index 3608eb6a5e8a..34a7b1e3de65 100644 --- a/core/java/com/android/ims/internal/uce/presence/PresTupleInfo.java +++ b/core/java/com/android/ims/internal/uce/presence/PresTupleInfo.java @@ -17,6 +17,7 @@ package com.android.ims.internal.uce.presence; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -40,7 +41,7 @@ public class PresTupleInfo implements Parcelable { * Sets the feature tag. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setFeatureTag(String featureTag) { this.mFeatureTag = featureTag; } @@ -56,7 +57,7 @@ public class PresTupleInfo implements Parcelable { * Sets the contact URI. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setContactUri(String contactUri) { this.mContactUri = contactUri; } @@ -73,7 +74,7 @@ public class PresTupleInfo implements Parcelable { * Sets the timestamp. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setTimestamp(String timestamp) { this.mTimestamp = timestamp; } @@ -82,7 +83,7 @@ public class PresTupleInfo implements Parcelable { * Constructor for the PresTupleInfo class. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public PresTupleInfo(){}; /** @hide */ diff --git a/core/java/com/android/ims/internal/uce/uceservice/IUceListener.aidl b/core/java/com/android/ims/internal/uce/uceservice/IUceListener.aidl index 41abf7d1a1f0..2341faed3e15 100644 --- a/core/java/com/android/ims/internal/uce/uceservice/IUceListener.aidl +++ b/core/java/com/android/ims/internal/uce/uceservice/IUceListener.aidl @@ -25,6 +25,6 @@ interface IUceListener * @param serviceStatusValue defined in ImsUceManager * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void setStatus(int serviceStatusValue); } diff --git a/core/java/com/android/ims/internal/uce/uceservice/IUceService.aidl b/core/java/com/android/ims/internal/uce/uceservice/IUceService.aidl index ec45371689cf..156e9229e256 100644 --- a/core/java/com/android/ims/internal/uce/uceservice/IUceService.aidl +++ b/core/java/com/android/ims/internal/uce/uceservice/IUceService.aidl @@ -38,7 +38,7 @@ interface IUceService * Service status is returned in setStatus callback in IUceListener. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) boolean startService(IUceListener uceListener); /** @@ -46,7 +46,7 @@ interface IUceService * @return boolean true if the service stop request is processed successfully, FALSE otherwise. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) boolean stopService(); @@ -56,7 +56,7 @@ interface IUceService * @return boolean true if service started else false. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) boolean isServiceStarted(); /** @@ -74,7 +74,7 @@ interface IUceService * * @deprecated This is replaced with new API createOptionsServiceForSubscription() */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) int createOptionsService(IOptionsListener optionsListener, inout UceLong optionsServiceListenerHdl); /** @@ -101,7 +101,7 @@ interface IUceService * in IOptionsListener * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void destroyOptionsService(int optionsServiceHandle); /** @@ -119,7 +119,7 @@ interface IUceService * * @deprecated This is replaced with new API createPresenceServiceForSubscription() */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) int createPresenceService(IPresenceListener presenceServiceListener, inout UceLong presenceServiceListenerHdl); /** @@ -147,7 +147,7 @@ interface IUceService * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void destroyPresenceService(int presenceServiceHdl); @@ -159,7 +159,7 @@ interface IUceService * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) boolean getServiceStatus(); /** @@ -171,7 +171,7 @@ interface IUceService * * @deprecated use API getPresenceServiceForSubscription() */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) IPresenceService getPresenceService(); /** @@ -194,7 +194,7 @@ interface IUceService * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) IOptionsService getOptionsService(); /** diff --git a/core/java/com/android/internal/app/AlertController.java b/core/java/com/android/internal/app/AlertController.java index be43e82c3f88..f690bd3477f0 100644 --- a/core/java/com/android/internal/app/AlertController.java +++ b/core/java/com/android/internal/app/AlertController.java @@ -26,6 +26,7 @@ import android.content.DialogInterface; import android.content.res.TypedArray; import android.database.Cursor; import android.graphics.drawable.Drawable; +import android.os.Build; import android.os.Handler; import android.os.Message; import android.text.Layout; @@ -979,7 +980,7 @@ public class AlertController { boolean mRecycleOnMeasure = true; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public RecycleListView(Context context) { this(context, null); } diff --git a/core/java/com/android/internal/app/IAppOpsService.aidl b/core/java/com/android/internal/app/IAppOpsService.aidl index 51e56b7fca43..aca5926464d4 100644 --- a/core/java/com/android/internal/app/IAppOpsService.aidl +++ b/core/java/com/android/internal/app/IAppOpsService.aidl @@ -82,7 +82,7 @@ interface IAppOpsService { void setUidMode(int code, int uid, int mode); @UnsupportedAppUsage void setMode(int code, int uid, String packageName, int mode); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void resetAllModes(int reqUserId, String reqPackageName); void setAudioRestriction(int code, int usage, int uid, int mode, in String[] exceptionPackages); diff --git a/core/java/com/android/internal/app/IBatteryStats.aidl b/core/java/com/android/internal/app/IBatteryStats.aidl index 6a0b443b7df8..e6a166140d89 100644 --- a/core/java/com/android/internal/app/IBatteryStats.aidl +++ b/core/java/com/android/internal/app/IBatteryStats.aidl @@ -55,7 +55,7 @@ interface IBatteryStats { ParcelFileDescriptor getStatisticsStream(); // Return true if we see the battery as currently charging. - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) boolean isCharging(); // Return the computed amount of time remaining on battery, in milliseconds. @@ -64,7 +64,7 @@ interface IBatteryStats { // Return the computed amount of time remaining to fully charge, in milliseconds. // Returns -1 if nothing could be computed. - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) long computeChargeTimeRemaining(); void noteEvent(int code, String name, int uid); @@ -134,7 +134,7 @@ interface IBatteryStats { void noteDeviceIdleMode(int mode, String activeReason, int activeUid); void setBatteryState(int status, int health, int plugType, int level, int temp, int volt, int chargeUAh, int chargeFullUAh, long chargeTimeToFullSeconds); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) long getAwakeTimeBattery(); long getAwakeTimePlugged(); diff --git a/core/java/com/android/internal/app/IVoiceInteractionManagerService.aidl b/core/java/com/android/internal/app/IVoiceInteractionManagerService.aidl index 15ba8e8c11f7..3f0c024e72d3 100644 --- a/core/java/com/android/internal/app/IVoiceInteractionManagerService.aidl +++ b/core/java/com/android/internal/app/IVoiceInteractionManagerService.aidl @@ -61,7 +61,7 @@ interface IVoiceInteractionManagerService { * @param bcp47Locale The BCP47 language tag for the keyphrase's locale. * @RequiresPermission Manifest.permission.MANAGE_VOICE_KEYPHRASES */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) SoundTrigger.KeyphraseSoundModel getKeyphraseSoundModel(int keyphraseId, in String bcp47Locale); /** * Add/Update the given keyphrase sound model for the current user. diff --git a/core/java/com/android/internal/app/IntentForwarderActivity.java b/core/java/com/android/internal/app/IntentForwarderActivity.java index 61a52bcc03f9..3e1fa1d5fe59 100644 --- a/core/java/com/android/internal/app/IntentForwarderActivity.java +++ b/core/java/com/android/internal/app/IntentForwarderActivity.java @@ -38,6 +38,7 @@ import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.pm.UserInfo; import android.metrics.LogMaker; +import android.os.Build; import android.os.Bundle; import android.os.RemoteException; import android.os.UserHandle; @@ -64,7 +65,7 @@ import java.util.concurrent.Executors; * be passed in and out of a managed profile. */ public class IntentForwarderActivity extends Activity { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static String TAG = "IntentForwarderActivity"; public static String FORWARD_INTENT_TO_PARENT diff --git a/core/java/com/android/internal/app/LocalePicker.java b/core/java/com/android/internal/app/LocalePicker.java index 0c43578a89cf..c80cbc7da7f6 100644 --- a/core/java/com/android/internal/app/LocalePicker.java +++ b/core/java/com/android/internal/app/LocalePicker.java @@ -26,6 +26,7 @@ import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.content.res.Configuration; import android.content.res.Resources; +import android.os.Build; import android.os.Bundle; import android.os.LocaleList; import android.os.RemoteException; @@ -77,7 +78,7 @@ public class LocalePicker extends ListFragment { return label; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Locale getLocale() { return locale; } diff --git a/core/java/com/android/internal/app/WindowDecorActionBar.java b/core/java/com/android/internal/app/WindowDecorActionBar.java index 0cd12022e17d..8cab91aab512 100644 --- a/core/java/com/android/internal/app/WindowDecorActionBar.java +++ b/core/java/com/android/internal/app/WindowDecorActionBar.java @@ -32,6 +32,7 @@ import android.content.res.Configuration; import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.drawable.Drawable; +import android.os.Build; import android.util.TypedValue; import android.view.ActionMode; import android.view.ContextThemeWrapper; @@ -80,11 +81,11 @@ public class WindowDecorActionBar extends ActionBar implements private ActionBarOverlayLayout mOverlayLayout; private ActionBarContainer mContainerView; private DecorToolbar mDecorToolbar; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private ActionBarContextView mContextView; private ActionBarContainer mSplitView; private View mContentView; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private ScrollingTabContainerView mTabScrollView; private ArrayList<TabImpl> mTabs = new ArrayList<TabImpl>(); @@ -1149,7 +1150,7 @@ public class WindowDecorActionBar extends ActionBar implements * @hide */ public class TabImpl extends ActionBar.Tab { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private ActionBar.TabListener mCallback; private Object mTag; private Drawable mIcon; diff --git a/core/java/com/android/internal/appwidget/IAppWidgetService.aidl b/core/java/com/android/internal/appwidget/IAppWidgetService.aidl index 1186dfe92906..2d68cb472fa3 100644 --- a/core/java/com/android/internal/appwidget/IAppWidgetService.aidl +++ b/core/java/com/android/internal/appwidget/IAppWidgetService.aidl @@ -42,7 +42,7 @@ interface IAppWidgetService { void deleteAppWidgetId(String callingPackage, int appWidgetId); void deleteHost(String packageName, int hostId); void deleteAllHosts(); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) RemoteViews getAppWidgetViews(String callingPackage, int appWidgetId); int[] getAppWidgetIdsForHost(String callingPackage, int hostId); IntentSender createAppWidgetConfigIntentSender(String callingPackage, int appWidgetId, @@ -64,10 +64,10 @@ interface IAppWidgetService { AppWidgetProviderInfo getAppWidgetInfo(String callingPackage, int appWidgetId); boolean hasBindAppWidgetPermission(in String packageName, int userId); void setBindAppWidgetPermission(in String packageName, int userId, in boolean permission); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) boolean bindAppWidgetId(in String callingPackage, int appWidgetId, int providerProfileId, in ComponentName providerComponent, in Bundle options); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) boolean bindRemoteViewsService(String callingPackage, int appWidgetId, in Intent intent, IApplicationThread caller, IBinder token, IServiceConnection connection, int flags); diff --git a/core/java/com/android/internal/logging/MetricsLogger.java b/core/java/com/android/internal/logging/MetricsLogger.java index 140c410e8de6..7b6df6c7118a 100644 --- a/core/java/com/android/internal/logging/MetricsLogger.java +++ b/core/java/com/android/internal/logging/MetricsLogger.java @@ -63,7 +63,7 @@ public class MetricsLogger { public static final int LOGTAG = EventLogTags.SYSUI_MULTI_ACTION; /** Write an event log record, consisting of content.serialize(). */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void write(LogMaker content) { if (content.getType() == MetricsEvent.TYPE_UNKNOWN) { content.setType(MetricsEvent.TYPE_ACTION); diff --git a/core/java/com/android/internal/net/VpnProfile.java b/core/java/com/android/internal/net/VpnProfile.java index b4727499d8ef..a17f5f5f8910 100644 --- a/core/java/com/android/internal/net/VpnProfile.java +++ b/core/java/com/android/internal/net/VpnProfile.java @@ -236,7 +236,7 @@ public final class VpnProfile implements Cloneable, Parcelable { * * <p>See {@link #encode()} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static VpnProfile decode(String key, byte[] value) { try { if (key == null) { diff --git a/core/java/com/android/internal/os/BaseCommand.java b/core/java/com/android/internal/os/BaseCommand.java index 32442f0472bb..c110b263e781 100644 --- a/core/java/com/android/internal/os/BaseCommand.java +++ b/core/java/com/android/internal/os/BaseCommand.java @@ -19,12 +19,13 @@ package com.android.internal.os; import android.compat.annotation.UnsupportedAppUsage; import android.os.BasicShellCommandHandler; +import android.os.Build; import java.io.PrintStream; public abstract class BaseCommand { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) final protected BasicShellCommandHandler mArgs = new BasicShellCommandHandler() { @Override public int onCommand(String cmd) { return 0; @@ -40,7 +41,7 @@ public abstract class BaseCommand { private String[] mRawArgs; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public BaseCommand() { } diff --git a/core/java/com/android/internal/os/BatterySipper.java b/core/java/com/android/internal/os/BatterySipper.java index b3ea118d9c73..cd5aedff0482 100644 --- a/core/java/com/android/internal/os/BatterySipper.java +++ b/core/java/com/android/internal/os/BatterySipper.java @@ -17,6 +17,7 @@ package com.android.internal.os; import android.compat.annotation.UnsupportedAppUsage; import android.os.BatteryStats.Uid; +import android.os.Build; import java.util.List; @@ -120,7 +121,7 @@ public class BatterySipper implements Comparable<BatterySipper> { public double audioPowerMah; public double bluetoothPowerMah; public double cameraPowerMah; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public double cpuPowerMah; public double flashlightPowerMah; public double gpsPowerMah; diff --git a/core/java/com/android/internal/os/BatteryStatsHelper.java b/core/java/com/android/internal/os/BatteryStatsHelper.java index b131ab83cc79..8bfc28ed5e52 100644 --- a/core/java/com/android/internal/os/BatteryStatsHelper.java +++ b/core/java/com/android/internal/os/BatteryStatsHelper.java @@ -26,6 +26,7 @@ import android.hardware.SensorManager; import android.net.ConnectivityManager; import android.os.BatteryStats; import android.os.BatteryStats.Uid; +import android.os.Build; import android.os.Bundle; import android.os.MemoryFile; import android.os.Parcel; @@ -271,7 +272,7 @@ public class BatteryStatsHelper { return mStats; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Intent getBatteryBroadcast() { if (mBatteryBroadcast == null && mCollectBatteryBroadcast) { load(); @@ -360,7 +361,7 @@ public class BatteryStatsHelper { /** * Refreshes the power usage list. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void refreshStats(int statsType, SparseArray<UserHandle> asUsers) { refreshStats(statsType, asUsers, SystemClock.elapsedRealtime() * 1000, SystemClock.uptimeMillis() * 1000); diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java index 92ed90478bd6..1071d9f2a918 100644 --- a/core/java/com/android/internal/os/BatteryStatsImpl.java +++ b/core/java/com/android/internal/os/BatteryStatsImpl.java @@ -12736,7 +12736,7 @@ public class BatteryStatsImpl extends BatteryStats { } @Override - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getDischargeStartLevel() { synchronized(this) { return getDischargeStartLevelLocked(); @@ -12748,7 +12748,7 @@ public class BatteryStatsImpl extends BatteryStats { } @Override - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getDischargeCurrentLevel() { synchronized(this) { return getDischargeCurrentLevelLocked(); diff --git a/core/java/com/android/internal/os/ClassLoaderFactory.java b/core/java/com/android/internal/os/ClassLoaderFactory.java index 8f36de1d9661..26a03717dcd8 100644 --- a/core/java/com/android/internal/os/ClassLoaderFactory.java +++ b/core/java/com/android/internal/os/ClassLoaderFactory.java @@ -17,6 +17,7 @@ package com.android.internal.os; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Trace; import dalvik.system.DelegateLastClassLoader; @@ -137,7 +138,7 @@ public class ClassLoaderFactory { return classLoader; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static native String createClassloaderNamespace(ClassLoader classLoader, int targetSdkVersion, String librarySearchPath, diff --git a/core/java/com/android/internal/os/FuseAppLoop.java b/core/java/com/android/internal/os/FuseAppLoop.java index 2393036b5a38..1c6c6a73b44d 100644 --- a/core/java/com/android/internal/os/FuseAppLoop.java +++ b/core/java/com/android/internal/os/FuseAppLoop.java @@ -19,6 +19,7 @@ package com.android.internal.os; import android.annotation.NonNull; import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Handler; import android.os.Message; import android.os.ParcelFileDescriptor; @@ -230,7 +231,7 @@ public class FuseAppLoop implements Handler.Callback { // Called by JNI. @SuppressWarnings("unused") - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private void onCommand(int command, long unique, long inode, long offset, int size, byte[] data) { synchronized (mLock) { @@ -259,7 +260,7 @@ public class FuseAppLoop implements Handler.Callback { // Called by JNI. @SuppressWarnings("unused") - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private byte[] onOpen(long unique, long inode) { synchronized (mLock) { try { diff --git a/core/java/com/android/internal/os/KernelWakelockReader.java b/core/java/com/android/internal/os/KernelWakelockReader.java index 3d35d2fbaa82..f668bbaf9438 100644 --- a/core/java/com/android/internal/os/KernelWakelockReader.java +++ b/core/java/com/android/internal/os/KernelWakelockReader.java @@ -21,8 +21,8 @@ import android.os.ServiceManager; import android.os.ServiceManager.ServiceNotFoundException; import android.os.StrictMode; import android.os.SystemClock; -import android.system.suspend.ISuspendControlService; -import android.system.suspend.WakeLockInfo; +import android.system.suspend.internal.ISuspendControlServiceInternal; +import android.system.suspend.internal.WakeLockInfo; import android.util.Slog; import com.android.internal.annotations.VisibleForTesting; @@ -66,7 +66,7 @@ public class KernelWakelockReader { private final String[] mProcWakelocksName = new String[3]; private final long[] mProcWakelocksData = new long[3]; - private ISuspendControlService mSuspendControlService = null; + private ISuspendControlServiceInternal mSuspendControlService = null; private byte[] mKernelWakelockBuffer = new byte[32 * 1024]; /** @@ -155,11 +155,12 @@ public class KernelWakelockReader { /** * Attempt to wait for suspend_control service if not immediately available. */ - private ISuspendControlService waitForSuspendControlService() throws ServiceNotFoundException { - final String name = "suspend_control"; + private ISuspendControlServiceInternal waitForSuspendControlService() + throws ServiceNotFoundException { + final String name = "suspend_control_internal"; final int numRetries = 5; for (int i = 0; i < numRetries; i++) { - mSuspendControlService = ISuspendControlService.Stub.asInterface( + mSuspendControlService = ISuspendControlServiceInternal.Stub.asInterface( ServiceManager.getService(name)); if (mSuspendControlService != null) { return mSuspendControlService; diff --git a/core/java/com/android/internal/os/ProcessCpuTracker.java b/core/java/com/android/internal/os/ProcessCpuTracker.java index 8e0546e6a86c..6d5cb67352b3 100644 --- a/core/java/com/android/internal/os/ProcessCpuTracker.java +++ b/core/java/com/android/internal/os/ProcessCpuTracker.java @@ -24,6 +24,7 @@ import static android.os.Process.PROC_PARENS; import static android.os.Process.PROC_SPACE_TERM; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.CpuUsageProto; import android.os.Process; import android.os.StrictMode; @@ -200,7 +201,7 @@ public class ProcessCpuTracker { public boolean interesting; public String baseName; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public String name; public int nameWidth; @@ -216,7 +217,7 @@ public class ProcessCpuTracker { /** * Time in milliseconds. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public long rel_uptime; /** @@ -232,13 +233,13 @@ public class ProcessCpuTracker { /** * Time in milliseconds. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int rel_utime; /** * Time in milliseconds. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int rel_stime; public long base_minfaults; @@ -732,13 +733,13 @@ public class ProcessCpuTracker { return statses; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) final public int countWorkingStats() { buildWorkingProcs(); return mWorkingProcs.size(); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) final public Stats getWorkingStats(int index) { return mWorkingProcs.get(index); } diff --git a/core/java/com/android/internal/os/SomeArgs.java b/core/java/com/android/internal/os/SomeArgs.java index 003f61079dcf..5ec882cee3c8 100644 --- a/core/java/com/android/internal/os/SomeArgs.java +++ b/core/java/com/android/internal/os/SomeArgs.java @@ -17,6 +17,7 @@ package com.android.internal.os; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; /** * Helper class for passing more arguments though a message @@ -42,11 +43,11 @@ public final class SomeArgs { static final int WAIT_FINISHED = 2; int mWaitState = WAIT_NONE; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Object arg1; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Object arg2; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Object arg3; public Object arg4; public Object arg5; @@ -55,9 +56,9 @@ public final class SomeArgs { public Object arg8; public Object arg9; public int argi1; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int argi2; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int argi3; public int argi4; public int argi5; @@ -67,7 +68,7 @@ public final class SomeArgs { /* do nothing - reduce visibility */ } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static SomeArgs obtain() { synchronized (sPoolLock) { if (sPoolSize > 0) { @@ -93,7 +94,7 @@ public final class SomeArgs { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void recycle() { if (mInPool) { throw new IllegalStateException("Already recycled."); diff --git a/core/java/com/android/internal/telephony/ITelephonyRegistry.aidl b/core/java/com/android/internal/telephony/ITelephonyRegistry.aidl index ea09fc8cd34a..5f2dcc3d22e1 100644 --- a/core/java/com/android/internal/telephony/ITelephonyRegistry.aidl +++ b/core/java/com/android/internal/telephony/ITelephonyRegistry.aidl @@ -51,7 +51,7 @@ interface ITelephonyRegistry { boolean notifyNow); void listenForSubscriber(in int subId, String pkg, String featureId, IPhoneStateListener callback, int events, boolean notifyNow); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void notifyCallStateForAllSubs(int state, String incomingNumber); void notifyCallState(in int phoneId, in int subId, int state, String incomingNumber); void notifyServiceStateForPhoneId(in int phoneId, in int subId, in ServiceState state); diff --git a/core/java/com/android/internal/util/ArrayUtils.java b/core/java/com/android/internal/util/ArrayUtils.java index cd69a02d4d2d..9ad15021f651 100644 --- a/core/java/com/android/internal/util/ArrayUtils.java +++ b/core/java/com/android/internal/util/ArrayUtils.java @@ -19,6 +19,7 @@ package com.android.internal.util; import android.annotation.NonNull; import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.util.ArraySet; import dalvik.system.VMRuntime; @@ -56,7 +57,7 @@ public class ArrayUtils { return (char[])VMRuntime.getRuntime().newUnpaddedArray(char.class, minLen); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static int[] newUnpaddedIntArray(int minLen) { return (int[])VMRuntime.getRuntime().newUnpaddedArray(int.class, minLen); } @@ -77,7 +78,7 @@ public class ArrayUtils { return (Object[])VMRuntime.getRuntime().newUnpaddedArray(Object.class, minLen); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @SuppressWarnings("unchecked") public static <T> T[] newUnpaddedArray(Class<T> clazz, int minLen) { return (T[])VMRuntime.getRuntime().newUnpaddedArray(clazz, minLen); @@ -382,7 +383,7 @@ public class ArrayUtils { * Adds value to given array if not already present, providing set-like * behavior. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @SuppressWarnings("unchecked") public static @NonNull <T> T[] appendElement(Class<T> kind, @Nullable T[] array, T element) { return appendElement(kind, array, element, false); @@ -412,7 +413,7 @@ public class ArrayUtils { /** * Removes value from given array if present, providing set-like behavior. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @SuppressWarnings("unchecked") public static @Nullable <T> T[] removeElement(Class<T> kind, @Nullable T[] array, T element) { if (array != null) { diff --git a/core/java/com/android/internal/util/AsyncChannel.java b/core/java/com/android/internal/util/AsyncChannel.java index 7e3c171abfa6..0e8c92991b66 100644 --- a/core/java/com/android/internal/util/AsyncChannel.java +++ b/core/java/com/android/internal/util/AsyncChannel.java @@ -401,7 +401,7 @@ public class AsyncChannel { * @param srcHandler * @param dstMessenger */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void connected(Context srcContext, Handler srcHandler, Messenger dstMessenger) { if (DBG) log("connected srcHandler to the dstMessenger E"); @@ -514,7 +514,7 @@ public class AsyncChannel { * @param what * @param arg1 */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void sendMessage(int what, int arg1) { Message msg = Message.obtain(); msg.what = what; @@ -606,7 +606,7 @@ public class AsyncChannel { * @param what * @param arg1 */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void replyToMessage(Message srcMsg, int what, int arg1) { Message msg = Message.obtain(); msg.what = what; @@ -639,7 +639,7 @@ public class AsyncChannel { * @param arg2 * @param obj */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void replyToMessage(Message srcMsg, int what, int arg1, int arg2, Object obj) { Message msg = Message.obtain(); msg.what = what; @@ -656,7 +656,7 @@ public class AsyncChannel { * @param what * @param obj */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void replyToMessage(Message srcMsg, int what, Object obj) { Message msg = Message.obtain(); msg.what = what; @@ -670,7 +670,7 @@ public class AsyncChannel { * @param msg to send * @return reply message or null if an error. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Message sendMessageSynchronously(Message msg) { Message resultMsg = SyncMessenger.sendMessageSynchronously(mDstMessenger, msg); return resultMsg; @@ -712,7 +712,7 @@ public class AsyncChannel { * @param arg2 * @return reply message or null if an error. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Message sendMessageSynchronously(int what, int arg1, int arg2) { Message msg = Message.obtain(); msg.what = what; diff --git a/core/java/com/android/internal/util/GrowingArrayUtils.java b/core/java/com/android/internal/util/GrowingArrayUtils.java index 597fe6b53d11..8c12e36a27d1 100644 --- a/core/java/com/android/internal/util/GrowingArrayUtils.java +++ b/core/java/com/android/internal/util/GrowingArrayUtils.java @@ -17,6 +17,7 @@ package com.android.internal.util; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; /** * A helper class that aims to provide comparable growth performance to ArrayList, but on primitive @@ -39,7 +40,7 @@ public final class GrowingArrayUtils { * @return the array to which the element was appended. This may be different than the given * array. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static <T> T[] append(T[] array, int currentSize, T element) { assert currentSize <= array.length; @@ -57,7 +58,7 @@ public final class GrowingArrayUtils { /** * Primitive int version of {@link #append(Object[], int, Object)}. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static int[] append(int[] array, int currentSize, int element) { assert currentSize <= array.length; diff --git a/core/java/com/android/internal/util/HexDump.java b/core/java/com/android/internal/util/HexDump.java index ad88dd6deec6..6468cafe85d4 100644 --- a/core/java/com/android/internal/util/HexDump.java +++ b/core/java/com/android/internal/util/HexDump.java @@ -107,7 +107,7 @@ public class HexDump return toHexString(array, 0, array.length, true); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) public static String toHexString(byte[] array, boolean upperCase) { return toHexString(array, 0, array.length, upperCase); diff --git a/core/java/com/android/internal/util/IndentingPrintWriter.java b/core/java/com/android/internal/util/IndentingPrintWriter.java index 34c6a055d5bd..1d2c38911a42 100644 --- a/core/java/com/android/internal/util/IndentingPrintWriter.java +++ b/core/java/com/android/internal/util/IndentingPrintWriter.java @@ -17,6 +17,7 @@ package com.android.internal.util; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import java.io.PrintWriter; import java.io.Writer; @@ -49,7 +50,7 @@ public class IndentingPrintWriter extends PrintWriter { private char[] mSingleChar = new char[1]; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public IndentingPrintWriter(Writer writer, String singleIndent) { this(writer, singleIndent, -1); } @@ -75,14 +76,14 @@ public class IndentingPrintWriter extends PrintWriter { return this; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public IndentingPrintWriter increaseIndent() { mIndentBuilder.append(mSingleIndent); mCurrentIndent = null; return this; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public IndentingPrintWriter decreaseIndent() { mIndentBuilder.delete(0, mSingleIndent.length()); mCurrentIndent = null; diff --git a/core/java/com/android/internal/util/MemInfoReader.java b/core/java/com/android/internal/util/MemInfoReader.java index 5de77d9b0545..0c5c8537e85a 100644 --- a/core/java/com/android/internal/util/MemInfoReader.java +++ b/core/java/com/android/internal/util/MemInfoReader.java @@ -17,6 +17,7 @@ package com.android.internal.util; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Debug; import android.os.StrictMode; @@ -51,7 +52,7 @@ public final class MemInfoReader { /** * Amount of RAM that is not being used for anything. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public long getFreeSize() { return mInfos[Debug.MEMINFO_FREE] * 1024; } @@ -60,7 +61,7 @@ public final class MemInfoReader { * Amount of RAM that the kernel is being used for caches, not counting caches * that are mapped in to processes. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public long getCachedSize() { return getCachedSizeKb() * 1024; } diff --git a/core/java/com/android/internal/util/Preconditions.java b/core/java/com/android/internal/util/Preconditions.java index a87e080fa522..244f33f010a1 100644 --- a/core/java/com/android/internal/util/Preconditions.java +++ b/core/java/com/android/internal/util/Preconditions.java @@ -19,6 +19,7 @@ package com.android.internal.util; import android.annotation.IntRange; import android.annotation.NonNull; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.text.TextUtils; import java.util.Arrays; @@ -46,7 +47,7 @@ public class Preconditions { * be converted to a string using {@link String#valueOf(Object)} * @throws IllegalArgumentException if {@code expression} is false */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static void checkArgument(boolean expression, final Object errorMessage) { if (!expression) { throw new IllegalArgumentException(String.valueOf(errorMessage)); @@ -167,7 +168,7 @@ public class Preconditions { * @param message exception message * @throws IllegalStateException if {@code expression} is false */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static void checkState(final boolean expression, String message) { if (!expression) { throw new IllegalStateException(message); @@ -379,7 +380,7 @@ public class Preconditions { * * @throws IllegalArgumentException if {@code value} was not within the range */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static int checkArgumentInRange(int value, int lower, int upper, String valueName) { if (value < lower) { diff --git a/core/java/com/android/internal/util/State.java b/core/java/com/android/internal/util/State.java index 636378e32091..4613dad8cc67 100644 --- a/core/java/com/android/internal/util/State.java +++ b/core/java/com/android/internal/util/State.java @@ -17,6 +17,7 @@ package com.android.internal.util; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Message; /** @@ -44,7 +45,7 @@ public class State implements IState { /* (non-Javadoc) * @see com.android.internal.util.IState#exit() */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @Override public void exit() { } diff --git a/core/java/com/android/internal/util/StateMachine.java b/core/java/com/android/internal/util/StateMachine.java index 7a79cc9ef868..4cff785cd671 100644 --- a/core/java/com/android/internal/util/StateMachine.java +++ b/core/java/com/android/internal/util/StateMachine.java @@ -17,6 +17,7 @@ package com.android.internal.util; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Handler; import android.os.HandlerThread; import android.os.Looper; @@ -1324,7 +1325,7 @@ public class StateMachine { * * @param name of the state machine */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) protected StateMachine(String name, Handler handler) { initStateMachine(name, handler.getLooper()); } @@ -1357,7 +1358,7 @@ public class StateMachine { * Add a new state to the state machine, parent will be null * @param state to add */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final void addState(State state) { mSmHandler.addState(state, null); } @@ -1376,7 +1377,7 @@ public class StateMachine { * * @param initialState is the state which will receive the first message. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final void setInitialState(State initialState) { mSmHandler.setInitialState(initialState); } @@ -1415,7 +1416,7 @@ public class StateMachine { * * @param destState will be the state that receives the next message. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final void transitionTo(IState destState) { mSmHandler.transitionTo(destState); } @@ -1700,7 +1701,7 @@ public class StateMachine { * @param obj is assigned to Message.obj * @return A Message object from the global pool */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final Message obtainMessage(int what, int arg1, int arg2, Object obj) { return Message.obtain(mSmHandler, what, arg1, arg2, obj); } @@ -1738,7 +1739,7 @@ public class StateMachine { * * Message is ignored if state machine has quit. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void sendMessage(int what, int arg1) { // mSmHandler can be null if the state machine has quit. SmHandler smh = mSmHandler; @@ -1765,7 +1766,7 @@ public class StateMachine { * * Message is ignored if state machine has quit. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void sendMessage(int what, int arg1, int arg2, Object obj) { // mSmHandler can be null if the state machine has quit. SmHandler smh = mSmHandler; @@ -2066,7 +2067,7 @@ public class StateMachine { /** * Start the state machine. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void start() { // mSmHandler can be null if the state machine has quit. SmHandler smh = mSmHandler; @@ -2083,7 +2084,7 @@ public class StateMachine { * @param pw * @param args */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { pw.println(getName() + ":"); pw.println(" total records=" + getLogRecCount()); diff --git a/core/java/com/android/internal/view/IInputConnectionWrapper.java b/core/java/com/android/internal/view/IInputConnectionWrapper.java index 9257c6d19148..09732eb4e9cb 100644 --- a/core/java/com/android/internal/view/IInputConnectionWrapper.java +++ b/core/java/com/android/internal/view/IInputConnectionWrapper.java @@ -78,7 +78,7 @@ public abstract class IInputConnectionWrapper extends IInputContext.Stub { private Looper mMainLooper; private Handler mH; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private Object mLock = new Object(); @GuardedBy("mLock") private boolean mFinished = false; diff --git a/core/java/com/android/internal/view/menu/ActionMenu.java b/core/java/com/android/internal/view/menu/ActionMenu.java index 648262965ab1..c699ca193f2b 100644 --- a/core/java/com/android/internal/view/menu/ActionMenu.java +++ b/core/java/com/android/internal/view/menu/ActionMenu.java @@ -22,6 +22,7 @@ import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; +import android.os.Build; import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; @@ -40,7 +41,7 @@ public class ActionMenu implements Menu { private ArrayList<ActionMenuItem> mItems; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public ActionMenu(Context context) { mContext = context; mItems = new ArrayList<ActionMenuItem>(); diff --git a/core/java/com/android/internal/view/menu/ActionMenuItem.java b/core/java/com/android/internal/view/menu/ActionMenuItem.java index bd8bcb9cf81e..acb233e39cc8 100644 --- a/core/java/com/android/internal/view/menu/ActionMenuItem.java +++ b/core/java/com/android/internal/view/menu/ActionMenuItem.java @@ -23,6 +23,7 @@ import android.content.Intent; import android.content.res.ColorStateList; import android.graphics.PorterDuff; import android.graphics.drawable.Drawable; +import android.os.Build; import android.view.ActionProvider; import android.view.ContextMenu.ContextMenuInfo; import android.view.KeyEvent; @@ -70,7 +71,7 @@ public class ActionMenuItem implements MenuItem { private static final int HIDDEN = 0x00000008; private static final int ENABLED = 0x00000010; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public ActionMenuItem(Context context, int group, int id, int categoryOrder, int ordering, CharSequence title) { mContext = context; diff --git a/core/java/com/android/internal/view/menu/ActionMenuItemView.java b/core/java/com/android/internal/view/menu/ActionMenuItemView.java index 7622b939b6eb..61536e8960e2 100644 --- a/core/java/com/android/internal/view/menu/ActionMenuItemView.java +++ b/core/java/com/android/internal/view/menu/ActionMenuItemView.java @@ -22,6 +22,7 @@ import android.content.res.Configuration; import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.drawable.Drawable; +import android.os.Build; import android.os.Parcelable; import android.text.TextUtils; import android.util.AttributeSet; @@ -225,7 +226,7 @@ public class ActionMenuItemView extends TextView updateTextButtonVisibility(); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean hasText() { return !TextUtils.isEmpty(getText()); } diff --git a/core/java/com/android/internal/view/menu/MenuBuilder.java b/core/java/com/android/internal/view/menu/MenuBuilder.java index b31ae38b4566..0b490b20df0e 100644 --- a/core/java/com/android/internal/view/menu/MenuBuilder.java +++ b/core/java/com/android/internal/view/menu/MenuBuilder.java @@ -27,6 +27,7 @@ import android.content.pm.ResolveInfo; import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.drawable.Drawable; +import android.os.Build; import android.os.Bundle; import android.os.Parcelable; import android.util.SparseArray; @@ -210,7 +211,7 @@ public class MenuBuilder implements Menu { setShortcutsVisibleInner(true); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public MenuBuilder setDefaultShowAsAction(int defaultShowAsAction) { mDefaultShowAsAction = defaultShowAsAction; return this; @@ -223,7 +224,7 @@ public class MenuBuilder implements Menu { * * @param presenter The presenter to add */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void addMenuPresenter(MenuPresenter presenter) { addMenuPresenter(presenter, mContext); } @@ -250,7 +251,7 @@ public class MenuBuilder implements Menu { * * @param presenter The presenter to remove */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void removeMenuPresenter(MenuPresenter presenter) { for (WeakReference<MenuPresenter> ref : mPresenters) { final MenuPresenter item = ref.get(); @@ -1015,7 +1016,7 @@ public class MenuBuilder implements Menu { * {@link #startDispatchingItemsChanged()} is called. Useful when * many menu operations are going to be performed as a batch. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void stopDispatchingItemsChanged() { if (!mPreventDispatchingItemsChanged) { mPreventDispatchingItemsChanged = true; @@ -1023,7 +1024,7 @@ public class MenuBuilder implements Menu { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void startDispatchingItemsChanged() { mPreventDispatchingItemsChanged = false; @@ -1145,7 +1146,7 @@ public class MenuBuilder implements Menu { return mActionItems; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public ArrayList<MenuItemImpl> getNonActionItems() { flagActionItems(); return mNonActionItems; diff --git a/core/java/com/android/internal/view/menu/MenuItemImpl.java b/core/java/com/android/internal/view/menu/MenuItemImpl.java index 218f5185ec47..2452398a5348 100644 --- a/core/java/com/android/internal/view/menu/MenuItemImpl.java +++ b/core/java/com/android/internal/view/menu/MenuItemImpl.java @@ -25,6 +25,7 @@ import android.content.res.ColorStateList; import android.content.res.Resources; import android.graphics.PorterDuff; import android.graphics.drawable.Drawable; +import android.os.Build; import android.util.Log; import android.view.ActionProvider; import android.view.ContextMenu.ContextMenuInfo; @@ -662,17 +663,17 @@ public final class MenuItemImpl implements MenuItem { return mMenu.getOptionalIconsVisible(); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isActionButton() { return (mFlags & IS_ACTION) == IS_ACTION; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean requestsActionButton() { return (mShowAsAction & SHOW_AS_ACTION_IF_ROOM) == SHOW_AS_ACTION_IF_ROOM; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean requiresActionButton() { return (mShowAsAction & SHOW_AS_ACTION_ALWAYS) == SHOW_AS_ACTION_ALWAYS; } diff --git a/core/java/com/android/internal/view/menu/MenuPopupHelper.java b/core/java/com/android/internal/view/menu/MenuPopupHelper.java index 980943ebea5a..c266d0218b31 100644 --- a/core/java/com/android/internal/view/menu/MenuPopupHelper.java +++ b/core/java/com/android/internal/view/menu/MenuPopupHelper.java @@ -23,6 +23,7 @@ import android.annotation.StyleRes; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.graphics.Rect; +import android.os.Build; import android.view.Gravity; import android.view.View; import android.view.WindowManager; @@ -47,14 +48,14 @@ public class MenuPopupHelper implements MenuHelper { // Mutable cached popup menu properties. private View mAnchorView; private int mDropDownGravity = Gravity.START; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private boolean mForceShowIcon; private Callback mPresenterCallback; private MenuPopup mPopup; private OnDismissListener mOnDismissListener; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public MenuPopupHelper(@NonNull Context context, @NonNull MenuBuilder menu) { this(context, menu, null, false, com.android.internal.R.attr.popupMenuStyle, 0); } @@ -93,7 +94,7 @@ public class MenuPopupHelper implements MenuHelper { * * @param anchor the view to which the popup window should be anchored */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setAnchorView(@NonNull View anchor) { mAnchorView = anchor; } @@ -125,7 +126,7 @@ public class MenuPopupHelper implements MenuHelper { * * @param gravity alignment of the popup relative to the anchor */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setGravity(int gravity) { mDropDownGravity = gravity; } @@ -151,7 +152,7 @@ public class MenuPopupHelper implements MenuHelper { } @NonNull - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public MenuPopup getPopup() { if (mPopup == null) { mPopup = createPopup(); @@ -165,7 +166,7 @@ public class MenuPopupHelper implements MenuHelper { * @return {@code true} if the popup was shown or was already showing prior to calling this * method, {@code false} otherwise */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean tryShow() { if (isShowing()) { return true; diff --git a/core/java/com/android/internal/view/menu/MenuPresenter.java b/core/java/com/android/internal/view/menu/MenuPresenter.java index 35b8fefe75ab..37155b9ff7fe 100644 --- a/core/java/com/android/internal/view/menu/MenuPresenter.java +++ b/core/java/com/android/internal/view/menu/MenuPresenter.java @@ -20,6 +20,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; +import android.os.Build; import android.os.Parcelable; import android.view.ViewGroup; @@ -48,7 +49,7 @@ public interface MenuPresenter { * @return true if the Callback will handle presenting the submenu, false if * the presenter should attempt to do so. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean onOpenSubMenu(MenuBuilder subMenu); } diff --git a/core/java/com/android/internal/widget/AbsActionBarView.java b/core/java/com/android/internal/widget/AbsActionBarView.java index 0f0c1a3de3a2..914de6102fef 100644 --- a/core/java/com/android/internal/widget/AbsActionBarView.java +++ b/core/java/com/android/internal/widget/AbsActionBarView.java @@ -23,6 +23,7 @@ import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.content.res.Configuration; import android.content.res.TypedArray; +import android.os.Build; import android.util.AttributeSet; import android.util.TypedValue; import android.view.ContextThemeWrapper; @@ -294,7 +295,7 @@ public abstract class AbsActionBarView extends ViewGroup { return isOverflowReserved() && getVisibility() == VISIBLE; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void dismissPopupMenus() { if (mActionMenuPresenter != null) { mActionMenuPresenter.dismissPopupMenus(); diff --git a/core/java/com/android/internal/widget/ActionBarContextView.java b/core/java/com/android/internal/widget/ActionBarContextView.java index 051526ef2da7..80fc218839d5 100644 --- a/core/java/com/android/internal/widget/ActionBarContextView.java +++ b/core/java/com/android/internal/widget/ActionBarContextView.java @@ -19,6 +19,7 @@ import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.content.res.TypedArray; import android.graphics.drawable.Drawable; +import android.os.Build; import android.text.TextUtils; import android.util.AttributeSet; import android.view.ActionMode; @@ -58,7 +59,7 @@ public class ActionBarContextView extends AbsActionBarView { this(context, null); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public ActionBarContextView(Context context, AttributeSet attrs) { this(context, attrs, com.android.internal.R.attr.actionModeStyle); } diff --git a/core/java/com/android/internal/widget/ActionBarOverlayLayout.java b/core/java/com/android/internal/widget/ActionBarOverlayLayout.java index aca0b713686f..adbf645de74e 100644 --- a/core/java/com/android/internal/widget/ActionBarOverlayLayout.java +++ b/core/java/com/android/internal/widget/ActionBarOverlayLayout.java @@ -170,7 +170,7 @@ public class ActionBarOverlayLayout extends ViewGroup implements DecorContentPar init(context); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public ActionBarOverlayLayout(Context context, AttributeSet attrs) { super(context, attrs); init(context); diff --git a/core/java/com/android/internal/widget/CachingIconView.java b/core/java/com/android/internal/widget/CachingIconView.java index 84cde1b84e14..3d4bb64c8885 100644 --- a/core/java/com/android/internal/widget/CachingIconView.java +++ b/core/java/com/android/internal/widget/CachingIconView.java @@ -25,6 +25,7 @@ import android.graphics.Bitmap; import android.graphics.drawable.Drawable; import android.graphics.drawable.Icon; import android.net.Uri; +import android.os.Build; import android.text.TextUtils; import android.util.AttributeSet; import android.view.RemotableViewMethod; @@ -50,7 +51,7 @@ public class CachingIconView extends ImageView { private int mIconColor; private boolean mWillBeForceHidden; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public CachingIconView(Context context, @Nullable AttributeSet attrs) { super(context, attrs); } diff --git a/core/java/com/android/internal/widget/IRemoteViewsFactory.aidl b/core/java/com/android/internal/widget/IRemoteViewsFactory.aidl index d6efca5d36eb..c06dab9f75d6 100644 --- a/core/java/com/android/internal/widget/IRemoteViewsFactory.aidl +++ b/core/java/com/android/internal/widget/IRemoteViewsFactory.aidl @@ -21,23 +21,23 @@ import android.widget.RemoteViews; /** {@hide} */ interface IRemoteViewsFactory { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void onDataSetChanged(); oneway void onDataSetChangedAsync(); oneway void onDestroy(in Intent intent); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) int getCount(); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) RemoteViews getViewAt(int position); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) RemoteViews getLoadingView(); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) int getViewTypeCount(); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) long getItemId(int position); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) boolean hasStableIds(); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) boolean isCreated(); } diff --git a/core/java/com/android/internal/widget/LinearLayoutWithDefaultTouchRecepient.java b/core/java/com/android/internal/widget/LinearLayoutWithDefaultTouchRecepient.java index 9ef9f697c46c..f230ddb8b5ea 100644 --- a/core/java/com/android/internal/widget/LinearLayoutWithDefaultTouchRecepient.java +++ b/core/java/com/android/internal/widget/LinearLayoutWithDefaultTouchRecepient.java @@ -19,6 +19,7 @@ package com.android.internal.widget; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.graphics.Rect; +import android.os.Build; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; @@ -46,7 +47,7 @@ public class LinearLayoutWithDefaultTouchRecepient extends LinearLayout { super(context, attrs); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setDefaultTouchRecepient(View defaultTouchRecepient) { mDefaultTouchRecepient = defaultTouchRecepient; } diff --git a/core/java/com/android/internal/widget/LockPatternUtils.java b/core/java/com/android/internal/widget/LockPatternUtils.java index 73318bfc0c6f..a1dc4d9202ec 100644 --- a/core/java/com/android/internal/widget/LockPatternUtils.java +++ b/core/java/com/android/internal/widget/LockPatternUtils.java @@ -35,6 +35,7 @@ import android.content.ContentResolver; import android.content.Context; import android.content.pm.UserInfo; import android.os.AsyncTask; +import android.os.Build; import android.os.Handler; import android.os.IBinder; import android.os.Looper; @@ -694,13 +695,13 @@ public class LockPatternUtils { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setOwnerInfo(String info, int userId) { setString(LOCK_SCREEN_OWNER_INFO, info, userId); updateCryptoUserInfo(userId); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setOwnerInfoEnabled(boolean enabled, int userId) { setBoolean(LOCK_SCREEN_OWNER_INFO_ENABLED, enabled, userId); updateCryptoUserInfo(userId); @@ -1078,7 +1079,7 @@ public class LockPatternUtils { return type != CREDENTIAL_TYPE_NONE; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isLockPasswordEnabled(int userId) { int type = getCredentialTypeForUser(userId); return type == CREDENTIAL_TYPE_PASSWORD || type == CREDENTIAL_TYPE_PIN; diff --git a/core/java/com/android/internal/widget/NumericTextView.java b/core/java/com/android/internal/widget/NumericTextView.java index c8f901133be6..e6cb24de9f94 100644 --- a/core/java/com/android/internal/widget/NumericTextView.java +++ b/core/java/com/android/internal/widget/NumericTextView.java @@ -19,6 +19,7 @@ package com.android.internal.widget; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.graphics.Rect; +import android.os.Build; import android.util.AttributeSet; import android.util.StateSet; import android.view.KeyEvent; @@ -54,7 +55,7 @@ public class NumericTextView extends TextView { private OnValueChangedListener mListener; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public NumericTextView(Context context, AttributeSet attrs) { super(context, attrs); diff --git a/core/java/com/android/internal/widget/PreferenceImageView.java b/core/java/com/android/internal/widget/PreferenceImageView.java index 43b6b5a169c5..0ca98cfbdfb8 100644 --- a/core/java/com/android/internal/widget/PreferenceImageView.java +++ b/core/java/com/android/internal/widget/PreferenceImageView.java @@ -18,6 +18,7 @@ package com.android.internal.widget; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; +import android.os.Build; import android.util.AttributeSet; import android.widget.ImageView; @@ -30,7 +31,7 @@ public class PreferenceImageView extends ImageView { this(context, null); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public PreferenceImageView(Context context, AttributeSet attrs) { this(context, attrs, 0); } diff --git a/core/java/com/android/internal/widget/RecyclerView.java b/core/java/com/android/internal/widget/RecyclerView.java index d7a01c4762f1..fd9e43081d10 100644 --- a/core/java/com/android/internal/widget/RecyclerView.java +++ b/core/java/com/android/internal/widget/RecyclerView.java @@ -4968,7 +4968,7 @@ public class RecyclerView extends ViewGroup implements ScrollingView, NestedScro * constructed by {@link GapWorker} prefetch from being bound to a lower priority prefetch. */ static class ScrapData { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) ArrayList<ViewHolder> mScrapHeap = new ArrayList<>(); int mMaxScrap = DEFAULT_MAX_SCRAP; long mCreateRunningAverageNs = 0; diff --git a/core/java/com/android/internal/widget/ScrollBarUtils.java b/core/java/com/android/internal/widget/ScrollBarUtils.java index 3e9d697a0ace..0108bd4a27cf 100644 --- a/core/java/com/android/internal/widget/ScrollBarUtils.java +++ b/core/java/com/android/internal/widget/ScrollBarUtils.java @@ -17,10 +17,11 @@ package com.android.internal.widget; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; public class ScrollBarUtils { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static int getThumbLength(int size, int thickness, int extent, int range) { // Avoid the tiny thumb. final int minLength = thickness * 2; diff --git a/core/java/com/android/internal/widget/ScrollingTabContainerView.java b/core/java/com/android/internal/widget/ScrollingTabContainerView.java index aa0b0bbd4c19..d3029676cbb2 100644 --- a/core/java/com/android/internal/widget/ScrollingTabContainerView.java +++ b/core/java/com/android/internal/widget/ScrollingTabContainerView.java @@ -23,6 +23,7 @@ import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.content.res.Configuration; import android.graphics.drawable.Drawable; +import android.os.Build; import android.text.TextUtils; import android.text.TextUtils.TruncateAt; import android.view.Gravity; @@ -224,7 +225,7 @@ public class ScrollingTabContainerView extends HorizontalScrollView mStackedTabMaxWidth = abp.getStackedTabMaxWidth(); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void animateToVisibility(int visibility) { if (mVisibilityAnim != null) { mVisibilityAnim.cancel(); @@ -249,7 +250,7 @@ public class ScrollingTabContainerView extends HorizontalScrollView } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void animateToTab(final int position) { final View tabView = mTabLayout.getChildAt(position); if (mTabSelector != null) { @@ -331,7 +332,7 @@ public class ScrollingTabContainerView extends HorizontalScrollView } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void updateTab(int position) { ((TabView) mTabLayout.getChildAt(position)).update(); if (mTabSpinner != null) { diff --git a/core/java/com/android/server/net/NetlinkTracker.java b/core/java/com/android/server/net/NetlinkTracker.java index b57397f46a7e..197984fc7dcd 100644 --- a/core/java/com/android/server/net/NetlinkTracker.java +++ b/core/java/com/android/server/net/NetlinkTracker.java @@ -20,6 +20,7 @@ import android.compat.annotation.UnsupportedAppUsage; import android.net.LinkAddress; import android.net.LinkProperties; import android.net.RouteInfo; +import android.os.Build; import android.util.Log; import java.net.InetAddress; @@ -80,7 +81,7 @@ public class NetlinkTracker extends BaseNetworkObserver { private static final boolean DBG = false; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public NetlinkTracker(String iface, Callback callback) { TAG = "NetlinkTracker/" + iface; mInterfaceName = iface; @@ -189,12 +190,12 @@ public class NetlinkTracker extends BaseNetworkObserver { /** * Returns a copy of this object's LinkProperties. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public synchronized LinkProperties getLinkProperties() { return new LinkProperties(mLinkProperties); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public synchronized void clearLinkProperties() { // Clear the repository before clearing mLinkProperties. That way, if a clear() happens // while interfaceDnsServerInfo() is being called, we'll end up with no DNS servers in diff --git a/core/java/com/google/android/collect/Sets.java b/core/java/com/google/android/collect/Sets.java index c67a88a19080..e2429157d529 100644 --- a/core/java/com/google/android/collect/Sets.java +++ b/core/java/com/google/android/collect/Sets.java @@ -17,6 +17,7 @@ package com.google.android.collect; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.util.ArraySet; import java.util.Collections; @@ -107,7 +108,7 @@ public class Sets { /** * Creates a {@code ArraySet} instance containing the given elements. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static <E> ArraySet<E> newArraySet(E... elements) { int capacity = elements.length * 4 / 3 + 1; ArraySet<E> set = new ArraySet<E>(capacity); diff --git a/core/java/org/apache/http/conn/ssl/SSLSocketFactory.java b/core/java/org/apache/http/conn/ssl/SSLSocketFactory.java index e1fe1bdbdd5f..25091263b2b0 100644 --- a/core/java/org/apache/http/conn/ssl/SSLSocketFactory.java +++ b/core/java/org/apache/http/conn/ssl/SSLSocketFactory.java @@ -182,7 +182,7 @@ public class SSLSocketFactory implements LayeredSocketFactory { private final SSLContext sslcontext; @UnsupportedAppUsage private final javax.net.ssl.SSLSocketFactory socketfactory; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final HostNameResolver nameResolver; @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) private X509HostnameVerifier hostnameVerifier = BROWSER_COMPATIBLE_HOSTNAME_VERIFIER; @@ -262,7 +262,7 @@ public class SSLSocketFactory implements LayeredSocketFactory { this.nameResolver = null; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static KeyManager[] createKeyManagers(final KeyStore keystore, final String password) throws KeyStoreException, NoSuchAlgorithmException, UnrecoverableKeyException { if (keystore == null) { @@ -274,7 +274,7 @@ public class SSLSocketFactory implements LayeredSocketFactory { return kmfactory.getKeyManagers(); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static TrustManager[] createTrustManagers(final KeyStore keystore) throws KeyStoreException, NoSuchAlgorithmException { if (keystore == null) { diff --git a/core/proto/android/stats/tls/enums.proto b/core/proto/android/stats/tls/enums.proto new file mode 100644 index 000000000000..1777d693a244 --- /dev/null +++ b/core/proto/android/stats/tls/enums.proto @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2020 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. + */ +syntax = "proto2"; +package android.stats.tls; + +// Keep in sync with +// external/conscrypt/{android,platform}/src/main/java/org/conscrypt/Platform.java +enum Protocol { + UNKNOWN_PROTO = 0; + SSL_V3 = 1; + TLS_V1 = 2; + TLS_V1_1 = 3; + TLS_V1_2 = 4; + TLS_V1_3 = 5; +} + +// Cipher suites' ids are based on IANA's database: +// https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-4 +// +// If you add new cipher suite, make sure id is the same as in IANA's database (see link above) +// +// Keep in sync with +// external/conscrypt/{android,platform}/src/main/java/org/conscrypt/Platform.java +enum CipherSuite { + UNKNOWN_CIPHER_SUITE = 0x0000; + + TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA = 0xC00A; + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA = 0xC014; + TLS_RSA_WITH_AES_256_CBC_SHA = 0x0035; + TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA = 0xC009; + TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA = 0xC013; + TLS_RSA_WITH_AES_128_CBC_SHA = 0x002F; + TLS_RSA_WITH_3DES_EDE_CBC_SHA = 0x000A; + + // TLSv1.2 cipher suites + TLS_RSA_WITH_AES_128_GCM_SHA256 = 0x009C; + TLS_RSA_WITH_AES_256_GCM_SHA384 = 0x009D; + TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 = 0xC02F; + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 = 0xC030; + TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 = 0xC02B; + TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 = 0xC02C; + TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 = 0xCCA9; + TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 = 0xCCA8; + + // Pre-Shared Key (PSK) cipher suites + TLS_PSK_WITH_AES_128_CBC_SHA = 0x008C; + TLS_PSK_WITH_AES_256_CBC_SHA = 0x008D; + TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA = 0xC035; + TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA = 0xC036; + TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256 = 0xCCAC; + + // TLS 1.3 cipher suites + TLS_AES_128_GCM_SHA256 = 0x1301; + TLS_AES_256_GCM_SHA384 = 0x1302; + TLS_CHACHA20_POLY1305_SHA256 = 0x1303; +}
\ No newline at end of file diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index 4548f3aa6347..2b2bf8d8eea5 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -2792,6 +2792,7 @@ <item>power</item> <item>restart</item> <item>logout</item> + <item>screenshot</item> <item>bugreport</item> </string-array> @@ -3506,6 +3507,7 @@ mode --> <string-array translatable="false" name="config_priorityOnlyDndExemptPackages"> <item>com.android.dialer</item> + <item>com.android.server.telecom</item> <item>com.android.systemui</item> <item>android</item> </string-array> diff --git a/core/tests/coretests/src/android/view/InsetsControllerTest.java b/core/tests/coretests/src/android/view/InsetsControllerTest.java index 801cd4ddb94e..48695aa5a329 100644 --- a/core/tests/coretests/src/android/view/InsetsControllerTest.java +++ b/core/tests/coretests/src/android/view/InsetsControllerTest.java @@ -27,6 +27,7 @@ import static android.view.InsetsState.ITYPE_NAVIGATION_BAR; import static android.view.InsetsState.ITYPE_STATUS_BAR; import static android.view.ViewRootImpl.NEW_INSETS_MODE_FULL; import static android.view.WindowInsets.Type.ime; +import static android.view.WindowInsets.Type.navigationBars; import static android.view.WindowInsets.Type.statusBars; import static android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE; @@ -742,6 +743,20 @@ public class InsetsControllerTest { mController.onControlsChanged(createSingletonControl(ITYPE_IME)); assertEquals(newState.getSource(ITYPE_IME), mTestHost.getModifiedState().peekSource(ITYPE_IME)); + + // The modified frames cannot be updated if there is an animation. + mController.onControlsChanged(createSingletonControl(ITYPE_NAVIGATION_BAR)); + mController.hide(navigationBars()); + newState = new InsetsState(mController.getState(), true /* copySource */); + newState.getSource(ITYPE_NAVIGATION_BAR).getFrame().top--; + mController.onStateChanged(newState); + assertNotEquals(newState.getSource(ITYPE_NAVIGATION_BAR), + mTestHost.getModifiedState().peekSource(ITYPE_NAVIGATION_BAR)); + + // The modified frames can be updated while the animation is done. + mController.cancelExistingAnimations(); + assertEquals(newState.getSource(ITYPE_NAVIGATION_BAR), + mTestHost.getModifiedState().peekSource(ITYPE_NAVIGATION_BAR)); }); } diff --git a/core/tests/coretests/src/com/android/internal/os/KernelWakelockReaderTest.java b/core/tests/coretests/src/com/android/internal/os/KernelWakelockReaderTest.java index dc9208de7198..7306b45aaa98 100644 --- a/core/tests/coretests/src/com/android/internal/os/KernelWakelockReaderTest.java +++ b/core/tests/coretests/src/com/android/internal/os/KernelWakelockReaderTest.java @@ -16,14 +16,14 @@ package com.android.internal.os; +import android.system.suspend.internal.WakeLockInfo; + import androidx.test.filters.SmallTest; import junit.framework.TestCase; import java.nio.charset.Charset; -import android.system.suspend.WakeLockInfo; - public class KernelWakelockReaderTest extends TestCase { /** * Helper class that builds the mock Kernel module file /d/wakeup_sources. diff --git a/core/tests/uwbtests/Android.bp b/core/tests/uwbtests/Android.bp new file mode 100644 index 000000000000..c41c346b131a --- /dev/null +++ b/core/tests/uwbtests/Android.bp @@ -0,0 +1,28 @@ +// Copyright 2020 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. + +android_test { + name: "UwbManagerTests", + static_libs: [ + "androidx.test.ext.junit", + "androidx.test.rules", + ], + libs: [ + "android.test.runner", + ], + srcs: ["src/**/*.java"], + platform_apis: true, + certificate: "platform", + test_suites: ["device-tests"], +} diff --git a/core/tests/uwbtests/AndroidManifest.xml b/core/tests/uwbtests/AndroidManifest.xml new file mode 100644 index 000000000000..dc991ff636d2 --- /dev/null +++ b/core/tests/uwbtests/AndroidManifest.xml @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright 2020 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. +--> + +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="android.uwb"> + + <application> + <uses-library android:name="android.test.runner" /> + </application> + + <!-- This is a self-instrumenting test package. --> + <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner" + android:targetPackage="android.uwb" + android:label="UWB Manager Tests"> + </instrumentation> + +</manifest> + diff --git a/core/tests/uwbtests/AndroidTest.xml b/core/tests/uwbtests/AndroidTest.xml new file mode 100644 index 000000000000..ff4b668cc625 --- /dev/null +++ b/core/tests/uwbtests/AndroidTest.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright 2020 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. +--> +<configuration description="Config for UWB Manager test cases"> + <option name="test-suite-tag" value="apct"/> + <option name="test-suite-tag" value="apct-instrumentation"/> + <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller"> + <option name="cleanup-apks" value="true" /> + <option name="test-file-name" value="UwbManagerTests.apk" /> + </target_preparer> + + <option name="test-suite-tag" value="apct"/> + <option name="test-tag" value="UwbManagerTests"/> + + <test class="com.android.tradefed.testtype.AndroidJUnitTest" > + <option name="package" value="android.uwb" /> + <option name="hidden-api-checks" value="false"/> + <option name="runner" value="androidx.test.runner.AndroidJUnitRunner"/> + </test> +</configuration> diff --git a/core/tests/uwbtests/src/android/uwb/AngleMeasurementTest.java b/core/tests/uwbtests/src/android/uwb/AngleMeasurementTest.java new file mode 100644 index 000000000000..7769c28202f2 --- /dev/null +++ b/core/tests/uwbtests/src/android/uwb/AngleMeasurementTest.java @@ -0,0 +1,85 @@ +/* + * Copyright 2020 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.uwb; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; + +import android.os.Parcel; + +import androidx.test.ext.junit.runners.AndroidJUnit4; +import androidx.test.filters.SmallTest; + +import org.junit.Test; +import org.junit.runner.RunWith; + +/** + * Test of {@link AngleMeasurement}. + */ +@SmallTest +@RunWith(AndroidJUnit4.class) +public class AngleMeasurementTest { + private static final double EPSILON = 0.00000000001; + + @Test + public void testBuilder() { + double radians = 0.1234; + double errorRadians = 0.5678; + double confidence = 0.5; + + AngleMeasurement.Builder builder = new AngleMeasurement.Builder(); + tryBuild(builder, false); + + builder.setRadians(radians); + tryBuild(builder, false); + + builder.setErrorRadians(errorRadians); + tryBuild(builder, false); + + builder.setConfidenceLevel(confidence); + AngleMeasurement measurement = tryBuild(builder, true); + + assertEquals(measurement.getRadians(), radians, 0); + assertEquals(measurement.getErrorRadians(), errorRadians, 0); + assertEquals(measurement.getConfidenceLevel(), confidence, 0); + } + + private AngleMeasurement tryBuild(AngleMeasurement.Builder builder, boolean expectSuccess) { + AngleMeasurement measurement = null; + try { + measurement = builder.build(); + if (!expectSuccess) { + fail("Expected AngleMeasurement.Builder.build() to fail, but it succeeded"); + } + } catch (IllegalStateException e) { + if (expectSuccess) { + fail("Expected AngleMeasurement.Builder.build() to succeed, but it failed"); + } + } + return measurement; + } + + @Test + public void testParcel() { + Parcel parcel = Parcel.obtain(); + AngleMeasurement measurement = UwbTestUtils.getAngleMeasurement(); + measurement.writeToParcel(parcel, 0); + parcel.setDataPosition(0); + AngleMeasurement fromParcel = AngleMeasurement.CREATOR.createFromParcel(parcel); + assertEquals(measurement, fromParcel); + } +} diff --git a/core/tests/uwbtests/src/android/uwb/AngleOfArrivalMeasurementTest.java b/core/tests/uwbtests/src/android/uwb/AngleOfArrivalMeasurementTest.java new file mode 100644 index 000000000000..077b08f41b59 --- /dev/null +++ b/core/tests/uwbtests/src/android/uwb/AngleOfArrivalMeasurementTest.java @@ -0,0 +1,89 @@ +/* + * Copyright 2020 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.uwb; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; + +import android.os.Parcel; + +import androidx.test.ext.junit.runners.AndroidJUnit4; +import androidx.test.filters.SmallTest; + +import org.junit.Test; +import org.junit.runner.RunWith; + +/** + * Test of {@link AngleOfArrivalMeasurement}. + */ +@SmallTest +@RunWith(AndroidJUnit4.class) +public class AngleOfArrivalMeasurementTest { + + @Test + public void testBuilder() { + AngleMeasurement azimuth = UwbTestUtils.getAngleMeasurement(); + AngleMeasurement altitude = UwbTestUtils.getAngleMeasurement(); + + AngleOfArrivalMeasurement.Builder builder = new AngleOfArrivalMeasurement.Builder(); + tryBuild(builder, false); + + builder.setAltitudeAngleMeasurement(altitude); + tryBuild(builder, false); + + builder.setAzimuthAngleMeasurement(azimuth); + AngleOfArrivalMeasurement measurement = tryBuild(builder, true); + + assertEquals(azimuth, measurement.getAzimuth()); + assertEquals(altitude, measurement.getAltitude()); + } + + private AngleMeasurement getAngleMeasurement(double radian, double error, double confidence) { + return new AngleMeasurement.Builder() + .setRadians(radian) + .setErrorRadians(error) + .setConfidenceLevel(confidence) + .build(); + } + + private AngleOfArrivalMeasurement tryBuild(AngleOfArrivalMeasurement.Builder builder, + boolean expectSuccess) { + AngleOfArrivalMeasurement measurement = null; + try { + measurement = builder.build(); + if (!expectSuccess) { + fail("Expected AngleOfArrivalMeasurement.Builder.build() to fail"); + } + } catch (IllegalStateException e) { + if (expectSuccess) { + fail("Expected AngleOfArrivalMeasurement.Builder.build() to succeed"); + } + } + return measurement; + } + + @Test + public void testParcel() { + Parcel parcel = Parcel.obtain(); + AngleOfArrivalMeasurement measurement = UwbTestUtils.getAngleOfArrivalMeasurement(); + measurement.writeToParcel(parcel, 0); + parcel.setDataPosition(0); + AngleOfArrivalMeasurement fromParcel = + AngleOfArrivalMeasurement.CREATOR.createFromParcel(parcel); + assertEquals(measurement, fromParcel); + } +} diff --git a/core/tests/uwbtests/src/android/uwb/DistanceMeasurementTest.java b/core/tests/uwbtests/src/android/uwb/DistanceMeasurementTest.java new file mode 100644 index 000000000000..439c884723be --- /dev/null +++ b/core/tests/uwbtests/src/android/uwb/DistanceMeasurementTest.java @@ -0,0 +1,87 @@ +/* + * Copyright 2020 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.uwb; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; + +import android.os.Parcel; + +import androidx.test.ext.junit.runners.AndroidJUnit4; +import androidx.test.filters.SmallTest; + +import org.junit.Test; +import org.junit.runner.RunWith; + +/** + * Test of {@link DistanceMeasurement}. + */ +@SmallTest +@RunWith(AndroidJUnit4.class) +public class DistanceMeasurementTest { + private static final double EPSILON = 0.00000000001; + + @Test + public void testBuilder() { + double meters = 0.12; + double error = 0.54; + double confidence = 0.99; + + DistanceMeasurement.Builder builder = new DistanceMeasurement.Builder(); + tryBuild(builder, false); + + builder.setMeters(meters); + tryBuild(builder, false); + + builder.setErrorMeters(error); + tryBuild(builder, false); + + builder.setConfidenceLevel(confidence); + DistanceMeasurement measurement = tryBuild(builder, true); + + assertEquals(meters, measurement.getMeters(), 0); + assertEquals(error, measurement.getErrorMeters(), 0); + assertEquals(confidence, measurement.getConfidenceLevel(), 0); + } + + private DistanceMeasurement tryBuild(DistanceMeasurement.Builder builder, + boolean expectSuccess) { + DistanceMeasurement measurement = null; + try { + measurement = builder.build(); + if (!expectSuccess) { + fail("Expected DistanceMeasurement.Builder.build() to fail"); + } + } catch (IllegalStateException e) { + if (expectSuccess) { + fail("Expected DistanceMeasurement.Builder.build() to succeed"); + } + } + return measurement; + } + + @Test + public void testParcel() { + Parcel parcel = Parcel.obtain(); + DistanceMeasurement measurement = UwbTestUtils.getDistanceMeasurement(); + measurement.writeToParcel(parcel, 0); + parcel.setDataPosition(0); + DistanceMeasurement fromParcel = + DistanceMeasurement.CREATOR.createFromParcel(parcel); + assertEquals(measurement, fromParcel); + } +} diff --git a/core/tests/uwbtests/src/android/uwb/RangingMeasurementTest.java b/core/tests/uwbtests/src/android/uwb/RangingMeasurementTest.java new file mode 100644 index 000000000000..a7559d86221e --- /dev/null +++ b/core/tests/uwbtests/src/android/uwb/RangingMeasurementTest.java @@ -0,0 +1,95 @@ +/* + * Copyright 2020 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.uwb; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; + +import android.os.Parcel; +import android.os.SystemClock; + +import androidx.test.ext.junit.runners.AndroidJUnit4; +import androidx.test.filters.SmallTest; + +import org.junit.Test; +import org.junit.runner.RunWith; + +/** + * Test of {@link RangingMeasurement}. + */ +@SmallTest +@RunWith(AndroidJUnit4.class) +public class RangingMeasurementTest { + + @Test + public void testBuilder() { + int status = RangingMeasurement.RANGING_STATUS_SUCCESS; + UwbAddress address = UwbTestUtils.getUwbAddress(false); + long time = SystemClock.elapsedRealtimeNanos(); + AngleOfArrivalMeasurement angleMeasurement = UwbTestUtils.getAngleOfArrivalMeasurement(); + DistanceMeasurement distanceMeasurement = UwbTestUtils.getDistanceMeasurement(); + + RangingMeasurement.Builder builder = new RangingMeasurement.Builder(); + + builder.setStatus(status); + tryBuild(builder, false); + + builder.setElapsedRealtimeNanos(time); + tryBuild(builder, false); + + builder.setAngleOfArrivalMeasurement(angleMeasurement); + tryBuild(builder, false); + + builder.setDistanceMeasurement(distanceMeasurement); + tryBuild(builder, false); + + builder.setRemoteDeviceAddress(address); + RangingMeasurement measurement = tryBuild(builder, true); + + assertEquals(status, measurement.getStatus()); + assertEquals(address, measurement.getRemoteDeviceAddress()); + assertEquals(time, measurement.getElapsedRealtimeNanos()); + assertEquals(angleMeasurement, measurement.getAngleOfArrival()); + assertEquals(distanceMeasurement, measurement.getDistance()); + } + + private RangingMeasurement tryBuild(RangingMeasurement.Builder builder, + boolean expectSuccess) { + RangingMeasurement measurement = null; + try { + measurement = builder.build(); + if (!expectSuccess) { + fail("Expected RangingMeasurement.Builder.build() to fail"); + } + } catch (IllegalStateException e) { + if (expectSuccess) { + fail("Expected DistanceMeasurement.Builder.build() to succeed"); + } + } + return measurement; + } + + @Test + public void testParcel() { + Parcel parcel = Parcel.obtain(); + RangingMeasurement measurement = UwbTestUtils.getRangingMeasurement(); + measurement.writeToParcel(parcel, 0); + parcel.setDataPosition(0); + RangingMeasurement fromParcel = RangingMeasurement.CREATOR.createFromParcel(parcel); + assertEquals(measurement, fromParcel); + } +} diff --git a/core/tests/uwbtests/src/android/uwb/RangingParamsTest.java b/core/tests/uwbtests/src/android/uwb/RangingParamsTest.java new file mode 100644 index 000000000000..8095c995b8a9 --- /dev/null +++ b/core/tests/uwbtests/src/android/uwb/RangingParamsTest.java @@ -0,0 +1,99 @@ +/* + * Copyright 2020 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.uwb; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import android.os.Parcel; +import android.os.PersistableBundle; + +import androidx.test.ext.junit.runners.AndroidJUnit4; +import androidx.test.filters.SmallTest; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import java.time.Duration; + +/** + * Test of {@link RangingParams}. + */ +@SmallTest +@RunWith(AndroidJUnit4.class) +public class RangingParamsTest { + + @Test + public void testParams_Build() { + UwbAddress local = UwbAddress.fromBytes(new byte[] {(byte) 0xA0, (byte) 0x57}); + UwbAddress remote = UwbAddress.fromBytes(new byte[] {(byte) 0x4D, (byte) 0x8C}); + int channel = 9; + int rxPreamble = 16; + int txPreamble = 21; + boolean isController = true; + boolean isInitiator = false; + @RangingParams.StsPhyPacketType int stsPhyType = RangingParams.STS_PHY_PACKET_TYPE_SP2; + Duration samplePeriod = Duration.ofSeconds(1, 234); + PersistableBundle specParams = new PersistableBundle(); + specParams.putString("protocol", "some_protocol"); + + RangingParams params = new RangingParams.Builder() + .setChannelNumber(channel) + .setReceivePreambleCodeIndex(rxPreamble) + .setTransmitPreambleCodeIndex(txPreamble) + .setLocalDeviceAddress(local) + .addRemoteDeviceAddress(remote) + .setIsController(isController) + .setIsInitiator(isInitiator) + .setSamplePeriod(samplePeriod) + .setStsPhPacketType(stsPhyType) + .setSpecificationParameters(specParams) + .build(); + + assertEquals(params.getLocalDeviceAddress(), local); + assertEquals(params.getRemoteDeviceAddresses().size(), 1); + assertEquals(params.getRemoteDeviceAddresses().get(0), remote); + assertEquals(params.getChannelNumber(), channel); + assertEquals(params.isController(), isController); + assertEquals(params.isInitiator(), isInitiator); + assertEquals(params.getRxPreambleIndex(), rxPreamble); + assertEquals(params.getTxPreambleIndex(), txPreamble); + assertEquals(params.getStsPhyPacketType(), stsPhyType); + assertEquals(params.getSamplingPeriod(), samplePeriod); + assertTrue(params.getSpecificationParameters().kindofEquals(specParams)); + } + + @Test + public void testParcel() { + Parcel parcel = Parcel.obtain(); + RangingParams params = new RangingParams.Builder() + .setChannelNumber(9) + .setReceivePreambleCodeIndex(16) + .setTransmitPreambleCodeIndex(21) + .setLocalDeviceAddress(UwbTestUtils.getUwbAddress(false)) + .addRemoteDeviceAddress(UwbTestUtils.getUwbAddress(true)) + .setIsController(false) + .setIsInitiator(true) + .setSamplePeriod(Duration.ofSeconds(2)) + .setStsPhPacketType(RangingParams.STS_PHY_PACKET_TYPE_SP1) + .build(); + params.writeToParcel(parcel, 0); + parcel.setDataPosition(0); + RangingParams fromParcel = RangingParams.CREATOR.createFromParcel(parcel); + assertEquals(params, fromParcel); + } +} diff --git a/core/tests/uwbtests/src/android/uwb/RangingReportTest.java b/core/tests/uwbtests/src/android/uwb/RangingReportTest.java new file mode 100644 index 000000000000..64c48ba4b6f4 --- /dev/null +++ b/core/tests/uwbtests/src/android/uwb/RangingReportTest.java @@ -0,0 +1,90 @@ +/* + * Copyright 2020 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.uwb; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; + +import android.os.Parcel; + +import androidx.test.ext.junit.runners.AndroidJUnit4; +import androidx.test.filters.SmallTest; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import java.util.List; + +/** + * Test of {@link RangingReport}. + */ +@SmallTest +@RunWith(AndroidJUnit4.class) +public class RangingReportTest { + + @Test + public void testBuilder() { + List<RangingMeasurement> measurements = UwbTestUtils.getRangingMeasurements(5); + + RangingReport.Builder builder = new RangingReport.Builder(); + builder.addMeasurements(measurements); + RangingReport report = tryBuild(builder, true); + verifyMeasurementsEqual(measurements, report.getMeasurements()); + + + builder = new RangingReport.Builder(); + for (RangingMeasurement measurement : measurements) { + builder.addMeasurement(measurement); + } + report = tryBuild(builder, true); + verifyMeasurementsEqual(measurements, report.getMeasurements()); + } + + private void verifyMeasurementsEqual(List<RangingMeasurement> expected, + List<RangingMeasurement> actual) { + assertEquals(expected.size(), actual.size()); + for (int i = 0; i < expected.size(); i++) { + assertEquals(expected.get(i), actual.get(i)); + } + } + + private RangingReport tryBuild(RangingReport.Builder builder, + boolean expectSuccess) { + RangingReport report = null; + try { + report = builder.build(); + if (!expectSuccess) { + fail("Expected RangingReport.Builder.build() to fail"); + } + } catch (IllegalStateException e) { + if (expectSuccess) { + fail("Expected RangingReport.Builder.build() to succeed"); + } + } + return report; + } + + @Test + public void testParcel() { + Parcel parcel = Parcel.obtain(); + RangingReport report = UwbTestUtils.getRangingReports(5); + report.writeToParcel(parcel, 0); + parcel.setDataPosition(0); + RangingReport fromParcel = RangingReport.CREATOR.createFromParcel(parcel); + assertEquals(report, fromParcel); + } +} diff --git a/core/tests/uwbtests/src/android/uwb/UwbAddressTest.java b/core/tests/uwbtests/src/android/uwb/UwbAddressTest.java new file mode 100644 index 000000000000..ccc88a9a5399 --- /dev/null +++ b/core/tests/uwbtests/src/android/uwb/UwbAddressTest.java @@ -0,0 +1,79 @@ +/* + * Copyright 2020 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.uwb; + +import static org.junit.Assert.assertEquals; + +import android.os.Parcel; + +import androidx.test.ext.junit.runners.AndroidJUnit4; +import androidx.test.filters.SmallTest; + +import org.junit.Test; +import org.junit.runner.RunWith; + +/** + * Test of {@link UwbAddress}. + */ +@SmallTest +@RunWith(AndroidJUnit4.class) +public class UwbAddressTest { + + @Test + public void testFromBytes_Short() { + runFromBytes(UwbAddress.SHORT_ADDRESS_BYTE_LENGTH); + } + + @Test + public void testFromBytes_Extended() { + runFromBytes(UwbAddress.EXTENDED_ADDRESS_BYTE_LENGTH); + } + + private void runFromBytes(int len) { + byte[] addressBytes = getByteArray(len); + UwbAddress address = UwbAddress.fromBytes(addressBytes); + assertEquals(address.size(), len); + assertEquals(addressBytes, address.toBytes()); + } + + private byte[] getByteArray(int len) { + byte[] res = new byte[len]; + for (int i = 0; i < len; i++) { + res[i] = (byte) i; + } + return res; + } + + @Test + public void testParcel_Short() { + runParcel(true); + } + + @Test + public void testParcel_Extended() { + runParcel(false); + } + + private void runParcel(boolean useShortAddress) { + Parcel parcel = Parcel.obtain(); + UwbAddress address = UwbTestUtils.getUwbAddress(useShortAddress); + address.writeToParcel(parcel, 0); + parcel.setDataPosition(0); + UwbAddress fromParcel = UwbAddress.CREATOR.createFromParcel(parcel); + assertEquals(address, fromParcel); + } +} diff --git a/core/tests/uwbtests/src/android/uwb/UwbTestUtils.java b/core/tests/uwbtests/src/android/uwb/UwbTestUtils.java new file mode 100644 index 000000000000..62e0b629539b --- /dev/null +++ b/core/tests/uwbtests/src/android/uwb/UwbTestUtils.java @@ -0,0 +1,92 @@ +/* + * Copyright 2020 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.uwb; + +import android.os.SystemClock; + +import java.util.ArrayList; +import java.util.List; + +public class UwbTestUtils { + private UwbTestUtils() {} + + public static AngleMeasurement getAngleMeasurement() { + return new AngleMeasurement.Builder() + .setRadians(getDoubleInRange(-Math.PI, Math.PI)) + .setErrorRadians(getDoubleInRange(0, Math.PI)) + .setConfidenceLevel(getDoubleInRange(0, 1)) + .build(); + } + + public static AngleOfArrivalMeasurement getAngleOfArrivalMeasurement() { + return new AngleOfArrivalMeasurement.Builder() + .setAltitudeAngleMeasurement(getAngleMeasurement()) + .setAzimuthAngleMeasurement(getAngleMeasurement()) + .build(); + } + + public static DistanceMeasurement getDistanceMeasurement() { + return new DistanceMeasurement.Builder() + .setMeters(getDoubleInRange(0, 100)) + .setErrorMeters(getDoubleInRange(0, 10)) + .setConfidenceLevel(getDoubleInRange(0, 1)) + .build(); + } + + public static RangingMeasurement getRangingMeasurement() { + return getRangingMeasurement(getUwbAddress(false)); + } + + public static RangingMeasurement getRangingMeasurement(UwbAddress address) { + return new RangingMeasurement.Builder() + .setDistanceMeasurement(getDistanceMeasurement()) + .setAngleOfArrivalMeasurement(getAngleOfArrivalMeasurement()) + .setElapsedRealtimeNanos(SystemClock.elapsedRealtimeNanos()) + .setRemoteDeviceAddress(address != null ? address : getUwbAddress(false)) + .setStatus(RangingMeasurement.RANGING_STATUS_SUCCESS) + .build(); + } + + public static List<RangingMeasurement> getRangingMeasurements(int num) { + List<RangingMeasurement> result = new ArrayList<>(); + for (int i = 0; i < num; i++) { + result.add(getRangingMeasurement()); + } + return result; + } + + public static RangingReport getRangingReports(int numMeasurements) { + RangingReport.Builder builder = new RangingReport.Builder(); + for (int i = 0; i < numMeasurements; i++) { + builder.addMeasurement(getRangingMeasurement()); + } + return builder.build(); + } + + private static double getDoubleInRange(double min, double max) { + return min + (max - min) * Math.random(); + } + + public static UwbAddress getUwbAddress(boolean isShortAddress) { + byte[] addressBytes = new byte[isShortAddress ? UwbAddress.SHORT_ADDRESS_BYTE_LENGTH : + UwbAddress.EXTENDED_ADDRESS_BYTE_LENGTH]; + for (int i = 0; i < addressBytes.length; i++) { + addressBytes[i] = (byte) getDoubleInRange(1, 255); + } + return UwbAddress.fromBytes(addressBytes); + } +} diff --git a/graphics/java/android/graphics/Bitmap.java b/graphics/java/android/graphics/Bitmap.java index f7877590869a..592c5ebb4d4b 100644 --- a/graphics/java/android/graphics/Bitmap.java +++ b/graphics/java/android/graphics/Bitmap.java @@ -80,7 +80,7 @@ public final class Bitmap implements Parcelable { @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 123769491) private byte[] mNinePatchChunk; // may be null - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private NinePatch.InsetStruct mNinePatchInsets; // may be null @UnsupportedAppUsage private int mWidth; @@ -185,7 +185,7 @@ public final class Bitmap implements Parcelable { * width/height values */ @SuppressWarnings("unused") // called from JNI - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) void reinit(int width, int height, boolean requestPremultiplied) { mWidth = width; mHeight = height; diff --git a/graphics/java/android/graphics/BitmapFactory.java b/graphics/java/android/graphics/BitmapFactory.java index bad487b47682..ef1e7bfc6651 100644 --- a/graphics/java/android/graphics/BitmapFactory.java +++ b/graphics/java/android/graphics/BitmapFactory.java @@ -23,6 +23,7 @@ import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; import android.content.res.AssetManager; import android.content.res.Resources; +import android.os.Build; import android.os.Trace; import android.util.DisplayMetrics; import android.util.Log; @@ -875,7 +876,7 @@ public class BitmapFactory { @UnsupportedAppUsage private static native Bitmap nativeDecodeFileDescriptor(FileDescriptor fd, Rect padding, Options opts, long inBitmapHandle, long colorSpaceHandle); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static native Bitmap nativeDecodeAsset(long nativeAsset, Rect padding, Options opts, long inBitmapHandle, long colorSpaceHandle); @UnsupportedAppUsage diff --git a/graphics/java/android/graphics/Canvas.java b/graphics/java/android/graphics/Canvas.java index d949444d44d6..9b42b5cf3158 100644 --- a/graphics/java/android/graphics/Canvas.java +++ b/graphics/java/android/graphics/Canvas.java @@ -1397,7 +1397,7 @@ public class Canvas extends BaseCanvas { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void release() { mNativeCanvasWrapper = 0; if (mFinalizer != null) { @@ -1421,7 +1421,7 @@ public class Canvas extends BaseCanvas { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static void freeTextLayoutCaches() { nFreeTextLayoutCaches(); } diff --git a/graphics/java/android/graphics/CanvasProperty.java b/graphics/java/android/graphics/CanvasProperty.java index 4263772c1c2c..e949584b0659 100644 --- a/graphics/java/android/graphics/CanvasProperty.java +++ b/graphics/java/android/graphics/CanvasProperty.java @@ -17,6 +17,7 @@ package android.graphics; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import com.android.internal.util.VirtualRefBasePtr; @@ -28,12 +29,12 @@ public final class CanvasProperty<T> { private VirtualRefBasePtr mProperty; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static CanvasProperty<Float> createFloat(float initialValue) { return new CanvasProperty<Float>(nCreateFloat(initialValue)); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static CanvasProperty<Paint> createPaint(Paint initialValue) { return new CanvasProperty<Paint>(nCreatePaint(initialValue.getNativeInstance())); } diff --git a/graphics/java/android/graphics/ColorMatrixColorFilter.java b/graphics/java/android/graphics/ColorMatrixColorFilter.java index a8b18a9fcb1f..90ff1899f34d 100644 --- a/graphics/java/android/graphics/ColorMatrixColorFilter.java +++ b/graphics/java/android/graphics/ColorMatrixColorFilter.java @@ -19,6 +19,7 @@ package android.graphics; import android.annotation.NonNull; import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; /** * A color filter that transforms colors through a 4x5 color matrix. This filter @@ -107,7 +108,7 @@ public class ColorMatrixColorFilter extends ColorFilter { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setColorMatrixArray(@Nullable float[] array) { // called '...Array' so that passing null isn't ambiguous discardNativeInstance(); diff --git a/graphics/java/android/graphics/FontListParser.java b/graphics/java/android/graphics/FontListParser.java index c146bbd4441b..0782f8dfd9d3 100644 --- a/graphics/java/android/graphics/FontListParser.java +++ b/graphics/java/android/graphics/FontListParser.java @@ -18,6 +18,7 @@ package android.graphics; import android.compat.annotation.UnsupportedAppUsage; import android.graphics.fonts.FontVariationAxis; +import android.os.Build; import android.text.FontConfig; import android.util.Xml; @@ -38,7 +39,7 @@ import java.util.regex.Pattern; public class FontListParser { /* Parse fallback list (no names) */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static FontConfig parse(InputStream in) throws XmlPullParserException, IOException { return parse(in, "/system/fonts"); } diff --git a/graphics/java/android/graphics/GraphicBuffer.java b/graphics/java/android/graphics/GraphicBuffer.java index 0430847857b6..ec6b28115ac3 100644 --- a/graphics/java/android/graphics/GraphicBuffer.java +++ b/graphics/java/android/graphics/GraphicBuffer.java @@ -18,6 +18,7 @@ package android.graphics; import android.compat.annotation.UnsupportedAppUsage; import android.hardware.HardwareBuffer; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -55,7 +56,7 @@ public class GraphicBuffer implements Parcelable { private final int mFormat; private final int mUsage; // Note: do not rename, this field is used by native code - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final long mNativeObject; // These two fields are only used by lock/unlockCanvas() @@ -87,7 +88,7 @@ public class GraphicBuffer implements Parcelable { /** * Private use only. See {@link #create(int, int, int, int)}. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private GraphicBuffer(int width, int height, int format, int usage, long nativeObject) { mWidth = width; mHeight = height; diff --git a/graphics/java/android/graphics/LightingColorFilter.java b/graphics/java/android/graphics/LightingColorFilter.java index 221dfa192795..df91c5d492bd 100644 --- a/graphics/java/android/graphics/LightingColorFilter.java +++ b/graphics/java/android/graphics/LightingColorFilter.java @@ -23,6 +23,7 @@ package android.graphics; import android.annotation.ColorInt; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; /** * A color filter that can be used to simulate simple lighting effects. @@ -73,7 +74,7 @@ public class LightingColorFilter extends ColorFilter { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setColorMultiply(@ColorInt int mul) { if (mMul != mul) { mMul = mul; @@ -99,7 +100,7 @@ public class LightingColorFilter extends ColorFilter { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setColorAdd(@ColorInt int add) { if (mAdd != add) { mAdd = add; diff --git a/graphics/java/android/graphics/LinearGradient.java b/graphics/java/android/graphics/LinearGradient.java index 3f3ad967fe97..30b518ee4248 100644 --- a/graphics/java/android/graphics/LinearGradient.java +++ b/graphics/java/android/graphics/LinearGradient.java @@ -21,20 +21,21 @@ import android.annotation.ColorLong; import android.annotation.NonNull; import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; public class LinearGradient extends Shader { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private float mX0; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private float mY0; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private float mX1; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private float mY1; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private float[] mPositions; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private TileMode mTileMode; // @ColorInts are replaced by @ColorLongs, but these remain due to @UnsupportedAppUsage. @@ -44,7 +45,7 @@ public class LinearGradient extends Shader { @UnsupportedAppUsage @ColorInt private int mColor0; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @ColorInt private int mColor1; diff --git a/graphics/java/android/graphics/Movie.java b/graphics/java/android/graphics/Movie.java index 4b3924f0d55f..9c9535d16aab 100644 --- a/graphics/java/android/graphics/Movie.java +++ b/graphics/java/android/graphics/Movie.java @@ -28,7 +28,7 @@ import java.io.InputStream; */ @Deprecated public class Movie { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private long mNativeMovie; @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) diff --git a/graphics/java/android/graphics/Paint.java b/graphics/java/android/graphics/Paint.java index 3b586242e5b1..9dd6e92a0fde 100644 --- a/graphics/java/android/graphics/Paint.java +++ b/graphics/java/android/graphics/Paint.java @@ -53,7 +53,7 @@ import java.util.Locale; */ public class Paint { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private long mNativePaint; private long mNativeShader; private long mNativeColorFilter; diff --git a/graphics/java/android/graphics/Path.java b/graphics/java/android/graphics/Path.java index 84fe39290681..5e11074338f1 100644 --- a/graphics/java/android/graphics/Path.java +++ b/graphics/java/android/graphics/Path.java @@ -21,6 +21,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.Size; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import dalvik.annotation.optimization.CriticalNative; import dalvik.annotation.optimization.FastNative; @@ -48,12 +49,12 @@ public class Path { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isSimplePath = true; /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Region rects; private Direction mLastDirection = null; diff --git a/graphics/java/android/graphics/PorterDuffColorFilter.java b/graphics/java/android/graphics/PorterDuffColorFilter.java index 50ecb62e7fcc..0700f217ecf0 100644 --- a/graphics/java/android/graphics/PorterDuffColorFilter.java +++ b/graphics/java/android/graphics/PorterDuffColorFilter.java @@ -19,6 +19,7 @@ package android.graphics; import android.annotation.ColorInt; import android.annotation.NonNull; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; /** * A color filter that can be used to tint the source pixels using a single @@ -64,7 +65,7 @@ public class PorterDuffColorFilter extends ColorFilter { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public PorterDuff.Mode getMode() { return mMode; } diff --git a/graphics/java/android/graphics/RadialGradient.java b/graphics/java/android/graphics/RadialGradient.java index 96b7b9a78ba8..efe5e9de19b6 100644 --- a/graphics/java/android/graphics/RadialGradient.java +++ b/graphics/java/android/graphics/RadialGradient.java @@ -21,27 +21,28 @@ import android.annotation.ColorLong; import android.annotation.NonNull; import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; public class RadialGradient extends Shader { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private float mX; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private float mY; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private float mRadius; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private float[] mPositions; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private TileMode mTileMode; // @ColorInts are replaced by @ColorLongs, but these remain due to @UnsupportedAppUsage. - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @ColorInt private int[] mColors; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @ColorInt private int mCenterColor; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @ColorInt private int mEdgeColor; diff --git a/graphics/java/android/graphics/Region.java b/graphics/java/android/graphics/Region.java index 43373ffbd3f4..29708738d2db 100644 --- a/graphics/java/android/graphics/Region.java +++ b/graphics/java/android/graphics/Region.java @@ -18,6 +18,7 @@ package android.graphics; import android.annotation.NonNull; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.util.Pools.SynchronizedPool; @@ -32,7 +33,7 @@ public class Region implements Parcelable { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public long mNativeRegion; // the native values for these must match up with the enum in SkRegion.h @@ -337,7 +338,7 @@ public class Region implements Parcelable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void recycle() { setEmpty(); sPool.release(this); @@ -411,7 +412,7 @@ public class Region implements Parcelable { /* Add an unused parameter so constructor can be called from jni without triggering 'not cloneable' exception */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private Region(long ni, int unused) { this(ni); } diff --git a/graphics/java/android/graphics/SurfaceTexture.java b/graphics/java/android/graphics/SurfaceTexture.java index 228d03a1dd10..7a2e5843ffc7 100644 --- a/graphics/java/android/graphics/SurfaceTexture.java +++ b/graphics/java/android/graphics/SurfaceTexture.java @@ -18,6 +18,7 @@ package android.graphics; import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Handler; import android.os.Looper; import android.os.Message; @@ -69,17 +70,17 @@ import java.lang.ref.WeakReference; */ public class SurfaceTexture { private final Looper mCreatorLooper; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private Handler mOnFrameAvailableHandler; /** * These fields are used by native code, do not access or modify. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private long mSurfaceTexture; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private long mProducer; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private long mFrameAvailableListener; private boolean mIsSingleBuffered; @@ -390,7 +391,7 @@ public class SurfaceTexture { * This method is invoked from native code only. */ @SuppressWarnings({"UnusedDeclaration"}) - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static void postEventFromNative(WeakReference<SurfaceTexture> weakSelf) { SurfaceTexture st = weakSelf.get(); if (st != null) { diff --git a/graphics/java/android/graphics/SweepGradient.java b/graphics/java/android/graphics/SweepGradient.java index 08520048b787..a8efc2365d04 100644 --- a/graphics/java/android/graphics/SweepGradient.java +++ b/graphics/java/android/graphics/SweepGradient.java @@ -21,23 +21,24 @@ import android.annotation.ColorLong; import android.annotation.NonNull; import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; public class SweepGradient extends Shader { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private float mCx; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private float mCy; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private float[] mPositions; // @ColorInts are replaced by @ColorLongs, but these remain due to @UnsupportedAppUsage. - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @ColorInt private int[] mColors; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @ColorInt private int mColor0; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @ColorInt private int mColor1; diff --git a/graphics/java/android/graphics/Typeface.java b/graphics/java/android/graphics/Typeface.java index a2dd9a8322b6..bc1301a86455 100644 --- a/graphics/java/android/graphics/Typeface.java +++ b/graphics/java/android/graphics/Typeface.java @@ -1217,7 +1217,7 @@ public class Typeface { long native_instance, List<FontVariationAxis> axes); @UnsupportedAppUsage private static native long nativeCreateWeightAlias(long native_instance, int weight); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static native long nativeCreateFromArray(long[] familyArray, int weight, int italic); private static native int[] nativeGetSupportedAxes(long native_instance); diff --git a/graphics/java/android/graphics/Xfermode.java b/graphics/java/android/graphics/Xfermode.java index e79fb76d806e..81769e2e21bf 100644 --- a/graphics/java/android/graphics/Xfermode.java +++ b/graphics/java/android/graphics/Xfermode.java @@ -22,6 +22,7 @@ package android.graphics; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; /** * Xfermode is the base class for objects that are called to implement custom @@ -32,6 +33,6 @@ import android.compat.annotation.UnsupportedAppUsage; */ public class Xfermode { static final int DEFAULT = PorterDuff.Mode.SRC_OVER.nativeInt; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) int porterDuffMode = DEFAULT; } diff --git a/graphics/java/android/graphics/drawable/AnimatedStateListDrawable.java b/graphics/java/android/graphics/drawable/AnimatedStateListDrawable.java index 06159d8a0558..33a6d38b698d 100644 --- a/graphics/java/android/graphics/drawable/AnimatedStateListDrawable.java +++ b/graphics/java/android/graphics/drawable/AnimatedStateListDrawable.java @@ -561,9 +561,9 @@ public class AnimatedStateListDrawable extends StateListDrawable { int[] mAnimThemeAttrs; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) LongSparseLongArray mTransitions; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) SparseIntArray mStateIds; AnimatedStateListState(@Nullable AnimatedStateListState orig, diff --git a/graphics/java/android/graphics/drawable/AnimatedVectorDrawable.java b/graphics/java/android/graphics/drawable/AnimatedVectorDrawable.java index 9fb72cf08b51..e79ada6b1c21 100644 --- a/graphics/java/android/graphics/drawable/AnimatedVectorDrawable.java +++ b/graphics/java/android/graphics/drawable/AnimatedVectorDrawable.java @@ -317,7 +317,7 @@ public class AnimatedVectorDrawable extends Drawable implements Animatable2 { */ private Resources mRes; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private AnimatedVectorDrawableState mAnimatedVectorState; /** The animator set that is parsed from the xml. */ @@ -1782,7 +1782,7 @@ public class AnimatedVectorDrawable extends Drawable implements Animatable2 { } // onFinished: should be called from native - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static void callOnFinished(VectorDrawableAnimatorRT set, int id) { set.mHandler.post(() -> set.onAnimationEnd(id)); } diff --git a/graphics/java/android/graphics/drawable/ColorDrawable.java b/graphics/java/android/graphics/drawable/ColorDrawable.java index e93e7dfbe22c..8d1a98cdfe68 100644 --- a/graphics/java/android/graphics/drawable/ColorDrawable.java +++ b/graphics/java/android/graphics/drawable/ColorDrawable.java @@ -34,6 +34,7 @@ import android.graphics.Outline; import android.graphics.Paint; import android.graphics.PixelFormat; import android.graphics.Xfermode; +import android.os.Build; import android.util.AttributeSet; import android.view.ViewDebug; @@ -53,7 +54,7 @@ import java.io.IOException; * @attr ref android.R.styleable#ColorDrawable_color */ public class ColorDrawable extends Drawable { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); @ViewDebug.ExportedProperty(deepExport = true, prefix = "state_") diff --git a/graphics/java/android/graphics/drawable/Drawable.java b/graphics/java/android/graphics/drawable/Drawable.java index 9cf12f121e0a..3a3da5029142 100644 --- a/graphics/java/android/graphics/drawable/Drawable.java +++ b/graphics/java/android/graphics/drawable/Drawable.java @@ -46,6 +46,7 @@ import android.graphics.PorterDuffColorFilter; import android.graphics.Rect; import android.graphics.Region; import android.graphics.Xfermode; +import android.os.Build; import android.os.Trace; import android.util.AttributeSet; import android.util.DisplayMetrics; @@ -1719,7 +1720,7 @@ public abstract class Drawable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static BlendMode parseBlendMode(int value, BlendMode defaultMode) { switch (value) { case 3: return BlendMode.SRC_OVER; diff --git a/graphics/java/android/graphics/drawable/DrawableInflater.java b/graphics/java/android/graphics/drawable/DrawableInflater.java index 3408b64e7536..66752a2536d3 100644 --- a/graphics/java/android/graphics/drawable/DrawableInflater.java +++ b/graphics/java/android/graphics/drawable/DrawableInflater.java @@ -23,6 +23,7 @@ import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.content.res.Resources; import android.content.res.Resources.Theme; +import android.os.Build; import android.util.AttributeSet; import android.view.InflateException; @@ -50,7 +51,7 @@ public final class DrawableInflater { new HashMap<>(); private final Resources mRes; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final ClassLoader mClassLoader; /** diff --git a/graphics/java/android/graphics/drawable/DrawableWrapper.java b/graphics/java/android/graphics/drawable/DrawableWrapper.java index e197e7123fed..1054f92d2569 100644 --- a/graphics/java/android/graphics/drawable/DrawableWrapper.java +++ b/graphics/java/android/graphics/drawable/DrawableWrapper.java @@ -32,6 +32,7 @@ import android.graphics.Outline; import android.graphics.PixelFormat; import android.graphics.Rect; import android.graphics.Xfermode; +import android.os.Build; import android.util.AttributeSet; import android.util.DisplayMetrics; import android.view.View; @@ -47,7 +48,7 @@ import java.io.IOException; * Drawable container with only one child element. */ public abstract class DrawableWrapper extends Drawable implements Drawable.Callback { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private DrawableWrapperState mState; private Drawable mDrawable; private boolean mMutated; diff --git a/graphics/java/android/graphics/drawable/Icon.java b/graphics/java/android/graphics/drawable/Icon.java index cc7182c3fd1c..ec30a2e7d366 100644 --- a/graphics/java/android/graphics/drawable/Icon.java +++ b/graphics/java/android/graphics/drawable/Icon.java @@ -169,7 +169,7 @@ public final class Icon implements Parcelable { * @return The length of the compressed bitmap byte array held by this {@link #TYPE_DATA} Icon. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getDataLength() { if (mType != TYPE_DATA) { throw new IllegalStateException("called getDataLength() on " + this); @@ -597,7 +597,7 @@ public final class Icon implements Parcelable { * Version of createWithResource that takes Resources. Do not use. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static Icon createWithResource(Resources res, @DrawableRes int resId) { if (res == null) { throw new IllegalArgumentException("Resource must not be null."); @@ -769,7 +769,7 @@ public final class Icon implements Parcelable { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean hasTint() { return (mTintList != null) || (mBlendMode != DEFAULT_BLEND_MODE); } diff --git a/graphics/java/android/graphics/drawable/InsetDrawable.java b/graphics/java/android/graphics/drawable/InsetDrawable.java index 005a4d175fd5..87c0a061c9f2 100644 --- a/graphics/java/android/graphics/drawable/InsetDrawable.java +++ b/graphics/java/android/graphics/drawable/InsetDrawable.java @@ -27,6 +27,7 @@ import android.graphics.Insets; import android.graphics.Outline; import android.graphics.PixelFormat; import android.graphics.Rect; +import android.os.Build; import android.util.AttributeSet; import android.util.DisplayMetrics; import android.util.TypedValue; @@ -58,7 +59,7 @@ public class InsetDrawable extends DrawableWrapper { private final Rect mTmpRect = new Rect(); private final Rect mTmpInsetRect = new Rect(); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private InsetState mState; /** diff --git a/graphics/java/android/graphics/drawable/LayerDrawable.java b/graphics/java/android/graphics/drawable/LayerDrawable.java index fb4146f04bc9..3288bc80b5f0 100644 --- a/graphics/java/android/graphics/drawable/LayerDrawable.java +++ b/graphics/java/android/graphics/drawable/LayerDrawable.java @@ -30,6 +30,7 @@ import android.graphics.ColorFilter; import android.graphics.Outline; import android.graphics.PixelFormat; import android.graphics.Rect; +import android.os.Build; import android.util.AttributeSet; import android.util.DisplayMetrics; import android.util.LayoutDirection; @@ -434,7 +435,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { * @param layer The layer to add. * @return The index of the layer. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) int addLayer(@NonNull ChildDrawable layer) { final LayerState st = mLayerState; final int N = st.mChildren != null ? st.mChildren.length : 0; diff --git a/graphics/java/android/graphics/drawable/RippleDrawable.java b/graphics/java/android/graphics/drawable/RippleDrawable.java index e5e4d4527fca..635f6c66985c 100644 --- a/graphics/java/android/graphics/drawable/RippleDrawable.java +++ b/graphics/java/android/graphics/drawable/RippleDrawable.java @@ -36,6 +36,7 @@ import android.graphics.PorterDuff; import android.graphics.PorterDuffColorFilter; import android.graphics.Rect; import android.graphics.Shader; +import android.os.Build; import android.util.AttributeSet; import com.android.internal.R; @@ -121,7 +122,7 @@ public class RippleDrawable extends LayerDrawable { private final Rect mDirtyBounds = new Rect(); /** Mirrors mLayerState with some extra information. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private RippleState mState; /** The masking layer, e.g. the layer with id R.id.mask. */ @@ -159,7 +160,7 @@ public class RippleDrawable extends LayerDrawable { private Paint mRipplePaint; /** Target density of the display into which ripples are drawn. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private int mDensity; /** Whether bounds are being overridden. */ @@ -980,7 +981,7 @@ public class RippleDrawable extends LayerDrawable { static class RippleState extends LayerState { int[] mTouchThemeAttrs; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) ColorStateList mColor = ColorStateList.valueOf(Color.MAGENTA); int mMaxRadius = RADIUS_AUTO; diff --git a/graphics/java/android/graphics/drawable/ScaleDrawable.java b/graphics/java/android/graphics/drawable/ScaleDrawable.java index af7eed4b3897..7e246e552bec 100644 --- a/graphics/java/android/graphics/drawable/ScaleDrawable.java +++ b/graphics/java/android/graphics/drawable/ScaleDrawable.java @@ -25,6 +25,7 @@ import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.PixelFormat; import android.graphics.Rect; +import android.os.Build; import android.util.AttributeSet; import android.util.TypedValue; import android.view.Gravity; @@ -67,7 +68,7 @@ public class ScaleDrawable extends DrawableWrapper { private final Rect mTmpRect = new Rect(); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private ScaleState mState; ScaleDrawable() { diff --git a/graphics/java/android/graphics/drawable/StateListDrawable.java b/graphics/java/android/graphics/drawable/StateListDrawable.java index 2920acbe514c..16691d4b8384 100644 --- a/graphics/java/android/graphics/drawable/StateListDrawable.java +++ b/graphics/java/android/graphics/drawable/StateListDrawable.java @@ -22,6 +22,7 @@ import android.compat.annotation.UnsupportedAppUsage; import android.content.res.Resources; import android.content.res.Resources.Theme; import android.content.res.TypedArray; +import android.os.Build; import android.util.AttributeSet; import android.util.StateSet; @@ -131,7 +132,7 @@ public class StateListDrawable extends DrawableContainer { /** * Updates the constant state from the values in the typed array. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private void updateStateFromTypedArray(TypedArray a) { final StateListState state = mStateListState; @@ -209,7 +210,7 @@ public class StateListDrawable extends DrawableContainer { * @param attrs The attribute set. * @return An array of state_ attributes. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) int[] extractStateSet(AttributeSet attrs) { int j = 0; final int numAttrs = attrs.getAttributeCount(); diff --git a/graphics/java/android/graphics/drawable/VectorDrawable.java b/graphics/java/android/graphics/drawable/VectorDrawable.java index e6fa866df3ab..db945a110180 100644 --- a/graphics/java/android/graphics/drawable/VectorDrawable.java +++ b/graphics/java/android/graphics/drawable/VectorDrawable.java @@ -34,6 +34,7 @@ import android.graphics.PorterDuff; import android.graphics.PorterDuffColorFilter; import android.graphics.Rect; import android.graphics.Shader; +import android.os.Build; import android.os.Trace; import android.util.ArrayMap; import android.util.AttributeSet; @@ -324,7 +325,7 @@ public class VectorDrawable extends Drawable { private VectorDrawableState mVectorState; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private PorterDuffColorFilter mTintFilter; private BlendModeColorFilter mBlendModeColorFilter; diff --git a/graphics/java/android/graphics/fonts/FontVariationAxis.java b/graphics/java/android/graphics/fonts/FontVariationAxis.java index 4e6580ea5f53..7bd581723d18 100644 --- a/graphics/java/android/graphics/fonts/FontVariationAxis.java +++ b/graphics/java/android/graphics/fonts/FontVariationAxis.java @@ -33,7 +33,7 @@ public final class FontVariationAxis { @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) private final int mTag; private final String mTagString; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final float mStyleValue; /** diff --git a/graphics/java/android/graphics/pdf/PdfRenderer.java b/graphics/java/android/graphics/pdf/PdfRenderer.java index 54710e58687c..720d5730b873 100644 --- a/graphics/java/android/graphics/pdf/PdfRenderer.java +++ b/graphics/java/android/graphics/pdf/PdfRenderer.java @@ -25,6 +25,7 @@ import android.graphics.Bitmap.Config; import android.graphics.Matrix; import android.graphics.Point; import android.graphics.Rect; +import android.os.Build; import android.os.ParcelFileDescriptor; import android.system.ErrnoException; import android.system.Os; @@ -121,7 +122,7 @@ public final class PdfRenderer implements AutoCloseable { private ParcelFileDescriptor mInput; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private Page mCurrentPage; /** @hide */ @@ -246,7 +247,7 @@ public final class PdfRenderer implements AutoCloseable { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private void doClose() { if (mCurrentPage != null) { mCurrentPage.close(); diff --git a/keystore/java/android/security/Credentials.java b/keystore/java/android/security/Credentials.java index 2162b8ac4885..7abcfdc98bc6 100644 --- a/keystore/java/android/security/Credentials.java +++ b/keystore/java/android/security/Credentials.java @@ -17,6 +17,7 @@ package android.security; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import com.android.org.bouncycastle.util.io.pem.PemObject; import com.android.org.bouncycastle.util.io.pem.PemReader; @@ -163,7 +164,7 @@ public class Credentials { * Convert objects to a PEM format which is used for * CA_CERTIFICATE and USER_CERTIFICATE entries. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static byte[] convertToPem(Certificate... objects) throws IOException, CertificateEncodingException { ByteArrayOutputStream bao = new ByteArrayOutputStream(); diff --git a/keystore/java/android/security/KeyStore.java b/keystore/java/android/security/KeyStore.java index 88b614dc7eef..c70c986fcd6b 100644 --- a/keystore/java/android/security/KeyStore.java +++ b/keystore/java/android/security/KeyStore.java @@ -71,7 +71,7 @@ public class KeyStore { private static final String TAG = "KeyStore"; // ResponseCodes - see system/security/keystore/include/keystore/keystore.h - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int NO_ERROR = 1; public static final int LOCKED = 2; public static final int UNINITIALIZED = 3; @@ -191,7 +191,7 @@ public class KeyStore { return mToken; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public State state(int userId) { final int ret; try { @@ -222,7 +222,7 @@ public class KeyStore { return get(key, uid, false); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public byte[] get(String key) { return get(key, UID_SELF); } @@ -282,7 +282,7 @@ public class KeyStore { return ret == NO_ERROR || ret == KEY_NOT_FOUND; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean delete(String key) { return delete(key, UID_SELF); } @@ -319,7 +319,7 @@ public class KeyStore { * List uids of all keys that are auth bound to the current user. * Only system is allowed to call this method. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int[] listUidsOfAuthBoundKeys() { // uids are returned as a list of strings because list of integers // as an output parameter is not supported by aidl-cpp. @@ -386,7 +386,7 @@ public class KeyStore { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean unlock(String password) { return unlock(UserHandle.getUserId(Process.myUid()), password); } @@ -1262,7 +1262,7 @@ public class KeyStore { * Returns a {@link KeyStoreException} corresponding to the provided keystore/keymaster error * code. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static KeyStoreException getKeyStoreException(int errorCode) { if (errorCode > 0) { // KeyStore layer error diff --git a/keystore/java/android/security/keystore/KeyProperties.java b/keystore/java/android/security/keystore/KeyProperties.java index c58a1236d475..9050c695eba7 100644 --- a/keystore/java/android/security/keystore/KeyProperties.java +++ b/keystore/java/android/security/keystore/KeyProperties.java @@ -496,10 +496,16 @@ public abstract class KeyProperties { */ public static final String SIGNATURE_PADDING_RSA_PSS = "PSS"; - static abstract class SignaturePadding { + /** + * @hide + */ + public abstract static class SignaturePadding { private SignaturePadding() {} - static int toKeymaster(@NonNull @SignaturePaddingEnum String padding) { + /** + * @hide + */ + public static int toKeymaster(@NonNull @SignaturePaddingEnum String padding) { switch (padding.toUpperCase(Locale.US)) { case SIGNATURE_PADDING_RSA_PKCS1: return KeymasterDefs.KM_PAD_RSA_PKCS1_1_5_SIGN; @@ -512,7 +518,7 @@ public abstract class KeyProperties { } @NonNull - static @SignaturePaddingEnum String fromKeymaster(int padding) { + public static @SignaturePaddingEnum String fromKeymaster(int padding) { switch (padding) { case KeymasterDefs.KM_PAD_RSA_PKCS1_1_5_SIGN: return SIGNATURE_PADDING_RSA_PKCS1; @@ -524,7 +530,7 @@ public abstract class KeyProperties { } @NonNull - static int[] allToKeymaster(@Nullable @SignaturePaddingEnum String[] paddings) { + public static int[] allToKeymaster(@Nullable @SignaturePaddingEnum String[] paddings) { if ((paddings == null) || (paddings.length == 0)) { return EmptyArray.INT; } @@ -771,4 +777,84 @@ public abstract class KeyProperties { } return result; } + + /** + * @hide + */ + @Retention(RetentionPolicy.SOURCE) + @IntDef(prefix = { "SECURITY_LEVEL_" }, value = { + SECURITY_LEVEL_UNKNOWN, + SECURITY_LEVEL_UNKNOWN_SECURE, + SECURITY_LEVEL_SOFTWARE, + SECURITY_LEVEL_TRUSTED_ENVIRONMENT, + SECURITY_LEVEL_STRONGBOX, + }) + public @interface SecurityLevelEnum {} + + /** + * This security level indicates that no assumptions can be made about the security level of the + * respective key. + */ + public static final int SECURITY_LEVEL_UNKNOWN = -2; + /** + * This security level indicates that due to the target API level of the caller no exact + * statement can be made about the security level of the key, however, the security level + * can be considered is at least equivalent to {@link #SECURITY_LEVEL_TRUSTED_ENVIRONMENT}. + */ + public static final int SECURITY_LEVEL_UNKNOWN_SECURE = -1; + + /** Indicates enforcement by system software. */ + public static final int SECURITY_LEVEL_SOFTWARE = 0; + + /** Indicates enforcement by a trusted execution environment. */ + public static final int SECURITY_LEVEL_TRUSTED_ENVIRONMENT = 1; + + /** + * Indicates enforcement by environment meeting the Strongbox security profile, + * such as a secure element. + */ + public static final int SECURITY_LEVEL_STRONGBOX = 2; + + /** + * @hide + */ + public abstract static class SecurityLevel { + private SecurityLevel() {} + + /** + * @hide + */ + public static int toKeymaster(int securityLevel) { + switch (securityLevel) { + case SECURITY_LEVEL_SOFTWARE: + return KeymasterDefs.KM_SECURITY_LEVEL_SOFTWARE; + case SECURITY_LEVEL_TRUSTED_ENVIRONMENT: + return KeymasterDefs.KM_SECURITY_LEVEL_TRUSTED_ENVIRONMENT; + case SECURITY_LEVEL_STRONGBOX: + return KeymasterDefs.KM_SECURITY_LEVEL_STRONGBOX; + default: + throw new IllegalArgumentException("Unsupported security level: " + + securityLevel); + } + } + + /** + * @hide + */ + @NonNull + public static int fromKeymaster(int securityLevel) { + switch (securityLevel) { + case KeymasterDefs.KM_SECURITY_LEVEL_SOFTWARE: + return SECURITY_LEVEL_SOFTWARE; + case KeymasterDefs.KM_SECURITY_LEVEL_TRUSTED_ENVIRONMENT: + return SECURITY_LEVEL_TRUSTED_ENVIRONMENT; + case KeymasterDefs.KM_SECURITY_LEVEL_STRONGBOX: + return SECURITY_LEVEL_STRONGBOX; + default: + throw new IllegalArgumentException("Unsupported security level: " + + securityLevel); + } + } + } + } diff --git a/location/java/android/location/IGeofenceProvider.aidl b/location/java/android/location/IGeofenceProvider.aidl index 426ebef86b96..b1ef672024ac 100644 --- a/location/java/android/location/IGeofenceProvider.aidl +++ b/location/java/android/location/IGeofenceProvider.aidl @@ -24,6 +24,6 @@ import android.hardware.location.IGeofenceHardware; * {@hide} */ oneway interface IGeofenceProvider { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void setGeofenceHardware(in IGeofenceHardware proxy); } diff --git a/location/java/android/location/Location.java b/location/java/android/location/Location.java index fa3815ca6fdf..5a40ae10f9e4 100644 --- a/location/java/android/location/Location.java +++ b/location/java/android/location/Location.java @@ -127,7 +127,7 @@ public class Location implements Parcelable { @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) private String mProvider; private long mTime = 0; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private long mElapsedRealtimeNanos = 0; // Estimate of the relative precision of the alignment of this SystemClock // timestamp, with the reported measurements in nanoseconds (68% confidence). diff --git a/media/java/android/media/AudioAttributes.java b/media/java/android/media/AudioAttributes.java index 158482a6a833..717074cba26f 100644 --- a/media/java/android/media/AudioAttributes.java +++ b/media/java/android/media/AudioAttributes.java @@ -502,7 +502,7 @@ public final class AudioAttributes implements Parcelable { @Retention(RetentionPolicy.SOURCE) public @interface CapturePolicy {} - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private int mUsage = USAGE_UNKNOWN; @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) private int mContentType = CONTENT_TYPE_UNKNOWN; @@ -511,7 +511,7 @@ public final class AudioAttributes implements Parcelable { @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) private int mFlags = 0x0; private HashSet<String> mTags; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private String mFormattedTags; private Bundle mBundle; // lazy-initialized, may be null diff --git a/media/java/android/media/AudioDevicePort.java b/media/java/android/media/AudioDevicePort.java index f6b04540c5c7..0f79675862c7 100644 --- a/media/java/android/media/AudioDevicePort.java +++ b/media/java/android/media/AudioDevicePort.java @@ -18,6 +18,7 @@ package android.media; import android.annotation.NonNull; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import java.util.Arrays; @@ -41,7 +42,7 @@ public class AudioDevicePort extends AudioPort { private final int[] mEncapsulationModes; private final int[] mEncapsulationMetadataTypes; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) AudioDevicePort(AudioHandle handle, String deviceName, int[] samplingRates, int[] channelMasks, int[] channelIndexMasks, int[] formats, AudioGain[] gains, int type, String address, int[] encapsulationModes, diff --git a/media/java/android/media/AudioDevicePortConfig.java b/media/java/android/media/AudioDevicePortConfig.java index 51b8037b82f8..69fd82be179b 100644 --- a/media/java/android/media/AudioDevicePortConfig.java +++ b/media/java/android/media/AudioDevicePortConfig.java @@ -17,6 +17,7 @@ package android.media; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; /** * An AudioDevicePortConfig describes a possible configuration of an output or input device @@ -28,7 +29,7 @@ import android.compat.annotation.UnsupportedAppUsage; */ public class AudioDevicePortConfig extends AudioPortConfig { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) AudioDevicePortConfig(AudioDevicePort devicePort, int samplingRate, int channelMask, int format, AudioGainConfig gain) { super((AudioPort)devicePort, samplingRate, channelMask, format, gain); diff --git a/media/java/android/media/AudioFormat.java b/media/java/android/media/AudioFormat.java index 8a60bdebbf09..1d06e2837841 100644 --- a/media/java/android/media/AudioFormat.java +++ b/media/java/android/media/AudioFormat.java @@ -21,6 +21,7 @@ import android.annotation.IntRange; import android.annotation.NonNull; import android.annotation.TestApi; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -685,7 +686,7 @@ public final class AudioFormat implements Parcelable { */ // Update sound trigger JNI in core/jni/android_hardware_SoundTrigger.cpp when modifying this // constructor - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private AudioFormat(int encoding, int sampleRate, int channelMask, int channelIndexMask) { this( AUDIO_FORMAT_HAS_PROPERTY_ENCODING @@ -744,11 +745,11 @@ public final class AudioFormat implements Parcelable { // This is an immutable class, all member variables are final. // Essential values. - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final int mEncoding; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final int mSampleRate; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final int mChannelMask; private final int mChannelIndexMask; private final int mPropertySetMask; diff --git a/media/java/android/media/AudioGain.java b/media/java/android/media/AudioGain.java index cae1b59d46a7..98dc06a6a996 100644 --- a/media/java/android/media/AudioGain.java +++ b/media/java/android/media/AudioGain.java @@ -17,6 +17,7 @@ package android.media; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; /** * The AudioGain describes a gain controller. Gain controllers are exposed by @@ -71,7 +72,7 @@ public class AudioGain { // The channel mask passed to the constructor is as specified in AudioFormat // (e.g. AudioFormat.CHANNEL_OUT_STEREO) - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) AudioGain(int index, int mode, int channelMask, int minValue, int maxValue, int defaultValue, int stepValue, int rampDurationMinMs, int rampDurationMaxMs) { diff --git a/media/java/android/media/AudioHandle.java b/media/java/android/media/AudioHandle.java index 8fc834f8d0a9..ce51b5a33a9a 100644 --- a/media/java/android/media/AudioHandle.java +++ b/media/java/android/media/AudioHandle.java @@ -17,6 +17,7 @@ package android.media; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; /** * The AudioHandle is used by the audio framework implementation to @@ -28,7 +29,7 @@ class AudioHandle { @UnsupportedAppUsage private final int mId; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) AudioHandle(int id) { mId = id; } diff --git a/media/java/android/media/AudioManager.java b/media/java/android/media/AudioManager.java index 4a26e8939a50..57b853332f3f 100755 --- a/media/java/android/media/AudioManager.java +++ b/media/java/android/media/AudioManager.java @@ -707,7 +707,7 @@ public class AudioManager { * @hide * For test purposes only, will throw NPE with some methods that require a Context. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public AudioManager() { mUseVolumeKeySounds = true; mUseFixedVolume = false; @@ -951,7 +951,7 @@ public class AudioManager { * @see #setRingerMode(int) * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static boolean isValidRingerMode(int ringerMode) { if (ringerMode < 0 || ringerMode > RINGER_MODE_MAX) { return false; @@ -2011,7 +2011,7 @@ public class AudioManager { * @see #stopBluetoothSco() * @see #ACTION_SCO_AUDIO_STATE_UPDATED */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void startBluetoothScoVirtualCall() { final IAudioService service = getService(); try { @@ -2163,7 +2163,7 @@ public class AudioManager { * @param on set <var>true</var> to mute the microphone; * <var>false</var> to turn mute off */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setMicrophoneMuteFromSwitch(boolean on) { final IAudioService service = getService(); try { @@ -2423,7 +2423,7 @@ public class AudioManager { * display). Note that BT audio sinks are not considered remote devices. * @return true if {@link AudioManager#STREAM_MUSIC} is active on a remote device */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean isMusicActiveRemotely() { return AudioSystem.isStreamActiveRemotely(STREAM_MUSIC, 0); } @@ -2574,7 +2574,7 @@ public class AudioManager { /** * @hide Number of sound effects */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int NUM_SOUND_EFFECTS = 10; /** @@ -3408,7 +3408,7 @@ public class AudioManager { * @param durationHint the type of focus request. AUDIOFOCUS_GAIN_TRANSIENT is recommended so * media applications resume after a call */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void requestAudioFocusForCall(int streamType, int durationHint) { final IAudioService service = getService(); try { @@ -3512,7 +3512,7 @@ public class AudioManager { * when ringing ends and the call is rejected or not answered. * Should match one or more calls to {@link #requestAudioFocusForCall(int, int)}. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void abandonAudioFocusForCall() { final IAudioService service = getService(); try { @@ -4246,7 +4246,7 @@ public class AudioManager { * agent when audio settings are restored and causes the AudioService * to read and apply restored settings. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void reloadAudioSettings() { final IAudioService service = getService(); try { diff --git a/media/java/android/media/AudioMixPort.java b/media/java/android/media/AudioMixPort.java index 33d603f0b9da..0e286b0f1f89 100644 --- a/media/java/android/media/AudioMixPort.java +++ b/media/java/android/media/AudioMixPort.java @@ -17,6 +17,7 @@ package android.media; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; /** * The AudioMixPort is a specialized type of AudioPort @@ -32,7 +33,7 @@ public class AudioMixPort extends AudioPort { private final int mIoHandle; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) AudioMixPort(AudioHandle handle, int ioHandle, int role, String deviceName, int[] samplingRates, int[] channelMasks, int[] channelIndexMasks, int[] formats, AudioGain[] gains) { @@ -53,7 +54,7 @@ public class AudioMixPort extends AudioPort { /** * Get the device type (e.g AudioManager.DEVICE_OUT_SPEAKER) */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int ioHandle() { return mIoHandle; } diff --git a/media/java/android/media/AudioMixPortConfig.java b/media/java/android/media/AudioMixPortConfig.java index 9d8120624a45..483524a8c168 100644 --- a/media/java/android/media/AudioMixPortConfig.java +++ b/media/java/android/media/AudioMixPortConfig.java @@ -17,6 +17,7 @@ package android.media; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; /** * An AudioMixPortConfig describes a possible configuration of an output or input mixer. @@ -28,7 +29,7 @@ import android.compat.annotation.UnsupportedAppUsage; public class AudioMixPortConfig extends AudioPortConfig { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) AudioMixPortConfig(AudioMixPort mixPort, int samplingRate, int channelMask, int format, AudioGainConfig gain) { super((AudioPort)mixPort, samplingRate, channelMask, format, gain); diff --git a/media/java/android/media/AudioPatch.java b/media/java/android/media/AudioPatch.java index e5107d4e3309..99663bf3aab8 100644 --- a/media/java/android/media/AudioPatch.java +++ b/media/java/android/media/AudioPatch.java @@ -17,6 +17,7 @@ package android.media; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; /** @@ -36,7 +37,7 @@ public class AudioPatch { private final AudioPortConfig[] mSources; private final AudioPortConfig[] mSinks; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) AudioPatch(AudioHandle patchHandle, AudioPortConfig[] sources, AudioPortConfig[] sinks) { mHandle = patchHandle; mSources = sources; diff --git a/media/java/android/media/AudioPort.java b/media/java/android/media/AudioPort.java index 7c3ca24e1c9a..e6dc622a11c1 100644 --- a/media/java/android/media/AudioPort.java +++ b/media/java/android/media/AudioPort.java @@ -17,6 +17,7 @@ package android.media; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; /** * An audio port is a node of the audio framework or hardware that can be connected to or @@ -82,7 +83,7 @@ public class AudioPort { @UnsupportedAppUsage private AudioPortConfig mActiveConfig; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) AudioPort(AudioHandle handle, int role, String name, int[] samplingRates, int[] channelMasks, int[] channelIndexMasks, int[] formats, AudioGain[] gains) { @@ -113,7 +114,7 @@ public class AudioPort { /** * Get the audio port role */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int role() { return mRole; } diff --git a/media/java/android/media/AudioPortConfig.java b/media/java/android/media/AudioPortConfig.java index 16fb5b80eb3e..4dd3cb699a7d 100644 --- a/media/java/android/media/AudioPortConfig.java +++ b/media/java/android/media/AudioPortConfig.java @@ -17,6 +17,7 @@ package android.media; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; /** * An AudioPortConfig contains a possible configuration of an audio port chosen @@ -50,7 +51,7 @@ public class AudioPortConfig { static final int CHANNEL_MASK = 0x2; static final int FORMAT = 0x4; static final int GAIN = 0x8; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) int mConfigMask; @UnsupportedAppUsage diff --git a/media/java/android/media/AudioPortEventHandler.java b/media/java/android/media/AudioPortEventHandler.java index 8e8dfaf24b9a..763eb2944d19 100644 --- a/media/java/android/media/AudioPortEventHandler.java +++ b/media/java/android/media/AudioPortEventHandler.java @@ -17,6 +17,7 @@ package android.media; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Handler; import android.os.HandlerThread; import android.os.Message; @@ -54,7 +55,7 @@ class AudioPortEventHandler { * Accessed by native methods: JNI Callback context. */ @SuppressWarnings("unused") - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private long mJniCallback; void init() { @@ -178,7 +179,7 @@ class AudioPortEventHandler { } @SuppressWarnings("unused") - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static void postEventFromNative(Object module_ref, int what, int arg1, int arg2, Object obj) { AudioPortEventHandler eventHandler = diff --git a/media/java/android/media/AudioRecord.java b/media/java/android/media/AudioRecord.java index 4d26b8d3f7af..d670f073fe8b 100644 --- a/media/java/android/media/AudioRecord.java +++ b/media/java/android/media/AudioRecord.java @@ -30,6 +30,7 @@ import android.media.audiopolicy.AudioMix; import android.media.audiopolicy.AudioPolicy; import android.media.projection.MediaProjection; import android.os.Binder; +import android.os.Build; import android.os.Handler; import android.os.IBinder; import android.os.Looper; @@ -174,14 +175,14 @@ public class AudioRecord implements AudioRouting, MicrophoneDirection, * Accessed by native methods: provides access to the callback data. */ @SuppressWarnings("unused") - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private long mNativeCallbackCookie; /** * Accessed by native methods: provides access to the JNIDeviceCallback instance. */ @SuppressWarnings("unused") - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private long mNativeDeviceCallback; @@ -261,7 +262,7 @@ public class AudioRecord implements AudioRouting, MicrophoneDirection, /** * AudioAttributes */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private AudioAttributes mAudioAttributes; private boolean mIsSubmixFullVolume = false; @@ -1960,7 +1961,7 @@ public class AudioRecord implements AudioRouting, MicrophoneDirection, // Java methods called from the native side //-------------------- @SuppressWarnings("unused") - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static void postEventFromNative(Object audiorecord_ref, int what, int arg1, int arg2, Object obj) { //logd("Event posted from the native side: event="+ what + " args="+ arg1+" "+arg2); diff --git a/media/java/android/media/AudioRecordingConfiguration.java b/media/java/android/media/AudioRecordingConfiguration.java index 42841d178401..6febabe0aefc 100644 --- a/media/java/android/media/AudioRecordingConfiguration.java +++ b/media/java/android/media/AudioRecordingConfiguration.java @@ -23,6 +23,7 @@ import android.annotation.SystemApi; import android.annotation.TestApi; import android.compat.annotation.UnsupportedAppUsage; import android.media.audiofx.AudioEffect; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.util.Log; @@ -222,7 +223,7 @@ public final class AudioRecordingConfiguration implements Parcelable { * <br>When called without the permission, the result is an empty string. * @return the package name */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public String getClientPackageName() { return mClientPackageName; } /** diff --git a/media/java/android/media/AudioSystem.java b/media/java/android/media/AudioSystem.java index 20905380a2f1..f1eb53dda5b9 100644 --- a/media/java/android/media/AudioSystem.java +++ b/media/java/android/media/AudioSystem.java @@ -25,6 +25,7 @@ import android.content.Context; import android.content.pm.PackageManager; import android.media.audiofx.AudioEffect; import android.media.audiopolicy.AudioMix; +import android.os.Build; import android.telephony.TelephonyManager; import android.util.Log; @@ -81,7 +82,7 @@ public class AudioSystem public static final int STREAM_BLUETOOTH_SCO = 6; /** @hide Used to identify the volume of audio streams for enforced system sounds in certain * countries (e.g camera in Japan) */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int STREAM_SYSTEM_ENFORCED = 7; /** @hide Used to identify the volume of audio streams for DTMF tones */ public static final int STREAM_DTMF = 8; @@ -594,7 +595,7 @@ public class AudioSystem } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static void dynamicPolicyCallbackFromNative(int event, String regId, int val) { DynamicPolicyCallback cb; @@ -671,7 +672,7 @@ public class AudioSystem * @param effects * @param activeSource */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static void recordingCallbackFromNative(int event, int riid, int uid, int session, int source, int portId, boolean silenced, int[] recordingFormat, AudioEffect.Descriptor[] clientEffects, AudioEffect.Descriptor[] effects, @@ -1485,7 +1486,7 @@ public class AudioSystem @UnsupportedAppUsage public static native int setMasterMute(boolean mute); /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static native boolean getMasterMute(); /** @hide */ @UnsupportedAppUsage diff --git a/media/java/android/media/AudioTrack.java b/media/java/android/media/AudioTrack.java index eff56f3d8c19..655d100cbb4c 100644 --- a/media/java/android/media/AudioTrack.java +++ b/media/java/android/media/AudioTrack.java @@ -27,6 +27,7 @@ import android.annotation.SystemApi; import android.annotation.TestApi; import android.compat.annotation.UnsupportedAppUsage; import android.os.Binder; +import android.os.Build; import android.os.Handler; import android.os.HandlerThread; import android.os.Looper; @@ -579,7 +580,7 @@ public class AudioTrack extends PlayerBase * the native AudioTrack object, but not stored in it). */ @SuppressWarnings("unused") - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private long mJniData; @@ -874,7 +875,7 @@ public class AudioTrack extends PlayerBase /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) /* package */ void deferred_connect(long nativeTrackInJavaObj) { if (mState != STATE_INITIALIZED) { // Note that for this native_setup, we are providing an already created/initialized @@ -4010,7 +4011,7 @@ public class AudioTrack extends PlayerBase // Java methods called from the native side //-------------------- @SuppressWarnings("unused") - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static void postEventFromNative(Object audiotrack_ref, int what, int arg1, int arg2, Object obj) { //logd("Event posted from the native side: event="+ what + " args="+ arg1+" "+arg2); diff --git a/media/java/android/media/CamcorderProfile.java b/media/java/android/media/CamcorderProfile.java index f89893136804..210fe3d42130 100644 --- a/media/java/android/media/CamcorderProfile.java +++ b/media/java/android/media/CamcorderProfile.java @@ -555,7 +555,7 @@ public class CamcorderProfile // Methods implemented by JNI @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) private static native final void native_init(); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static native final CamcorderProfile native_get_camcorder_profile( int cameraId, int quality); private static native final boolean native_has_camcorder_profile( diff --git a/media/java/android/media/EncoderCapabilities.java b/media/java/android/media/EncoderCapabilities.java index 67ce0f7cc0b9..768b6431f1a9 100644 --- a/media/java/android/media/EncoderCapabilities.java +++ b/media/java/android/media/EncoderCapabilities.java @@ -17,6 +17,7 @@ package android.media; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import java.util.ArrayList; import java.util.List; @@ -44,19 +45,19 @@ public class EncoderCapabilities */ static public class VideoEncoderCap { // These are not modifiable externally, thus are public accessible - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final int mCodec; // @see android.media.MediaRecorder.VideoEncoder public final int mMinBitRate; // min bit rate (bps) public final int mMaxBitRate; // max bit rate (bps) public final int mMinFrameRate; // min frame rate (fps) public final int mMaxFrameRate; // max frame rate (fps) - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final int mMinFrameWidth; // min frame width (pixel) - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final int mMaxFrameWidth; // max frame width (pixel) - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final int mMinFrameHeight; // min frame height (pixel) - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final int mMaxFrameHeight; // max frame height (pixel) // Private constructor called by JNI @@ -134,7 +135,7 @@ public class EncoderCapabilities * Returns the capabilities of the supported video encoders. * @see android.media.EncoderCapabilities.VideoEncoderCap */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static List<VideoEncoderCap> getVideoEncoders() { int nEncoders = native_get_num_video_encoders(); if (nEncoders == 0) return null; diff --git a/media/java/android/media/IAudioService.aidl b/media/java/android/media/IAudioService.aidl index 4cf236a84eb0..78806eb9e547 100755 --- a/media/java/android/media/IAudioService.aidl +++ b/media/java/android/media/IAudioService.aidl @@ -76,7 +76,7 @@ interface IAudioService { void adjustStreamVolume(int streamType, int direction, int flags, String callingPackage); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void setStreamVolume(int streamType, int index, int flags, String callingPackage); oneway void handleVolumeKey(in KeyEvent event, boolean isOnTv, diff --git a/media/java/android/media/IRemoteDisplayCallback.aidl b/media/java/android/media/IRemoteDisplayCallback.aidl index 584417d65121..75813c9ba593 100644 --- a/media/java/android/media/IRemoteDisplayCallback.aidl +++ b/media/java/android/media/IRemoteDisplayCallback.aidl @@ -22,6 +22,6 @@ import android.media.RemoteDisplayState; * {@hide} */ oneway interface IRemoteDisplayCallback { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void onStateChanged(in RemoteDisplayState state); } diff --git a/media/java/android/media/JetPlayer.java b/media/java/android/media/JetPlayer.java index 84ee09b35b81..875c6f52d9b2 100644 --- a/media/java/android/media/JetPlayer.java +++ b/media/java/android/media/JetPlayer.java @@ -19,6 +19,7 @@ package android.media; import android.compat.annotation.UnsupportedAppUsage; import android.content.res.AssetFileDescriptor; +import android.os.Build; import android.os.Handler; import android.os.Looper; import android.os.Message; @@ -130,7 +131,7 @@ public class JetPlayer * Accessed by native methods: provides access to C++ JetPlayer object */ @SuppressWarnings("unused") - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private long mNativePlayerInJavaObj; @@ -564,7 +565,7 @@ public class JetPlayer // Called exclusively by native code //-------------------- @SuppressWarnings("unused") - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static void postEventFromNative(Object jetplayer_ref, int what, int arg1, int arg2) { //logd("Event posted from the native side: event="+ what + " args="+ arg1+" "+arg2); diff --git a/media/java/android/media/MediaMetadata.java b/media/java/android/media/MediaMetadata.java index a23191f36efc..6dfbe2dd559b 100644 --- a/media/java/android/media/MediaMetadata.java +++ b/media/java/android/media/MediaMetadata.java @@ -24,6 +24,7 @@ import android.graphics.BitmapFactory; import android.media.browse.MediaBrowser; import android.media.session.MediaController; import android.net.Uri; +import android.os.Build; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; @@ -627,7 +628,7 @@ public final class MediaMetadata implements Parcelable { * @return The key used by this class or null if no mapping exists * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static String getKeyFromMetadataEditorKey(int editorKey) { return EDITOR_KEY_MAPPING.get(editorKey, null); } diff --git a/media/java/android/media/MediaMuxer.java b/media/java/android/media/MediaMuxer.java index 54675d018038..ac19c21ae085 100644 --- a/media/java/android/media/MediaMuxer.java +++ b/media/java/android/media/MediaMuxer.java @@ -20,6 +20,7 @@ import android.annotation.IntDef; import android.annotation.NonNull; import android.compat.annotation.UnsupportedAppUsage; import android.media.MediaCodec.BufferInfo; +import android.os.Build; import dalvik.system.CloseGuard; @@ -286,10 +287,10 @@ final public class MediaMuxer { public @interface Format {} // All the native functions are listed here. - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static native long nativeSetup(@NonNull FileDescriptor fd, int format) throws IllegalArgumentException, IOException; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static native void nativeRelease(long nativeObject); private static native void nativeStart(long nativeObject); private static native void nativeStop(long nativeObject); @@ -303,22 +304,22 @@ final public class MediaMuxer { int offset, int size, long presentationTimeUs, @MediaCodec.BufferFlag int flags); // Muxer internal states. - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final int MUXER_STATE_UNINITIALIZED = -1; private static final int MUXER_STATE_INITIALIZED = 0; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final int MUXER_STATE_STARTED = 1; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final int MUXER_STATE_STOPPED = 2; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private int mState = MUXER_STATE_UNINITIALIZED; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final CloseGuard mCloseGuard = CloseGuard.get(); private int mLastTrackIndex = -1; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private long mNativeObject; private String convertMuxerStateCodeToString(int aState) { diff --git a/media/java/android/media/MediaPlayer.java b/media/java/android/media/MediaPlayer.java index 49e416080041..e571b6868e68 100644 --- a/media/java/android/media/MediaPlayer.java +++ b/media/java/android/media/MediaPlayer.java @@ -29,6 +29,7 @@ import android.graphics.SurfaceTexture; import android.media.SubtitleController.Anchor; import android.media.SubtitleTrack.RenderingWidget; import android.net.Uri; +import android.os.Build; import android.os.Handler; import android.os.HandlerThread; import android.os.IBinder; @@ -1141,7 +1142,7 @@ public class MediaPlayer extends PlayerBase setDataSource(path, headers, null); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private void setDataSource(String path, Map<String, String> headers, List<HttpCookie> cookies) throws IOException, IllegalArgumentException, SecurityException, IllegalStateException { @@ -1162,7 +1163,7 @@ public class MediaPlayer extends PlayerBase setDataSource(path, keys, values, cookies); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private void setDataSource(String path, String[] keys, String[] values, List<HttpCookie> cookies) throws IOException, IllegalArgumentException, SecurityException, IllegalStateException { @@ -4216,7 +4217,7 @@ public class MediaPlayer extends PlayerBase * JAVA framework to avoid triggering track scanning. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int MEDIA_INFO_EXTERNAL_METADATA_UPDATE = 803; /** Informs that audio is not playing. Note that playback of the video @@ -4236,7 +4237,7 @@ public class MediaPlayer extends PlayerBase * * {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int MEDIA_INFO_TIMED_TEXT_ERROR = 900; /** Subtitle track was not supported by the media framework. diff --git a/media/java/android/media/MediaRecorder.java b/media/java/android/media/MediaRecorder.java index 4198d7917932..73ef31504b74 100644 --- a/media/java/android/media/MediaRecorder.java +++ b/media/java/android/media/MediaRecorder.java @@ -108,7 +108,7 @@ public class MediaRecorder implements AudioRouting, private long mNativeContext; @SuppressWarnings("unused") - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private Surface mSurface; @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) diff --git a/media/java/android/media/MediaRouter.java b/media/java/android/media/MediaRouter.java index 6fa378724240..cf643dd113f5 100644 --- a/media/java/android/media/MediaRouter.java +++ b/media/java/android/media/MediaRouter.java @@ -843,7 +843,7 @@ public class MediaRouter { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public RouteInfo getSelectedRoute() { return getSelectedRoute(ROUTE_TYPE_ANY); } @@ -1756,7 +1756,7 @@ public class MediaRouter { return getName(context.getResources()); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) CharSequence getName(Resources res) { if (mNameResId != 0) { return res.getText(mNameResId); diff --git a/media/java/android/media/MicrophoneInfo.java b/media/java/android/media/MicrophoneInfo.java index 876628fefff4..a46db1dd9350 100644 --- a/media/java/android/media/MicrophoneInfo.java +++ b/media/java/android/media/MicrophoneInfo.java @@ -19,6 +19,7 @@ package android.media; import android.annotation.IntDef; import android.annotation.NonNull; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.util.Pair; import java.lang.annotation.Retention; @@ -164,7 +165,7 @@ public final class MicrophoneInfo { private int mType; private int mDirectionality; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) MicrophoneInfo(String deviceId, int type, String address, int location, int group, int indexInTheGroup, Coordinate3F position, Coordinate3F orientation, List<Pair<Float, Float>> frequencyResponse, diff --git a/media/java/android/media/PlaybackParams.java b/media/java/android/media/PlaybackParams.java index f24f831d0333..080b9a4513ee 100644 --- a/media/java/android/media/PlaybackParams.java +++ b/media/java/android/media/PlaybackParams.java @@ -87,23 +87,23 @@ public final class PlaybackParams implements Parcelable { public static final int AUDIO_STRETCH_MODE_VOICE = 1; // flags to indicate which params are actually set - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final int SET_SPEED = 1 << 0; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final int SET_PITCH = 1 << 1; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final int SET_AUDIO_FALLBACK_MODE = 1 << 2; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final int SET_AUDIO_STRETCH_MODE = 1 << 3; @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) private int mSet = 0; // params - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private int mAudioFallbackMode = AUDIO_FALLBACK_MODE_DEFAULT; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private int mAudioStretchMode = AUDIO_STRETCH_MODE_DEFAULT; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private float mPitch = 1.0f; @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) private float mSpeed = 1.0f; diff --git a/media/java/android/media/RemoteControlClient.java b/media/java/android/media/RemoteControlClient.java index c5fd3c30236d..60a00529cb5d 100644 --- a/media/java/android/media/RemoteControlClient.java +++ b/media/java/android/media/RemoteControlClient.java @@ -24,6 +24,7 @@ import android.graphics.Bitmap; import android.media.session.MediaSession; import android.media.session.MediaSessionLegacyHelper; import android.media.session.PlaybackState; +import android.os.Build; import android.os.Bundle; import android.os.Looper; import android.os.SystemClock; @@ -816,7 +817,7 @@ import android.util.Log; * position updates. The playback position being "readable" is considered from the application's * point of view. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static int MEDIA_POSITION_READABLE = 1 << 0; /** * @hide @@ -824,7 +825,7 @@ import android.util.Log; * playback position updates. The playback position being "writable" * is considered from the application's point of view. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static int MEDIA_POSITION_WRITABLE = 1 << 1; /** @hide */ diff --git a/media/java/android/media/RemoteController.java b/media/java/android/media/RemoteController.java index 9e48f1e05391..7807b9b21758 100644 --- a/media/java/android/media/RemoteController.java +++ b/media/java/android/media/RemoteController.java @@ -26,6 +26,7 @@ import android.media.session.MediaSession; import android.media.session.MediaSessionLegacyHelper; import android.media.session.MediaSessionManager; import android.media.session.PlaybackState; +import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.Looper; @@ -78,7 +79,7 @@ import java.util.List; private int mArtworkHeight = -1; private boolean mEnabled = true; // synchronized on mInfoLock, for USE_SESSION apis. - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private MediaController mCurrentSession; /** diff --git a/media/java/android/media/RemoteDisplay.java b/media/java/android/media/RemoteDisplay.java index e529af9da935..2a0e54d1b767 100644 --- a/media/java/android/media/RemoteDisplay.java +++ b/media/java/android/media/RemoteDisplay.java @@ -17,6 +17,7 @@ package android.media; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Handler; import android.view.Surface; @@ -127,7 +128,7 @@ public final class RemoteDisplay { } // Called from native. - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private void notifyDisplayConnected(final Surface surface, final int width, final int height, final int flags, final int session) { mHandler.post(new Runnable() { @@ -139,7 +140,7 @@ public final class RemoteDisplay { } // Called from native. - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private void notifyDisplayDisconnected() { mHandler.post(new Runnable() { @Override @@ -150,7 +151,7 @@ public final class RemoteDisplay { } // Called from native. - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private void notifyDisplayError(final int error) { mHandler.post(new Runnable() { @Override diff --git a/media/java/android/media/RemoteDisplayState.java b/media/java/android/media/RemoteDisplayState.java index fed361a960e6..370f5b1326f8 100644 --- a/media/java/android/media/RemoteDisplayState.java +++ b/media/java/android/media/RemoteDisplayState.java @@ -17,6 +17,7 @@ package android.media; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.text.TextUtils; @@ -41,10 +42,10 @@ public final class RemoteDisplayState implements Parcelable { /** * A list of all remote displays. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final ArrayList<RemoteDisplayInfo> displays; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public RemoteDisplayState() { displays = new ArrayList<RemoteDisplayInfo>(); } diff --git a/media/java/android/media/Ringtone.java b/media/java/android/media/Ringtone.java index d02b49697821..bd783ce9f6b2 100644 --- a/media/java/android/media/Ringtone.java +++ b/media/java/android/media/Ringtone.java @@ -26,6 +26,7 @@ import android.content.res.Resources.NotFoundException; import android.database.Cursor; import android.net.Uri; import android.os.Binder; +import android.os.Build; import android.os.RemoteException; import android.provider.MediaStore; import android.provider.MediaStore.MediaColumns; @@ -73,7 +74,7 @@ public class Ringtone { private final IRingtonePlayer mRemotePlayer; private final Binder mRemoteToken; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private MediaPlayer mLocalPlayer; private final MyOnCompletionListener mCompletionListener = new MyOnCompletionListener(); diff --git a/media/java/android/media/RingtoneManager.java b/media/java/android/media/RingtoneManager.java index 9deeb8fbab16..e2e13b048cf7 100644 --- a/media/java/android/media/RingtoneManager.java +++ b/media/java/android/media/RingtoneManager.java @@ -36,6 +36,7 @@ import android.content.res.AssetFileDescriptor; import android.database.Cursor; import android.database.StaleDataException; import android.net.Uri; +import android.os.Build; import android.os.Environment; import android.os.FileUtils; import android.os.IBinder; @@ -585,7 +586,7 @@ public class RingtoneManager { return new ExternalRingtonesCursorWrapper(res, MediaStore.Audio.Media.EXTERNAL_CONTENT_URI); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private Cursor getMediaRingtones(Context context) { // MediaStore now returns ringtones on other storage devices, even when // we don't have storage or audio permissions @@ -728,7 +729,7 @@ public class RingtoneManager { * @param volumeShaperConfig config for volume shaper of the ringtone if applied. * @see #getRingtone(Context, Uri) */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static Ringtone getRingtone( final Context context, Uri ringtoneUri, int streamType, @Nullable VolumeShaper.Configuration volumeShaperConfig) { diff --git a/media/java/android/media/TimedText.java b/media/java/android/media/TimedText.java index 120642a8e7cb..fd615472903d 100644 --- a/media/java/android/media/TimedText.java +++ b/media/java/android/media/TimedText.java @@ -18,6 +18,7 @@ package android.media; import android.compat.annotation.UnsupportedAppUsage; import android.graphics.Rect; +import android.os.Build; import android.os.Parcel; import android.util.Log; @@ -736,7 +737,7 @@ public final class TimedText * List of CharPos, Karaoke, Font, Style, and HyperText, or 3) an instance of * Justification. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private Object getObject(final int key) { if (containsKey(key)) { return mKeyObjectMap.get(key); diff --git a/media/java/android/media/ToneGenerator.java b/media/java/android/media/ToneGenerator.java index cc114a9092e1..140e70d32c78 100644 --- a/media/java/android/media/ToneGenerator.java +++ b/media/java/android/media/ToneGenerator.java @@ -17,6 +17,7 @@ package android.media; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; @@ -895,6 +896,6 @@ public class ToneGenerator protected void finalize() { native_finalize(); } @SuppressWarnings("unused") - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private long mNativeContext; // accessed by native methods } diff --git a/media/java/android/media/TtmlRenderer.java b/media/java/android/media/TtmlRenderer.java index e5782642f4eb..3a6c3909bbaf 100644 --- a/media/java/android/media/TtmlRenderer.java +++ b/media/java/android/media/TtmlRenderer.java @@ -18,6 +18,7 @@ package android.media; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; +import android.os.Build; import android.text.TextUtils; import android.util.AttributeSet; import android.util.Log; @@ -49,7 +50,7 @@ public class TtmlRenderer extends SubtitleController.Renderer { private TtmlRenderingWidget mRenderingWidget; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public TtmlRenderer(Context context) { mContext = context; } diff --git a/media/java/android/media/VolumeShaper.java b/media/java/android/media/VolumeShaper.java index 99dfe1e8e32f..df8d08e8e846 100644 --- a/media/java/android/media/VolumeShaper.java +++ b/media/java/android/media/VolumeShaper.java @@ -20,6 +20,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.TestApi; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -413,23 +414,23 @@ public final class VolumeShaper implements AutoCloseable { */ // type of VolumeShaper - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final int mType; // valid when mType is TYPE_ID - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final int mId; // valid when mType is TYPE_SCALE - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final int mOptionFlags; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final double mDurationMs; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final int mInterpolatorType; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final float[] mTimes; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final float[] mVolumes; @Override @@ -572,7 +573,7 @@ public final class VolumeShaper implements AutoCloseable { * Direct constructor for VolumeShaper. * Use the Builder instead. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private Configuration(@Type int type, int id, @OptionFlag int optionFlags, @@ -1132,11 +1133,11 @@ public final class VolumeShaper implements AutoCloseable { private static final int FLAG_PUBLIC_ALL = FLAG_REVERSE | FLAG_TERMINATE; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final int mFlags; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final int mReplaceId; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final float mXOffset; @Override @@ -1198,7 +1199,7 @@ public final class VolumeShaper implements AutoCloseable { } }; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private Operation(@Flag int flags, int replaceId, float xOffset) { mFlags = flags; mReplaceId = replaceId; @@ -1358,9 +1359,9 @@ public final class VolumeShaper implements AutoCloseable { * Not for public use. */ public static final class State implements Parcelable { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private float mVolume; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private float mXOffset; @Override @@ -1411,7 +1412,7 @@ public final class VolumeShaper implements AutoCloseable { } }; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) /* package */ State(float volume, float xOffset) { mVolume = volume; mXOffset = xOffset; diff --git a/media/java/android/media/audiofx/AudioEffect.java b/media/java/android/media/audiofx/AudioEffect.java index 42635216e98f..0c6cc652f940 100644 --- a/media/java/android/media/audiofx/AudioEffect.java +++ b/media/java/android/media/audiofx/AudioEffect.java @@ -902,7 +902,7 @@ public class AudioEffect { * In case of success, the returns the number of meaningful integers in value array. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getParameter(int[] param, int[] value) throws IllegalStateException { if (param.length > 2 || value.length > 2) { @@ -971,7 +971,7 @@ public class AudioEffect { * @see #getParameter(byte[], byte[]) * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getParameter(int[] param, byte[] value) throws IllegalStateException { if (param.length > 2) { diff --git a/media/java/android/media/audiopolicy/AudioMix.java b/media/java/android/media/audiopolicy/AudioMix.java index 4e451c6e42b1..221147dcad8f 100644 --- a/media/java/android/media/audiopolicy/AudioMix.java +++ b/media/java/android/media/audiopolicy/AudioMix.java @@ -23,6 +23,7 @@ import android.compat.annotation.UnsupportedAppUsage; import android.media.AudioDeviceInfo; import android.media.AudioFormat; import android.media.AudioSystem; +import android.os.Build; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -34,24 +35,24 @@ import java.util.Objects; @SystemApi public class AudioMix { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private AudioMixingRule mRule; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private AudioFormat mFormat; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private int mRouteFlags; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private int mMixType = MIX_TYPE_INVALID; // written by AudioPolicy int mMixState = MIX_STATE_DISABLED; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) int mCallbackFlags; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) String mDeviceAddress; // initialized in constructor, read by AudioPolicyConfig - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) final int mDeviceSystemType; // an AudioSystem.DEVICE_* value, not AudioDeviceInfo.TYPE_* /** diff --git a/media/java/android/media/audiopolicy/AudioMixingRule.java b/media/java/android/media/audiopolicy/AudioMixingRule.java index f6f982a4ebe2..de153135eeb9 100644 --- a/media/java/android/media/audiopolicy/AudioMixingRule.java +++ b/media/java/android/media/audiopolicy/AudioMixingRule.java @@ -20,6 +20,7 @@ import android.annotation.NonNull; import android.annotation.SystemApi; import android.compat.annotation.UnsupportedAppUsage; import android.media.AudioAttributes; +import android.os.Build; import android.os.Parcel; import android.util.Log; @@ -109,11 +110,11 @@ public class AudioMixingRule { /** @hide */ public static final class AudioMixMatchCriterion { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) final AudioAttributes mAttr; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) final int mIntProp; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) final int mRule; /** input parameters must be valid */ @@ -199,13 +200,13 @@ public class AudioMixingRule { private final int mTargetMixType; int getTargetMixType() { return mTargetMixType; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final ArrayList<AudioMixMatchCriterion> mCriteria; /** @hide */ public ArrayList<AudioMixMatchCriterion> getCriteria() { return mCriteria; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private boolean mAllowPrivilegedPlaybackCapture = false; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private boolean mVoiceCommunicationCaptureAllowed = false; /** @hide */ diff --git a/media/java/android/media/session/MediaSession.java b/media/java/android/media/session/MediaSession.java index 8bf462c5a5cf..a637fcbcd138 100644 --- a/media/java/android/media/session/MediaSession.java +++ b/media/java/android/media/session/MediaSession.java @@ -33,6 +33,7 @@ import android.media.VolumeProvider; import android.media.session.MediaSessionManager.RemoteUserInfo; import android.net.Uri; import android.os.BadParcelableException; +import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.Looper; @@ -1397,7 +1398,7 @@ public final class MediaSession { public static final int UNKNOWN_ID = -1; private final MediaDescription mDescription; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final long mId; /** diff --git a/media/java/android/media/soundtrigger/SoundTriggerDetector.java b/media/java/android/media/soundtrigger/SoundTriggerDetector.java index 08953392ca18..4f4090d9ef86 100644 --- a/media/java/android/media/soundtrigger/SoundTriggerDetector.java +++ b/media/java/android/media/soundtrigger/SoundTriggerDetector.java @@ -28,6 +28,7 @@ import android.hardware.soundtrigger.SoundTrigger; import android.hardware.soundtrigger.SoundTrigger.ModuleProperties; import android.hardware.soundtrigger.SoundTrigger.RecognitionConfig; import android.media.AudioFormat; +import android.os.Build; import android.os.Handler; import android.os.Looper; import android.os.Message; @@ -192,7 +193,7 @@ public final class SoundTriggerDetector { * @hide */ @Nullable - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public byte[] getData() { if (!mTriggerAvailable) { return mData; @@ -220,7 +221,7 @@ public final class SoundTriggerDetector { * @hide */ @Nullable - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Integer getCaptureSession() { if (mCaptureAvailable) { return mCaptureSession; diff --git a/media/java/android/media/soundtrigger/SoundTriggerManager.java b/media/java/android/media/soundtrigger/SoundTriggerManager.java index 7d51b104a47d..edfc98b7ba0d 100644 --- a/media/java/android/media/soundtrigger/SoundTriggerManager.java +++ b/media/java/android/media/soundtrigger/SoundTriggerManager.java @@ -33,6 +33,7 @@ import android.hardware.soundtrigger.SoundTrigger.KeyphraseSoundModel; import android.hardware.soundtrigger.SoundTrigger.ModelParamRange; import android.hardware.soundtrigger.SoundTrigger.RecognitionConfig; import android.hardware.soundtrigger.SoundTrigger.SoundModel; +import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.ParcelUuid; @@ -363,7 +364,7 @@ public final class SoundTriggerManager { * @hide */ @RequiresPermission(android.Manifest.permission.MANAGE_SOUND_TRIGGER) - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int stopRecognition(UUID soundModelId) { if (soundModelId == null) { return STATUS_ERROR; @@ -380,7 +381,7 @@ public final class SoundTriggerManager { * @hide */ @RequiresPermission(android.Manifest.permission.MANAGE_SOUND_TRIGGER) - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int unloadSoundModel(UUID soundModelId) { if (soundModelId == null) { return STATUS_ERROR; diff --git a/media/java/android/media/tv/TvInputInfo.java b/media/java/android/media/tv/TvInputInfo.java index 377b2bc19c6b..195ad5bc10f9 100644 --- a/media/java/android/media/tv/TvInputInfo.java +++ b/media/java/android/media/tv/TvInputInfo.java @@ -38,6 +38,7 @@ import android.hardware.hdmi.HdmiDeviceInfo; import android.hardware.hdmi.HdmiUtils; import android.hardware.hdmi.HdmiUtils.HdmiAddressRelativePosition; import android.net.Uri; +import android.os.Build; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; @@ -326,7 +327,7 @@ public final class TvInputInfo implements Parcelable { * Returns the component of the service that implements this TV input. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public ComponentName getComponent() { return new ComponentName(mService.serviceInfo.packageName, mService.serviceInfo.name); } diff --git a/media/java/android/media/tv/TvInputService.java b/media/java/android/media/tv/TvInputService.java index 95199cc8e045..abbf4780bcc1 100755 --- a/media/java/android/media/tv/TvInputService.java +++ b/media/java/android/media/tv/TvInputService.java @@ -34,6 +34,7 @@ import android.hardware.hdmi.HdmiDeviceInfo; import android.media.PlaybackParams; import android.net.Uri; import android.os.AsyncTask; +import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.IBinder; @@ -385,7 +386,7 @@ public abstract class TvInputService extends Service { private OverlayViewCleanUpTask mOverlayViewCleanUpTask; private boolean mOverlayViewEnabled; private IBinder mWindowToken; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private Rect mOverlayFrame; private long mStartPositionMs = TvInputManager.TIME_SHIFT_INVALID_TIME; private long mCurrentPositionMs = TvInputManager.TIME_SHIFT_INVALID_TIME; diff --git a/media/java/android/service/media/MediaBrowserService.java b/media/java/android/service/media/MediaBrowserService.java index 06adf30a8303..9e9d511b1488 100644 --- a/media/java/android/service/media/MediaBrowserService.java +++ b/media/java/android/service/media/MediaBrowserService.java @@ -32,6 +32,7 @@ import android.media.session.MediaSession; import android.media.session.MediaSessionManager; import android.media.session.MediaSessionManager.RemoteUserInfo; import android.os.Binder; +import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.IBinder; @@ -87,7 +88,7 @@ public abstract class MediaBrowserService extends Service { * A key for passing the MediaItem to the ResultReceiver in getItem. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String KEY_MEDIA_ITEM = "media_item"; private static final int RESULT_FLAG_OPTION_NOT_HANDLED = 1 << 0; diff --git a/opengl/java/android/opengl/EGL14.java b/opengl/java/android/opengl/EGL14.java index 90b46fd5901a..80e64e01559a 100644 --- a/opengl/java/android/opengl/EGL14.java +++ b/opengl/java/android/opengl/EGL14.java @@ -20,6 +20,7 @@ package android.opengl; import android.compat.annotation.UnsupportedAppUsage; import android.graphics.SurfaceTexture; +import android.os.Build; import android.view.Surface; import android.view.SurfaceHolder; import android.view.SurfaceView; @@ -164,7 +165,7 @@ public static final int EGL_CORE_NATIVE_ENGINE = 0x305B; /** * {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static native EGLDisplay eglGetDisplay( long display_id ); diff --git a/opengl/java/javax/microedition/khronos/egl/EGL10.java b/opengl/java/javax/microedition/khronos/egl/EGL10.java index ea571c7311a1..abdbd11828db 100644 --- a/opengl/java/javax/microedition/khronos/egl/EGL10.java +++ b/opengl/java/javax/microedition/khronos/egl/EGL10.java @@ -17,6 +17,7 @@ package javax.microedition.khronos.egl; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; public interface EGL10 extends EGL { int EGL_SUCCESS = 0x3000; @@ -116,7 +117,7 @@ public interface EGL10 extends EGL { String eglQueryString(EGLDisplay display, int name); boolean eglQuerySurface(EGLDisplay display, EGLSurface surface, int attribute, int[] value); /** @hide **/ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) boolean eglReleaseThread(); boolean eglSwapBuffers(EGLDisplay display, EGLSurface surface); boolean eglTerminate(EGLDisplay display); diff --git a/packages/PackageInstaller/src/com/android/packageinstaller/InstallInstalling.java b/packages/PackageInstaller/src/com/android/packageinstaller/InstallInstalling.java index 4f85eea13dca..bbc33c37f29a 100755 --- a/packages/PackageInstaller/src/com/android/packageinstaller/InstallInstalling.java +++ b/packages/PackageInstaller/src/com/android/packageinstaller/InstallInstalling.java @@ -339,6 +339,10 @@ public class InstallInstalling extends AlertActivity { try { session = getPackageManager().getPackageInstaller().openSession(mSessionId); } catch (IOException e) { + synchronized (this) { + isDone = true; + notifyAll(); + } return null; } diff --git a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java index ef51abb1404d..2702bc4f1f22 100644 --- a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java +++ b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java @@ -19,6 +19,7 @@ import static android.view.WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM; import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS; import static android.view.WindowManager.ScreenshotSource.SCREENSHOT_GLOBAL_ACTIONS; import static android.view.WindowManager.TAKE_SCREENSHOT_FULLSCREEN; +import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_2BUTTON; import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.SOME_AUTH_REQUIRED_AFTER_USER_REQUEST; import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_NOT_REQUIRED; @@ -547,7 +548,7 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener, if (!mDeviceProvisioned && !action.showBeforeProvisioning()) { return false; } - return true; + return action.shouldShow(); } /** @@ -962,6 +963,8 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener, @VisibleForTesting class ScreenshotAction extends SinglePressAction implements LongPressAction { + final String KEY_SYSTEM_NAV_2BUTTONS = "system_nav_2buttons"; + public ScreenshotAction() { super(R.drawable.ic_screenshot, R.string.global_action_screenshot); } @@ -994,6 +997,19 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener, } @Override + public boolean shouldShow() { + // Include screenshot in power menu for legacy nav because it is not accessible + // through Recents in that mode + return is2ButtonNavigationEnabled(); + } + + boolean is2ButtonNavigationEnabled() { + return NAV_BAR_MODE_2BUTTON == mContext.getResources().getInteger( + com.android.internal.R.integer.config_navBarInteractionMode); + } + + + @Override public boolean onLongPress() { if (FeatureFlagUtils.isEnabled(mContext, FeatureFlagUtils.SCREENRECORD_LONG_PRESS)) { mUiEventLogger.log(GlobalActionsEvent.GA_SCREENSHOT_LONG_PRESS); @@ -1616,6 +1632,10 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener, * @return */ CharSequence getMessage(); + + default boolean shouldShow() { + return true; + } } /** diff --git a/packages/SystemUI/tests/src/com/android/systemui/globalactions/GlobalActionsDialogTest.java b/packages/SystemUI/tests/src/com/android/systemui/globalactions/GlobalActionsDialogTest.java index ac8c6710e041..5e2e7c075043 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/globalactions/GlobalActionsDialogTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/globalactions/GlobalActionsDialogTest.java @@ -49,6 +49,7 @@ import android.testing.TestableLooper; import android.util.FeatureFlagUtils; import android.view.IWindowManager; import android.view.View; +import android.view.WindowManagerPolicyConstants; import android.widget.FrameLayout; import androidx.test.filters.SmallTest; @@ -241,6 +242,28 @@ public class GlobalActionsDialogTest extends SysuiTestCase { verifyLogPosted(GlobalActionsDialog.GlobalActionsEvent.GA_SCREENSHOT_LONG_PRESS); } + @Test + public void testShouldShowScreenshot() { + mContext.getOrCreateTestableResources().addOverride( + com.android.internal.R.integer.config_navBarInteractionMode, + WindowManagerPolicyConstants.NAV_BAR_MODE_2BUTTON); + + GlobalActionsDialog.ScreenshotAction screenshotAction = + mGlobalActionsDialog.makeScreenshotActionForTesting(); + assertThat(screenshotAction.shouldShow()).isTrue(); + } + + @Test + public void testShouldNotShowScreenshot() { + mContext.getOrCreateTestableResources().addOverride( + com.android.internal.R.integer.config_navBarInteractionMode, + WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON); + + GlobalActionsDialog.ScreenshotAction screenshotAction = + mGlobalActionsDialog.makeScreenshotActionForTesting(); + assertThat(screenshotAction.shouldShow()).isFalse(); + } + private void verifyLogPosted(GlobalActionsDialog.GlobalActionsEvent event) { mTestableLooper.processAllMessages(); verify(mUiEventLogger, times(1)) diff --git a/rs/java/android/renderscript/Font.java b/rs/java/android/renderscript/Font.java index df9d8019f28d..e47ec4b31700 100644 --- a/rs/java/android/renderscript/Font.java +++ b/rs/java/android/renderscript/Font.java @@ -19,6 +19,7 @@ package android.renderscript; import android.compat.annotation.UnsupportedAppUsage; import android.content.res.AssetManager; import android.content.res.Resources; +import android.os.Build; import android.os.Environment; import java.io.File; @@ -237,7 +238,7 @@ public class Font extends BaseObj { * * Returns default font if no match could be found. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) static public Font create(RenderScript rs, Resources res, String familyName, Style fontStyle, float pointSize) { String fileName = getFontFileName(familyName, fontStyle); String fontPath = Environment.getRootDirectory().getAbsolutePath(); diff --git a/rs/java/android/renderscript/Mesh.java b/rs/java/android/renderscript/Mesh.java index 826225a70d86..1a4d1fd5afbb 100644 --- a/rs/java/android/renderscript/Mesh.java +++ b/rs/java/android/renderscript/Mesh.java @@ -17,6 +17,7 @@ package android.renderscript; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import java.util.Vector; @@ -606,7 +607,7 @@ public class Mesh extends BaseObj { * channels are present in the mesh * **/ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public TriangleMeshBuilder(RenderScript rs, int vtxSize, int flags) { mRS = rs; mVtxCount = 0; @@ -663,7 +664,7 @@ public class Mesh extends BaseObj { * @return this * **/ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public TriangleMeshBuilder addVertex(float x, float y) { if (mVtxSize != 2) { throw new IllegalStateException("add mistmatch with declared components."); @@ -769,7 +770,7 @@ public class Mesh extends BaseObj { * * @return this **/ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public TriangleMeshBuilder addTriangle(int idx1, int idx2, int idx3) { if((idx1 >= mMaxIndex) || (idx1 < 0) || (idx2 >= mMaxIndex) || (idx2 < 0) || @@ -802,7 +803,7 @@ public class Mesh extends BaseObj { * accessible memory * **/ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Mesh create(boolean uploadToBufferObject) { Element.Builder b = new Element.Builder(mRS); b.add(Element.createVector(mRS, diff --git a/rs/java/android/renderscript/ProgramStore.java b/rs/java/android/renderscript/ProgramStore.java index 7e61347ee218..1952b8860033 100644 --- a/rs/java/android/renderscript/ProgramStore.java +++ b/rs/java/android/renderscript/ProgramStore.java @@ -17,6 +17,7 @@ package android.renderscript; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; /** @@ -308,7 +309,7 @@ public class ProgramStore extends BaseObj { * * @param rs Context to which the program will belong. **/ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static ProgramStore BLEND_ALPHA_DEPTH_NONE(RenderScript rs) { if(rs.mProgramStore_BLEND_ALPHA_DEPTH_NO_DEPTH == null) { ProgramStore.Builder builder = new ProgramStore.Builder(rs); diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index 22423fe00b6c..93825ca560da 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -235,6 +235,7 @@ import java.net.UnknownHostException; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.Collections; import java.util.Comparator; import java.util.ConcurrentModificationException; import java.util.HashMap; @@ -1105,23 +1106,26 @@ public class ConnectivityService extends IConnectivityManager.Stub intentFilter.addAction(Intent.ACTION_USER_ADDED); intentFilter.addAction(Intent.ACTION_USER_REMOVED); intentFilter.addAction(Intent.ACTION_USER_UNLOCKED); - mContext.registerReceiverAsUser( + + final Context userAllContext = mContext.createContextAsUser(UserHandle.ALL, 0 /* flags */); + userAllContext.registerReceiver( mIntentReceiver, - UserHandle.ALL, intentFilter, null /* broadcastPermission */, mHandler); - mContext.registerReceiverAsUser(mUserPresentReceiver, UserHandle.SYSTEM, - new IntentFilter(Intent.ACTION_USER_PRESENT), null, null); + mContext.createContextAsUser(UserHandle.SYSTEM, 0 /* flags */).registerReceiver( + mUserPresentReceiver, + new IntentFilter(Intent.ACTION_USER_PRESENT), + null /* broadcastPermission */, + null /* scheduler */); // Listen to package add and removal events for all users. intentFilter = new IntentFilter(); intentFilter.addAction(Intent.ACTION_PACKAGE_REPLACED); intentFilter.addAction(Intent.ACTION_PACKAGE_REMOVED); intentFilter.addDataScheme("package"); - mContext.registerReceiverAsUser( + userAllContext.registerReceiver( mIntentReceiver, - UserHandle.ALL, intentFilter, null /* broadcastPermission */, mHandler); @@ -1129,8 +1133,8 @@ public class ConnectivityService extends IConnectivityManager.Stub // Listen to lockdown VPN reset. intentFilter = new IntentFilter(); intentFilter.addAction(LockdownVpnTracker.ACTION_LOCKDOWN_RESET); - mContext.registerReceiverAsUser( - mIntentReceiver, UserHandle.ALL, intentFilter, NETWORK_STACK, mHandler); + userAllContext.registerReceiver( + mIntentReceiver, intentFilter, NETWORK_STACK, mHandler); try { mNMS.registerObserver(mDataActivityObserver); @@ -5259,7 +5263,9 @@ public class ConnectivityService extends IConnectivityManager.Stub // Try creating lockdown tracker, since user present usually means // unlocked keystore. updateLockdownVpn(); - mContext.unregisterReceiver(this); + // Use the same context that registered receiver before to unregister it. Because use + // different context to unregister receiver will cause exception. + context.unregisterReceiver(this); } }; @@ -5353,7 +5359,9 @@ public class ConnectivityService extends IConnectivityManager.Stub * Also used to notice when the calling process dies so we can self-expire */ private class NetworkRequestInfo implements IBinder.DeathRecipient { + final List<NetworkRequest> mRequests; final NetworkRequest request; + // The network currently satisfying this request, or null if none. Must only be touched // on the handler thread. This only makes sense for network requests and not for listens, // as defined by NetworkRequest#isRequest(). For listens, this is always null. @@ -5368,6 +5376,7 @@ public class ConnectivityService extends IConnectivityManager.Stub NetworkRequestInfo(NetworkRequest r, PendingIntent pi) { request = r; + mRequests = initializeRequests(r); ensureNetworkRequestHasType(request); mPendingIntent = pi; messenger = null; @@ -5381,6 +5390,7 @@ public class ConnectivityService extends IConnectivityManager.Stub super(); messenger = m; request = r; + mRequests = initializeRequests(r); ensureNetworkRequestHasType(request); mBinder = binder; mPid = getCallingPid(); @@ -5399,6 +5409,13 @@ public class ConnectivityService extends IConnectivityManager.Stub this(r, null); } + private List<NetworkRequest> initializeRequests(NetworkRequest r) { + final ArrayList<NetworkRequest> tempRequests = new ArrayList<>(); + tempRequests.add(new NetworkRequest(r)); + return Collections.unmodifiableList(tempRequests); + } + + private void enforceRequestCountLimit() { synchronized (mUidToNetworkRequestCount) { int networkRequests = mUidToNetworkRequestCount.get(mUid, 0) + 1; diff --git a/services/core/java/com/android/server/connectivity/MultipathPolicyTracker.java b/services/core/java/com/android/server/connectivity/MultipathPolicyTracker.java index d5488712aa34..17828a0549b3 100644 --- a/services/core/java/com/android/server/connectivity/MultipathPolicyTracker.java +++ b/services/core/java/com/android/server/connectivity/MultipathPolicyTracker.java @@ -95,7 +95,11 @@ public class MultipathPolicyTracker { private static final boolean DBG = false; + // This context is for the current user. private final Context mContext; + // This context is for all users, so register a BroadcastReceiver which can receive intents from + // all users. + private final Context mUserAllContext; private final Handler mHandler; private final Clock mClock; private final Dependencies mDeps; @@ -132,6 +136,7 @@ public class MultipathPolicyTracker { public MultipathPolicyTracker(Context ctx, Handler handler, Dependencies deps) { mContext = ctx; + mUserAllContext = ctx.createContextAsUser(UserHandle.ALL, 0 /* flags */); mHandler = handler; mClock = deps.getClock(); mDeps = deps; @@ -155,8 +160,8 @@ public class MultipathPolicyTracker { final IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(Intent.ACTION_CONFIGURATION_CHANGED); - mContext.registerReceiverAsUser( - mConfigChangeReceiver, UserHandle.ALL, intentFilter, null, mHandler); + mUserAllContext.registerReceiver( + mConfigChangeReceiver, intentFilter, null /* broadcastPermission */, mHandler); } public void shutdown() { @@ -167,7 +172,7 @@ public class MultipathPolicyTracker { } mMultipathTrackers.clear(); mResolver.unregisterContentObserver(mSettingsObserver); - mContext.unregisterReceiver(mConfigChangeReceiver); + mUserAllContext.unregisterReceiver(mConfigChangeReceiver); } // Called on an arbitrary binder thread. diff --git a/services/core/java/com/android/server/connectivity/Vpn.java b/services/core/java/com/android/server/connectivity/Vpn.java index 1a83272f5077..8b56a2b64db2 100644 --- a/services/core/java/com/android/server/connectivity/Vpn.java +++ b/services/core/java/com/android/server/connectivity/Vpn.java @@ -25,6 +25,7 @@ import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_SUSPENDED; import static android.net.RouteInfo.RTN_THROW; import static android.net.RouteInfo.RTN_UNREACHABLE; +import static com.android.internal.util.Preconditions.checkArgument; import static com.android.internal.util.Preconditions.checkNotNull; import android.Manifest; @@ -865,7 +866,7 @@ public class Vpn { Intent serviceIntent = new Intent(VpnConfig.SERVICE_INTERFACE); serviceIntent.setPackage(alwaysOnPackage); try { - return mContext.startServiceAsUser(serviceIntent, UserHandle.of(mUserId)) != null; + return mUserIdContext.startService(serviceIntent) != null; } catch (RuntimeException e) { Log.e(TAG, "VpnService " + serviceIntent + " failed to start", e); return false; @@ -1036,20 +1037,21 @@ public class Vpn { final long token = Binder.clearCallingIdentity(); try { - final int[] toChange; + final String[] toChange; // Clear all AppOps if the app is being unauthorized. switch (vpnType) { case VpnManager.TYPE_VPN_NONE: - toChange = new int[] { - AppOpsManager.OP_ACTIVATE_VPN, AppOpsManager.OP_ACTIVATE_PLATFORM_VPN + toChange = new String[] { + AppOpsManager.OPSTR_ACTIVATE_VPN, + AppOpsManager.OPSTR_ACTIVATE_PLATFORM_VPN }; break; case VpnManager.TYPE_VPN_PLATFORM: - toChange = new int[] {AppOpsManager.OP_ACTIVATE_PLATFORM_VPN}; + toChange = new String[] {AppOpsManager.OPSTR_ACTIVATE_PLATFORM_VPN}; break; case VpnManager.TYPE_VPN_SERVICE: - toChange = new int[] {AppOpsManager.OP_ACTIVATE_VPN}; + toChange = new String[] {AppOpsManager.OPSTR_ACTIVATE_VPN}; break; default: Log.wtf(TAG, "Unrecognized VPN type while granting authorization"); @@ -1058,9 +1060,9 @@ public class Vpn { final AppOpsManager appOpMgr = (AppOpsManager) mContext.getSystemService(Context.APP_OPS_SERVICE); - for (final int appOp : toChange) { + for (final String appOpStr : toChange) { appOpMgr.setMode( - appOp, + appOpStr, uid, packageName, vpnType == VpnManager.TYPE_VPN_NONE @@ -1086,21 +1088,22 @@ public class Vpn { } } - private static boolean doesPackageHaveAppop(Context context, String packageName, int appop) { + private static boolean doesPackageHaveAppop(Context context, String packageName, + String appOpStr) { final AppOpsManager appOps = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE); // Verify that the caller matches the given package and has the required permission. - return appOps.noteOpNoThrow(appop, Binder.getCallingUid(), packageName) - == AppOpsManager.MODE_ALLOWED; + return appOps.noteOpNoThrow(appOpStr, Binder.getCallingUid(), packageName, + null /* attributionTag */, null /* message */) == AppOpsManager.MODE_ALLOWED; } private static boolean isVpnServicePreConsented(Context context, String packageName) { - return doesPackageHaveAppop(context, packageName, AppOpsManager.OP_ACTIVATE_VPN); + return doesPackageHaveAppop(context, packageName, AppOpsManager.OPSTR_ACTIVATE_VPN); } private static boolean isVpnProfilePreConsented(Context context, String packageName) { - return doesPackageHaveAppop(context, packageName, AppOpsManager.OP_ACTIVATE_PLATFORM_VPN) + return doesPackageHaveAppop(context, packageName, AppOpsManager.OPSTR_ACTIVATE_PLATFORM_VPN) || isVpnServicePreConsented(context, packageName); } @@ -2757,6 +2760,8 @@ public class Vpn { LegacyVpnRunner(VpnConfig config, String[] racoon, String[] mtpd, VpnProfile profile) { super(TAG); + checkArgument(racoon != null || mtpd != null, "Arguments to racoon and mtpd " + + "must not both be null"); mConfig = config; mDaemons = new String[] {"racoon", "mtpd"}; // TODO: clear arguments from memory once launched @@ -2913,15 +2918,6 @@ public class Vpn { } new File("/data/misc/vpn/abort").delete(); - // Check if we need to restart any of the daemons. - boolean restart = false; - for (String[] arguments : mArguments) { - restart = restart || (arguments != null); - } - if (!restart) { - agentDisconnect(); - return; - } updateState(DetailedState.CONNECTING, "execute"); // Start the daemon with arguments. diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java index 2c0ddaf35182..804cc92cca08 100644 --- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java +++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java @@ -1667,6 +1667,7 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice { if (avr == null) { return; } + setArcStatus(false); // Seq #44. removeAction(RequestArcInitiationAction.class); diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java index c4f8441a995b..2a8a895e675a 100644 --- a/services/core/java/com/android/server/lights/LightsService.java +++ b/services/core/java/com/android/server/lights/LightsService.java @@ -555,8 +555,8 @@ public class LightsService extends SystemService { @Override public synchronized ILights get() { if (mInstance == null) { - IBinder binder = Binder.allowBlocking(ServiceManager.waitForDeclaredService( - "android.hardware.light.ILights/default")); + IBinder binder = Binder.allowBlocking( + ServiceManager.waitForDeclaredService(ILights.DESCRIPTOR + "/default")); if (binder != null) { mInstance = ILights.Stub.asInterface(binder); try { diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java index 7d0457bdaec4..e8f48262fbbf 100644 --- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java +++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java @@ -559,6 +559,10 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { /** Set of all merged subscriberId as of last update */ @GuardedBy("mNetworkPoliciesSecondLock") private List<String[]> mMergedSubscriberIds = new ArrayList<>(); + /** Map from subId to carrierConfig as of last update */ + @GuardedBy("mNetworkPoliciesSecondLock") + private final SparseArray<PersistableBundle> mSubIdToCarrierConfig = + new SparseArray<PersistableBundle>(); /** * Indicates the uids restricted by admin from accessing metered data. It's a mapping from @@ -1186,7 +1190,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { final long totalBytes = getTotalBytes(policy.template, cycleStart, cycleEnd); // Carrier might want to manage notifications themselves - final PersistableBundle config = mCarrierConfigManager.getConfigForSubId(subId); + final PersistableBundle config = mSubIdToCarrierConfig.get(subId); if (!CarrierConfigManager.isConfigForIdentifiedCarrier(config)) { if (LOGV) Slog.v(TAG, "isConfigForIdentifiedCarrier returned false"); // Don't show notifications until we confirm that the loaded config is from an @@ -1831,8 +1835,11 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { final List<String[]> mergedSubscriberIdsList = new ArrayList(); final SparseArray<String> subIdToSubscriberId = new SparseArray<>(subList.size()); + final SparseArray<PersistableBundle> subIdToCarrierConfig = + new SparseArray<PersistableBundle>(); for (final SubscriptionInfo sub : subList) { - final TelephonyManager tmSub = tm.createForSubscriptionId(sub.getSubscriptionId()); + final int subId = sub.getSubscriptionId(); + final TelephonyManager tmSub = tm.createForSubscriptionId(subId); final String subscriberId = tmSub.getSubscriberId(); if (!TextUtils.isEmpty(subscriberId)) { subIdToSubscriberId.put(tmSub.getSubscriptionId(), subscriberId); @@ -1843,6 +1850,13 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { final String[] mergedSubscriberId = ArrayUtils.defeatNullable( tmSub.getMergedImsisFromGroup()); mergedSubscriberIdsList.add(mergedSubscriberId); + + final PersistableBundle config = mCarrierConfigManager.getConfigForSubId(subId); + if (config != null) { + subIdToCarrierConfig.put(subId, config); + } else { + Slog.e(TAG, "Missing CarrierConfig for subId " + subId); + } } synchronized (mNetworkPoliciesSecondLock) { @@ -1853,6 +1867,12 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { } mMergedSubscriberIds = mergedSubscriberIdsList; + + mSubIdToCarrierConfig.clear(); + for (int i = 0; i < subIdToCarrierConfig.size(); i++) { + mSubIdToCarrierConfig.put(subIdToCarrierConfig.keyAt(i), + subIdToCarrierConfig.valueAt(i)); + } } Trace.traceEnd(TRACE_TAG_NETWORK); @@ -2172,7 +2192,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { } } } else { - final PersistableBundle config = mCarrierConfigManager.getConfigForSubId(subId); + final PersistableBundle config = mSubIdToCarrierConfig.get(subId); final int currentCycleDay; if (policy.cycleRule.isMonthly()) { currentCycleDay = policy.cycleRule.start.getDayOfMonth(); diff --git a/services/core/java/com/android/server/net/NetworkStatsAccess.java b/services/core/java/com/android/server/net/NetworkStatsAccess.java index 72559b4825e7..ddc5ef2000a1 100644 --- a/services/core/java/com/android/server/net/NetworkStatsAccess.java +++ b/services/core/java/com/android/server/net/NetworkStatsAccess.java @@ -24,7 +24,6 @@ import static android.net.TrafficStats.UID_TETHERING; import android.Manifest; import android.annotation.IntDef; import android.app.AppOpsManager; -import android.app.admin.DeviceAdminInfo; import android.app.admin.DevicePolicyManagerInternal; import android.content.Context; import android.content.pm.PackageManager; @@ -112,8 +111,7 @@ public final class NetworkStatsAccess { boolean hasCarrierPrivileges = tm != null && tm.checkCarrierPrivilegesForPackageAnyPhone(callingPackage) == TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS; - boolean isDeviceOwner = dpmi != null && dpmi.isActiveAdminWithPolicy(callingUid, - DeviceAdminInfo.USES_POLICY_DEVICE_OWNER); + boolean isDeviceOwner = dpmi != null && dpmi.isActiveDeviceOwner(callingUid); final int appId = UserHandle.getAppId(callingUid); if (hasCarrierPrivileges || isDeviceOwner || appId == Process.SYSTEM_UID || appId == Process.NETWORK_STACK_UID) { @@ -128,8 +126,9 @@ public final class NetworkStatsAccess { return NetworkStatsAccess.Level.DEVICESUMMARY; } - boolean isProfileOwner = dpmi != null && dpmi.isActiveAdminWithPolicy(callingUid, - DeviceAdminInfo.USES_POLICY_PROFILE_OWNER); + //TODO(b/169395065) Figure out if this flow makes sense in Device Owner mode. + boolean isProfileOwner = dpmi != null && (dpmi.isActiveProfileOwner(callingUid) + || dpmi.isActiveDeviceOwner(callingUid)); if (isProfileOwner) { // Apps with the AppOps permission, profile owners, and apps with the privileged // permission can access data usage for all apps in this user/profile. diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index dac3252343bd..3d6360696686 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -4206,13 +4206,9 @@ public class PackageManagerService extends IPackageManager.Stub Iterator<ResolveInfo> iter = matches.iterator(); while (iter.hasNext()) { final ResolveInfo rInfo = iter.next(); - final PackageSetting ps = mSettings.mPackages.get(rInfo.activityInfo.packageName); - if (ps != null) { - final PermissionsState permissionsState = ps.getPermissionsState(); - if (permissionsState.hasPermission(Manifest.permission.INSTALL_PACKAGES, 0) - || Build.IS_ENG) { - continue; - } + if (checkPermission(Manifest.permission.INSTALL_PACKAGES, + rInfo.activityInfo.packageName, 0) == PERMISSION_GRANTED || Build.IS_ENG) { + continue; } iter.remove(); } @@ -4388,8 +4384,24 @@ public class PackageManagerService extends IPackageManager.Stub final int[] gids = (flags & PackageManager.GET_GIDS) == 0 ? EMPTY_INT_ARRAY : permissionsState.computeGids(userId); // Compute granted permissions only if package has requested permissions - final Set<String> permissions = ArrayUtils.isEmpty(p.getRequestedPermissions()) + Set<String> permissions = ArrayUtils.isEmpty(p.getRequestedPermissions()) ? Collections.emptySet() : permissionsState.getPermissions(userId); + if (state.instantApp) { + permissions = new ArraySet<>(permissions); + permissions.removeIf(permissionName -> { + BasePermission permission = mPermissionManager.getPermissionTEMP( + permissionName); + if (permission == null) { + return true; + } + if (!permission.isInstant()) { + EventLog.writeEvent(0x534e4554, "140256621", UserHandle.getUid(userId, + ps.appId), permissionName); + return true; + } + return false; + }); + } PackageInfo packageInfo = PackageInfoUtils.generate(p, gids, flags, ps.firstInstallTime, ps.lastUpdateTime, permissions, state, userId, ps); @@ -8587,10 +8599,9 @@ public class PackageManagerService extends IPackageManager.Stub private void addPackageHoldingPermissions(ArrayList<PackageInfo> list, PackageSetting ps, String[] permissions, boolean[] tmp, int flags, int userId) { int numMatch = 0; - final PermissionsState permissionsState = ps.getPermissionsState(); for (int i=0; i<permissions.length; i++) { final String permission = permissions[i]; - if (permissionsState.hasPermission(permission, userId)) { + if (checkPermission(permission, ps.name, userId) == PERMISSION_GRANTED) { tmp[i] = true; numMatch++; } else { @@ -19199,6 +19210,14 @@ public class PackageManagerService extends IPackageManager.Stub final int flags = action.flags; final boolean systemApp = isSystemApp(ps); + // We need to get the permission state before package state is (potentially) destroyed. + final SparseBooleanArray hadSuspendAppsPermission = new SparseBooleanArray(); + // allUserHandles could be null, so call mUserManager.getUserIds() directly which is cached anyway. + for (int userId : mUserManager.getUserIds()) { + hadSuspendAppsPermission.put(userId, checkPermission(Manifest.permission.SUSPEND_APPS, + packageName, userId) == PERMISSION_GRANTED); + } + final int userId = user == null ? UserHandle.USER_ALL : user.getIdentifier(); if ((!systemApp || (flags & PackageManager.DELETE_SYSTEM_APP) != 0) @@ -19265,8 +19284,7 @@ public class PackageManagerService extends IPackageManager.Stub affectedUserIds = resolveUserIds(userId); } for (final int affectedUserId : affectedUserIds) { - if (ps.getPermissionsState().hasPermission(Manifest.permission.SUSPEND_APPS, - affectedUserId)) { + if (hadSuspendAppsPermission.get(affectedUserId)) { unsuspendForSuspendingPackage(packageName, affectedUserId); removeAllDistractingPackageRestrictions(affectedUserId); } @@ -21036,8 +21054,8 @@ public class PackageManagerService extends IPackageManager.Stub pkgSetting.setEnabled(newState, userId, callingPackage); if ((newState == COMPONENT_ENABLED_STATE_DISABLED_USER || newState == COMPONENT_ENABLED_STATE_DISABLED) - && pkgSetting.getPermissionsState().hasPermission( - Manifest.permission.SUSPEND_APPS, userId)) { + && checkPermission(Manifest.permission.SUSPEND_APPS, packageName, userId) + == PERMISSION_GRANTED) { // This app should not generally be allowed to get disabled by the UI, but if it // ever does, we don't want to end up with some of the user's apps permanently // suspended. diff --git a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java index b571a9c5ce13..bb5a953d3a8f 100644 --- a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java +++ b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java @@ -1060,7 +1060,9 @@ class PackageManagerShellCommand extends ShellCommand { + "; isStaged = " + session.isStaged() + "; isReady = " + session.isStagedSessionReady() + "; isApplied = " + session.isStagedSessionApplied() - + "; isFailed = " + session.isStagedSessionFailed() + ";"); + + "; isFailed = " + session.isStagedSessionFailed() + + "; errorMsg = " + session.getStagedSessionErrorMessage() + + ";"); } private Intent parseIntentAndUser() throws URISyntaxException { diff --git a/services/core/java/com/android/server/pm/StagingManager.java b/services/core/java/com/android/server/pm/StagingManager.java index 0c96f592c0db..33433db1a448 100644 --- a/services/core/java/com/android/server/pm/StagingManager.java +++ b/services/core/java/com/android/server/pm/StagingManager.java @@ -605,13 +605,14 @@ public class StagingManager { // If checkpoint is supported, then we only resume sessions if we are in checkpointing // mode. If not, we fail all sessions. if (supportsCheckpoint() && !needsCheckpoint()) { - String errorMsg = "Reverting back to safe state. Marking " + session.sessionId - + " as failed"; - if (!TextUtils.isEmpty(mFailureReason)) { - errorMsg = errorMsg + ": " + mFailureReason; + String revertMsg = "Reverting back to safe state. Marking " + + session.sessionId + " as failed."; + final String reasonForRevert = getReasonForRevert(); + if (!TextUtils.isEmpty(reasonForRevert)) { + revertMsg += " Reason for revert: " + reasonForRevert; } - Slog.d(TAG, errorMsg); - session.setStagedSessionFailed(SessionInfo.STAGED_SESSION_UNKNOWN, errorMsg); + Slog.d(TAG, revertMsg); + session.setStagedSessionFailed(SessionInfo.STAGED_SESSION_UNKNOWN, revertMsg); return; } } catch (RemoteException e) { @@ -715,6 +716,16 @@ public class StagingManager { } } + private String getReasonForRevert() { + if (!TextUtils.isEmpty(mFailureReason)) { + return mFailureReason; + } + if (!TextUtils.isEmpty(mNativeFailureReason)) { + return "Session reverted due to crashing native process: " + mNativeFailureReason; + } + return ""; + } + private List<String> findAPKsInDir(File stageDir) { List<String> ret = new ArrayList<>(); if (stageDir != null && stageDir.exists()) { diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java index b79953e5700a..cfbc77cef98a 100644 --- a/services/core/java/com/android/server/wm/ActivityRecord.java +++ b/services/core/java/com/android/server/wm/ActivityRecord.java @@ -4578,15 +4578,6 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A return false; } - // Check if the activity is on a sleeping display, and if it can turn it ON. - if (getDisplay().isSleeping()) { - final boolean canTurnScreenOn = !mSetToSleep || canTurnScreenOn() - || canShowWhenLocked() || containsDismissKeyguardWindow(); - if (!canTurnScreenOn) { - return false; - } - } - // Now check whether it's really visible depending on Keyguard state, and update // {@link ActivityStack} internal states. // Inform the method if this activity is the top activity of this stack, but exclude the @@ -4597,6 +4588,12 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A final boolean visibleIgnoringDisplayStatus = stack.checkKeyguardVisibility(this, visibleIgnoringKeyguard, isTop && isTopNotPinnedStack); + // Check if the activity is on a sleeping display, and if it can turn it ON. + // TODO(b/163993448): Do not make activity visible before display awake. + if (visibleIgnoringDisplayStatus && getDisplay().isSleeping()) { + return !mSetToSleep || canTurnScreenOn(); + } + return visibleIgnoringDisplayStatus; } diff --git a/services/core/java/com/android/server/wm/ActivityStack.java b/services/core/java/com/android/server/wm/ActivityStack.java index e9768a26f571..2b785c57a61c 100644 --- a/services/core/java/com/android/server/wm/ActivityStack.java +++ b/services/core/java/com/android/server/wm/ActivityStack.java @@ -1704,8 +1704,9 @@ class ActivityStack extends Task { // If the most recent activity was noHistory but was only stopped rather // than stopped+finished because the device went to sleep, we need to make // sure to finish it as we're making a new activity topmost. - if (shouldSleepActivities() && mLastNoHistoryActivity != null && - !mLastNoHistoryActivity.finishing) { + if (shouldSleepActivities() && mLastNoHistoryActivity != null + && !mLastNoHistoryActivity.finishing + && mLastNoHistoryActivity != next) { if (DEBUG_STATES) Slog.d(TAG_STATES, "no-history finish of " + mLastNoHistoryActivity + " on new resume"); mLastNoHistoryActivity.finishIfPossible("resume-no-history", false /* oomAdj */); diff --git a/services/core/java/com/android/server/wm/ActivityStarter.java b/services/core/java/com/android/server/wm/ActivityStarter.java index b3786212ea72..35ccc4347e65 100644 --- a/services/core/java/com/android/server/wm/ActivityStarter.java +++ b/services/core/java/com/android/server/wm/ActivityStarter.java @@ -1481,9 +1481,10 @@ class ActivityStarter { // anyone interested in this piece of information. final ActivityStack homeStack = targetTask.getDisplayArea().getRootHomeTask(); final boolean homeTaskVisible = homeStack != null && homeStack.shouldBeVisible(null); + final ActivityRecord top = targetTask.getTopNonFinishingActivity(); + final boolean visible = top != null && top.isVisible(); mService.getTaskChangeNotificationController().notifyActivityRestartAttempt( - targetTask.getTaskInfo(), homeTaskVisible, clearedTask, - targetTask.getTopNonFinishingActivity().isVisible()); + targetTask.getTaskInfo(), homeTaskVisible, clearedTask, visible); } } diff --git a/services/core/jni/Android.bp b/services/core/jni/Android.bp index e8972742f8e2..83923704a684 100644 --- a/services/core/jni/Android.bp +++ b/services/core/jni/Android.bp @@ -26,7 +26,6 @@ cc_library_static { "stats/SubsystemSleepStatePuller.cpp", "com_android_server_adb_AdbDebuggingManager.cpp", "com_android_server_am_BatteryStatsService.cpp", - "com_android_server_connectivity_Vpn.cpp", "com_android_server_ConsumerIrService.cpp", "com_android_server_devicepolicy_CryptoTestHelper.cpp", "com_android_server_gpu_GpuService.cpp", @@ -60,6 +59,8 @@ cc_library_static { "com_android_server_pm_PackageManagerShellCommandDataLoader.cpp", "onload.cpp", ":lib_networkStatsFactory_native", + // TODO: move the file below to the connectivity APEX + "com_android_server_connectivity_Vpn.cpp", ], include_dirs: [ @@ -161,9 +162,10 @@ cc_defaults { "android.frameworks.schedulerservice@1.0", "android.frameworks.sensorservice@1.0", "android.frameworks.stats@1.0", + "android.system.suspend.control-cpp", + "android.system.suspend.control.internal-cpp", "android.system.suspend@1.0", "service.incremental", - "suspend_control_aidl_interface-cpp", ], static_libs: [ diff --git a/services/core/jni/com_android_server_power_PowerManagerService.cpp b/services/core/jni/com_android_server_power_PowerManagerService.cpp index 469838357f30..5fde550dc19d 100644 --- a/services/core/jni/com_android_server_power_PowerManagerService.cpp +++ b/services/core/jni/com_android_server_power_PowerManagerService.cpp @@ -24,6 +24,7 @@ #include <android/hardware/power/Mode.h> #include <android/system/suspend/1.0/ISystemSuspend.h> #include <android/system/suspend/ISuspendControlService.h> +#include <android/system/suspend/internal/ISuspendControlServiceInternal.h> #include <nativehelper/JNIHelp.h> #include "jni.h" @@ -355,6 +356,8 @@ void android_server_PowerManagerService_userActivity(nsecs_t eventTime, int32_t static sp<ISystemSuspend> gSuspendHal = nullptr; static sp<ISuspendControlService> gSuspendControl = nullptr; +static sp<system::suspend::internal::ISuspendControlServiceInternal> gSuspendControlInternal = + nullptr; static sp<IWakeLock> gSuspendBlocker = nullptr; static std::mutex gSuspendMutex; @@ -379,10 +382,22 @@ sp<ISuspendControlService> getSuspendControl() { return gSuspendControl; } +sp<system::suspend::internal::ISuspendControlServiceInternal> getSuspendControlInternal() { + static std::once_flag suspendControlFlag; + std::call_once(suspendControlFlag, []() { + gSuspendControlInternal = + waitForService<system::suspend::internal::ISuspendControlServiceInternal>( + String16("suspend_control_internal")); + LOG_ALWAYS_FATAL_IF(gSuspendControlInternal == nullptr); + }); + return gSuspendControlInternal; +} + void enableAutoSuspend() { static bool enabled = false; if (!enabled) { - sp<ISuspendControlService> suspendControl = getSuspendControl(); + sp<system::suspend::internal::ISuspendControlServiceInternal> suspendControl = + getSuspendControlInternal(); suspendControl->enableAutosuspend(&enabled); } @@ -515,7 +530,7 @@ static void nativeSetFeature(JNIEnv* /* env */, jclass /* clazz */, jint feature static bool nativeForceSuspend(JNIEnv* /* env */, jclass /* clazz */) { bool retval = false; - getSuspendControl()->forceSuspend(&retval); + getSuspendControlInternal()->forceSuspend(&retval); return retval; } diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index 0da47ca90f5e..faf3f06a3035 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -12474,6 +12474,22 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { } @Override + public boolean isActiveDeviceOwner(int uid) { + synchronized (getLockObject()) { + return getActiveAdminWithPolicyForUidLocked( + null, DeviceAdminInfo.USES_POLICY_DEVICE_OWNER, uid) != null; + } + } + + @Override + public boolean isActiveProfileOwner(int uid) { + synchronized (getLockObject()) { + return getActiveAdminWithPolicyForUidLocked( + null, DeviceAdminInfo.USES_POLICY_PROFILE_OWNER, uid) != null; + } + } + + @Override public boolean isActiveSupervisionApp(int uid) { synchronized (getLockObject()) { final ActiveAdmin admin = getActiveAdminWithPolicyForUidLocked( diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java b/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java index c7b45efb2de1..6ab0697206e3 100644 --- a/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java @@ -1100,6 +1100,34 @@ public class ActivityRecordTests extends ActivityTestsBase { } /** + * Verify the visibility of a show-when-locked and dismiss keyguard activity on sleeping + * display. + */ + @Test + public void testDisplaySleeping_activityInvisible() { + final KeyguardController keyguardController = + mActivity.mStackSupervisor.getKeyguardController(); + doReturn(true).when(keyguardController).isKeyguardLocked(); + final ActivityRecord topActivity = new ActivityBuilder(mService).setTask(mTask).build(); + topActivity.mVisibleRequested = true; + topActivity.nowVisible = true; + topActivity.setState(RESUMED, "test" /*reason*/); + doReturn(true).when(topActivity).containsDismissKeyguardWindow(); + doCallRealMethod().when(mRootWindowContainer).ensureActivitiesVisible( + any() /* starting */, anyInt() /* configChanges */, + anyBoolean() /* preserveWindows */, anyBoolean() /* notifyClients */); + topActivity.setShowWhenLocked(true); + + // Verify the top activity is occluded keyguard. + assertEquals(topActivity, mStack.topRunningActivity()); + assertTrue(mStack.topActivityOccludesKeyguard()); + + final DisplayContent display = mActivity.mDisplayContent; + doReturn(true).when(display).isSleeping(); + assertFalse(topActivity.shouldBeVisible()); + } + + /** * Verify that complete finish request for a show-when-locked activity must ensure the * keyguard occluded state being updated. */ diff --git a/telecomm/java/android/telecom/CallerInfo.java b/telecomm/java/android/telecom/CallerInfo.java index aff2f0183a3b..2983e6339d4b 100644 --- a/telecomm/java/android/telecom/CallerInfo.java +++ b/telecomm/java/android/telecom/CallerInfo.java @@ -27,6 +27,7 @@ import android.graphics.drawable.Drawable; import android.location.Country; import android.location.CountryDetector; import android.net.Uri; +import android.os.Build; import android.provider.ContactsContract.CommonDataKinds.Phone; import android.provider.ContactsContract.Contacts; import android.provider.ContactsContract.Data; @@ -186,7 +187,7 @@ public class CallerInfo { private boolean mIsVoiceMail; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public CallerInfo() { // TODO: Move all the basic initialization here? mIsEmergency = false; @@ -347,7 +348,7 @@ public class CallerInfo { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static CallerInfo getCallerInfo(Context context, Uri contactRef) { CallerInfo info = null; ContentResolver cr = CallerInfoAsyncQuery.getCurrentProfileContentResolver(context); @@ -374,7 +375,7 @@ public class CallerInfo { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static CallerInfo getCallerInfo(Context context, String number) { if (VDBG) Log.v(TAG, "getCallerInfo() based on number..."); @@ -395,7 +396,7 @@ public class CallerInfo { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static CallerInfo getCallerInfo(Context context, String number, int subId) { if (TextUtils.isEmpty(number)) { diff --git a/telecomm/java/android/telecom/Log.java b/telecomm/java/android/telecom/Log.java index a90d0532b721..2a4fdcb1475d 100644 --- a/telecomm/java/android/telecom/Log.java +++ b/telecomm/java/android/telecom/Log.java @@ -102,7 +102,7 @@ public class Log { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static void i(String prefix, String format, Object... args) { if (INFO) { android.util.Slog.i(TAG, buildMessage(prefix, format, args)); @@ -133,7 +133,7 @@ public class Log { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static void w(String prefix, String format, Object... args) { if (WARN) { android.util.Slog.w(TAG, buildMessage(prefix, format, args)); diff --git a/telecomm/java/com/android/internal/telecom/ITelecomService.aidl b/telecomm/java/com/android/internal/telecom/ITelecomService.aidl index 7c6f1df972f3..a28a999e8d19 100644 --- a/telecomm/java/com/android/internal/telecom/ITelecomService.aidl +++ b/telecomm/java/com/android/internal/telecom/ITelecomService.aidl @@ -191,7 +191,7 @@ interface ITelecomService { /** * @see TelecomServiceImpl#getCallState */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) int getCallState(); /** diff --git a/telephony/common/com/android/internal/telephony/SmsApplication.java b/telephony/common/com/android/internal/telephony/SmsApplication.java index b35b3236afc6..b8b60da019af 100644 --- a/telephony/common/com/android/internal/telephony/SmsApplication.java +++ b/telephony/common/com/android/internal/telephony/SmsApplication.java @@ -35,6 +35,7 @@ import android.content.pm.ServiceInfo; import android.net.Uri; import android.os.AsyncTask; import android.os.Binder; +import android.os.Build; import android.os.Process; import android.os.UserHandle; import android.provider.Telephony; @@ -89,7 +90,7 @@ public final class SmsApplication { /** * Name of this SMS app for display. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private String mApplicationName; /** @@ -580,7 +581,7 @@ public final class SmsApplication { * 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 + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static void setDefaultApplication(String packageName, Context context) { setDefaultApplicationAsUser(packageName, context, getIncomingUserId(context)); } @@ -849,7 +850,7 @@ public final class SmsApplication { sSmsPackageMonitor.register(context, context.getMainLooper(), UserHandle.ALL); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static void configurePreferredActivity(PackageManager packageManager, ComponentName componentName) { // Add the four activity preferences we want to direct to this app. @@ -887,7 +888,7 @@ public final class SmsApplication { * Returns SmsApplicationData for this package if this package is capable of being set as the * default SMS application. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static SmsApplicationData getSmsApplicationData(String packageName, Context context) { Collection<SmsApplicationData> applications = getApplicationCollection(context); return getApplicationForPackage(applications, packageName); @@ -959,7 +960,7 @@ public final class SmsApplication { * @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 + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static ComponentName getDefaultRespondViaMessageApplication(Context context, boolean updateIfNeeded) { int userId = getIncomingUserId(context); @@ -1060,7 +1061,7 @@ public final class SmsApplication { * <p> * Caller must pass in the correct user context if calling from a singleton service. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static boolean shouldWriteMessageForPackage(String packageName, Context context) { return !isDefaultSmsApplication(context, packageName); } diff --git a/telephony/common/com/google/android/mms/ContentType.java b/telephony/common/com/google/android/mms/ContentType.java index 4a971dd34c8f..2aec86fe67e4 100644 --- a/telephony/common/com/google/android/mms/ContentType.java +++ b/telephony/common/com/google/android/mms/ContentType.java @@ -18,6 +18,7 @@ package com.google.android.mms; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import java.util.ArrayList; @@ -176,17 +177,17 @@ public class ContentType { return (null != contentType) && sSupportedContentTypes.contains(contentType); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static boolean isSupportedImageType(String contentType) { return isImageType(contentType) && isSupportedType(contentType); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static boolean isSupportedAudioType(String contentType) { return isAudioType(contentType) && isSupportedType(contentType); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static boolean isSupportedVideoType(String contentType) { return isVideoType(contentType) && isSupportedType(contentType); } diff --git a/telephony/common/com/google/android/mms/MmsException.java b/telephony/common/com/google/android/mms/MmsException.java index 24bceb37f590..db6d1d1e3d8a 100644 --- a/telephony/common/com/google/android/mms/MmsException.java +++ b/telephony/common/com/google/android/mms/MmsException.java @@ -18,6 +18,7 @@ package com.google.android.mms; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; /** * A generic exception that is thrown by the Mms client. @@ -59,7 +60,7 @@ public class MmsException extends Exception { * @param message the detail message. * @param cause the cause. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public MmsException(String message, Throwable cause) { super(message, cause); } diff --git a/telephony/common/com/google/android/mms/pdu/AcknowledgeInd.java b/telephony/common/com/google/android/mms/pdu/AcknowledgeInd.java index 8693385bb032..3eda60bfbf1f 100644 --- a/telephony/common/com/google/android/mms/pdu/AcknowledgeInd.java +++ b/telephony/common/com/google/android/mms/pdu/AcknowledgeInd.java @@ -18,6 +18,7 @@ package com.google.android.mms.pdu; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import com.google.android.mms.InvalidHeaderValueException; @@ -68,7 +69,7 @@ public class AcknowledgeInd extends GenericPdu { * @param value the value * @throws InvalidHeaderValueException if the value is invalid. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setReportAllowed(int value) throws InvalidHeaderValueException { mPduHeaders.setOctet(value, PduHeaders.REPORT_ALLOWED); } diff --git a/telephony/common/com/google/android/mms/pdu/DeliveryInd.java b/telephony/common/com/google/android/mms/pdu/DeliveryInd.java index 8fb6a7545abf..ca1f2ebeb044 100644 --- a/telephony/common/com/google/android/mms/pdu/DeliveryInd.java +++ b/telephony/common/com/google/android/mms/pdu/DeliveryInd.java @@ -18,6 +18,7 @@ package com.google.android.mms.pdu; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import com.google.android.mms.InvalidHeaderValueException; @@ -53,7 +54,7 @@ public class DeliveryInd extends GenericPdu { * * @return the value */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public long getDate() { return mPduHeaders.getLongInteger(PduHeaders.DATE); } diff --git a/telephony/common/com/google/android/mms/pdu/EncodedStringValue.java b/telephony/common/com/google/android/mms/pdu/EncodedStringValue.java index 8c0380f77cdd..8b01cb3c4405 100644 --- a/telephony/common/com/google/android/mms/pdu/EncodedStringValue.java +++ b/telephony/common/com/google/android/mms/pdu/EncodedStringValue.java @@ -18,6 +18,7 @@ package com.google.android.mms.pdu; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.util.Log; import java.io.ByteArrayOutputStream; @@ -237,7 +238,7 @@ public class EncodedStringValue implements Cloneable { /** * Extract an EncodedStringValue[] from a given String. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static EncodedStringValue[] extract(String src) { String[] values = src.split(";"); diff --git a/telephony/common/com/google/android/mms/pdu/MultimediaMessagePdu.java b/telephony/common/com/google/android/mms/pdu/MultimediaMessagePdu.java index 42a89c69e873..45ba4819aa24 100644 --- a/telephony/common/com/google/android/mms/pdu/MultimediaMessagePdu.java +++ b/telephony/common/com/google/android/mms/pdu/MultimediaMessagePdu.java @@ -18,6 +18,7 @@ package com.google.android.mms.pdu; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import com.google.android.mms.InvalidHeaderValueException; @@ -116,7 +117,7 @@ public class MultimediaMessagePdu extends GenericPdu{ * @param value the value * @throws NullPointerException if the value is null. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void addTo(EncodedStringValue value) { mPduHeaders.appendEncodedStringValue(value, PduHeaders.TO); } @@ -137,7 +138,7 @@ public class MultimediaMessagePdu extends GenericPdu{ * @param value the value * @throws InvalidHeaderValueException if the value is invalid. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setPriority(int value) throws InvalidHeaderValueException { mPduHeaders.setOctet(value, PduHeaders.PRIORITY); } @@ -157,7 +158,7 @@ public class MultimediaMessagePdu extends GenericPdu{ * * @param value the value */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setDate(long value) { mPduHeaders.setLongInteger(value, PduHeaders.DATE); } diff --git a/telephony/common/com/google/android/mms/pdu/NotifyRespInd.java b/telephony/common/com/google/android/mms/pdu/NotifyRespInd.java index ebd81afc0173..16d83953e723 100644 --- a/telephony/common/com/google/android/mms/pdu/NotifyRespInd.java +++ b/telephony/common/com/google/android/mms/pdu/NotifyRespInd.java @@ -18,6 +18,7 @@ package com.google.android.mms.pdu; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import com.google.android.mms.InvalidHeaderValueException; @@ -72,7 +73,7 @@ public class NotifyRespInd extends GenericPdu { * @throws InvalidHeaderValueException if the value is invalid. * RuntimeException if an undeclared error occurs. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setReportAllowed(int value) throws InvalidHeaderValueException { mPduHeaders.setOctet(value, PduHeaders.REPORT_ALLOWED); } diff --git a/telephony/common/com/google/android/mms/pdu/PduBody.java b/telephony/common/com/google/android/mms/pdu/PduBody.java index f7f285f653b9..e76738b5a42f 100644 --- a/telephony/common/com/google/android/mms/pdu/PduBody.java +++ b/telephony/common/com/google/android/mms/pdu/PduBody.java @@ -18,6 +18,7 @@ package com.google.android.mms.pdu; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import java.util.HashMap; import java.util.Map; @@ -113,7 +114,7 @@ public class PduBody { * @param index index of the part to return * @return part at the specified index */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public PduPart removePart(int index) { return mParts.remove(index); } @@ -142,7 +143,7 @@ public class PduBody { * @param part the part object * @return index the index of the first occurrence of the part in this body */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getPartIndex(PduPart part) { return mParts.indexOf(part); } diff --git a/telephony/common/com/google/android/mms/pdu/PduPart.java b/telephony/common/com/google/android/mms/pdu/PduPart.java index 8dd976b2569f..aead141634e8 100644 --- a/telephony/common/com/google/android/mms/pdu/PduPart.java +++ b/telephony/common/com/google/android/mms/pdu/PduPart.java @@ -19,6 +19,7 @@ package com.google.android.mms.pdu; import android.compat.annotation.UnsupportedAppUsage; import android.net.Uri; +import android.os.Build; import java.util.HashMap; import java.util.Map; @@ -164,7 +165,7 @@ public class PduPart { /** * @return The length of the data, if this object have data, else 0. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getDataLength() { if(mPartData != null){ return mPartData.length; diff --git a/telephony/common/com/google/android/mms/pdu/SendReq.java b/telephony/common/com/google/android/mms/pdu/SendReq.java index 6e2f2da01791..8b5a61701377 100644 --- a/telephony/common/com/google/android/mms/pdu/SendReq.java +++ b/telephony/common/com/google/android/mms/pdu/SendReq.java @@ -18,6 +18,7 @@ package com.google.android.mms.pdu; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.util.Log; import com.google.android.mms.InvalidHeaderValueException; @@ -150,7 +151,7 @@ public class SendReq extends MultimediaMessagePdu { * @param value the value * @throws NullPointerException if the value is null. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setCc(EncodedStringValue[] value) { mPduHeaders.setEncodedStringValues(value, PduHeaders.CC); } diff --git a/telephony/common/com/google/android/mms/util/AbstractCache.java b/telephony/common/com/google/android/mms/util/AbstractCache.java index 25862e73581e..8b9ee43b0981 100644 --- a/telephony/common/com/google/android/mms/util/AbstractCache.java +++ b/telephony/common/com/google/android/mms/util/AbstractCache.java @@ -18,6 +18,7 @@ package com.google.android.mms.util; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.util.Log; import java.util.HashMap; @@ -64,7 +65,7 @@ public abstract class AbstractCache<K, V> { return false; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public V get(K key) { if (LOCAL_LOGV) { Log.v(TAG, "Trying to get " + key + " from cache."); diff --git a/telephony/common/com/google/android/mms/util/DownloadDrmHelper.java b/telephony/common/com/google/android/mms/util/DownloadDrmHelper.java index 0f9390daa725..d0e33984e094 100644 --- a/telephony/common/com/google/android/mms/util/DownloadDrmHelper.java +++ b/telephony/common/com/google/android/mms/util/DownloadDrmHelper.java @@ -20,6 +20,7 @@ package com.google.android.mms.util; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.drm.DrmManagerClient; +import android.os.Build; import android.util.Log; public class DownloadDrmHelper { @@ -73,7 +74,7 @@ public class DownloadDrmHelper { * Modifies the file extension for a DRM Forward Lock file NOTE: This * function shouldn't be called if the file shouldn't be DRM converted */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static String modifyDrmFwLockFileExtension(String filename) { if (filename != null) { int extensionIndex; diff --git a/telephony/common/com/google/android/mms/util/SqliteWrapper.java b/telephony/common/com/google/android/mms/util/SqliteWrapper.java index 31fe4d7683d6..e2d62f868d52 100644 --- a/telephony/common/com/google/android/mms/util/SqliteWrapper.java +++ b/telephony/common/com/google/android/mms/util/SqliteWrapper.java @@ -25,6 +25,7 @@ import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteException; import android.net.Uri; +import android.os.Build; import android.util.Log; import android.widget.Toast; @@ -79,7 +80,7 @@ public final class SqliteWrapper { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static boolean requery(Context context, Cursor cursor) { try { return cursor.requery(); diff --git a/telephony/java/android/service/euicc/EuiccProfileInfo.java b/telephony/java/android/service/euicc/EuiccProfileInfo.java index 92e419707970..8ec500b4d49d 100644 --- a/telephony/java/android/service/euicc/EuiccProfileInfo.java +++ b/telephony/java/android/service/euicc/EuiccProfileInfo.java @@ -20,6 +20,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.service.carrier.CarrierIdentifier; @@ -146,7 +147,7 @@ public final class EuiccProfileInfo implements Parcelable { * @deprecated - Do not use. */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public EuiccProfileInfo(String iccid, @Nullable UiccAccessRule[] accessRules, @Nullable String nickname) { if (!TextUtils.isDigitsOnly(iccid)) { diff --git a/telephony/java/android/service/euicc/GetDefaultDownloadableSubscriptionListResult.java b/telephony/java/android/service/euicc/GetDefaultDownloadableSubscriptionListResult.java index 2382f657c9ee..58e1d08a2009 100644 --- a/telephony/java/android/service/euicc/GetDefaultDownloadableSubscriptionListResult.java +++ b/telephony/java/android/service/euicc/GetDefaultDownloadableSubscriptionListResult.java @@ -18,6 +18,7 @@ package android.service.euicc; import android.annotation.Nullable; import android.annotation.SystemApi; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.telephony.euicc.DownloadableSubscription; @@ -50,7 +51,7 @@ public final class GetDefaultDownloadableSubscriptionListResult implements Parce * @deprecated - Do no use. Use getResult() instead. */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final int result; @Nullable diff --git a/telephony/java/android/service/euicc/GetDownloadableSubscriptionMetadataResult.java b/telephony/java/android/service/euicc/GetDownloadableSubscriptionMetadataResult.java index d0fb51180c1d..6417c0dfcf05 100644 --- a/telephony/java/android/service/euicc/GetDownloadableSubscriptionMetadataResult.java +++ b/telephony/java/android/service/euicc/GetDownloadableSubscriptionMetadataResult.java @@ -18,6 +18,7 @@ package android.service.euicc; import android.annotation.Nullable; import android.annotation.SystemApi; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.telephony.euicc.DownloadableSubscription; @@ -47,7 +48,7 @@ public final class GetDownloadableSubscriptionMetadataResult implements Parcelab * @deprecated - Do no use. Use getResult() instead. */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final int result; @Nullable diff --git a/telephony/java/android/service/euicc/IDeleteSubscriptionCallback.aidl b/telephony/java/android/service/euicc/IDeleteSubscriptionCallback.aidl index aff8f1b7b346..a55f019bec23 100644 --- a/telephony/java/android/service/euicc/IDeleteSubscriptionCallback.aidl +++ b/telephony/java/android/service/euicc/IDeleteSubscriptionCallback.aidl @@ -18,6 +18,6 @@ package android.service.euicc; /** @hide */ oneway interface IDeleteSubscriptionCallback { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void onComplete(int result); }
\ No newline at end of file diff --git a/telephony/java/android/service/euicc/IEraseSubscriptionsCallback.aidl b/telephony/java/android/service/euicc/IEraseSubscriptionsCallback.aidl index 34b53cc71dfb..da26045be3ac 100644 --- a/telephony/java/android/service/euicc/IEraseSubscriptionsCallback.aidl +++ b/telephony/java/android/service/euicc/IEraseSubscriptionsCallback.aidl @@ -18,6 +18,6 @@ package android.service.euicc; /** @hide */ oneway interface IEraseSubscriptionsCallback { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void onComplete(int result); }
\ No newline at end of file diff --git a/telephony/java/android/service/euicc/IGetDefaultDownloadableSubscriptionListCallback.aidl b/telephony/java/android/service/euicc/IGetDefaultDownloadableSubscriptionListCallback.aidl index ad69ef132428..db73f8e0f0f4 100644 --- a/telephony/java/android/service/euicc/IGetDefaultDownloadableSubscriptionListCallback.aidl +++ b/telephony/java/android/service/euicc/IGetDefaultDownloadableSubscriptionListCallback.aidl @@ -20,6 +20,6 @@ import android.service.euicc.GetDefaultDownloadableSubscriptionListResult; /** @hide */ oneway interface IGetDefaultDownloadableSubscriptionListCallback { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void onComplete(in GetDefaultDownloadableSubscriptionListResult result); }
\ No newline at end of file diff --git a/telephony/java/android/service/euicc/IGetDownloadableSubscriptionMetadataCallback.aidl b/telephony/java/android/service/euicc/IGetDownloadableSubscriptionMetadataCallback.aidl index 01f187ed11e2..102ee3096c34 100644 --- a/telephony/java/android/service/euicc/IGetDownloadableSubscriptionMetadataCallback.aidl +++ b/telephony/java/android/service/euicc/IGetDownloadableSubscriptionMetadataCallback.aidl @@ -20,6 +20,6 @@ import android.service.euicc.GetDownloadableSubscriptionMetadataResult; /** @hide */ oneway interface IGetDownloadableSubscriptionMetadataCallback { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void onComplete(in GetDownloadableSubscriptionMetadataResult result); }
\ No newline at end of file diff --git a/telephony/java/android/service/euicc/IGetEidCallback.aidl b/telephony/java/android/service/euicc/IGetEidCallback.aidl index e405a981c85a..c47cf13f75c6 100644 --- a/telephony/java/android/service/euicc/IGetEidCallback.aidl +++ b/telephony/java/android/service/euicc/IGetEidCallback.aidl @@ -18,6 +18,6 @@ package android.service.euicc; /** @hide */ oneway interface IGetEidCallback { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void onSuccess(String eid); }
\ No newline at end of file diff --git a/telephony/java/android/service/euicc/IGetEuiccInfoCallback.aidl b/telephony/java/android/service/euicc/IGetEuiccInfoCallback.aidl index c0611825ff0f..291c058dfd2e 100644 --- a/telephony/java/android/service/euicc/IGetEuiccInfoCallback.aidl +++ b/telephony/java/android/service/euicc/IGetEuiccInfoCallback.aidl @@ -20,6 +20,6 @@ import android.telephony.euicc.EuiccInfo; /** @hide */ oneway interface IGetEuiccInfoCallback { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void onSuccess(in EuiccInfo euiccInfo); }
\ No newline at end of file diff --git a/telephony/java/android/service/euicc/IGetEuiccProfileInfoListCallback.aidl b/telephony/java/android/service/euicc/IGetEuiccProfileInfoListCallback.aidl index 0485f7be29d3..eadddb1193e8 100644 --- a/telephony/java/android/service/euicc/IGetEuiccProfileInfoListCallback.aidl +++ b/telephony/java/android/service/euicc/IGetEuiccProfileInfoListCallback.aidl @@ -20,6 +20,6 @@ import android.service.euicc.GetEuiccProfileInfoListResult; /** @hide */ oneway interface IGetEuiccProfileInfoListCallback { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void onComplete(in GetEuiccProfileInfoListResult result); }
\ No newline at end of file diff --git a/telephony/java/android/service/euicc/IRetainSubscriptionsForFactoryResetCallback.aidl b/telephony/java/android/service/euicc/IRetainSubscriptionsForFactoryResetCallback.aidl index 340401fe89cb..ade1ccdb6b06 100644 --- a/telephony/java/android/service/euicc/IRetainSubscriptionsForFactoryResetCallback.aidl +++ b/telephony/java/android/service/euicc/IRetainSubscriptionsForFactoryResetCallback.aidl @@ -18,6 +18,6 @@ package android.service.euicc; /** @hide */ oneway interface IRetainSubscriptionsForFactoryResetCallback { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void onComplete(int result); }
\ No newline at end of file diff --git a/telephony/java/android/service/euicc/ISwitchToSubscriptionCallback.aidl b/telephony/java/android/service/euicc/ISwitchToSubscriptionCallback.aidl index b8f984d1c28b..1b4b658f6211 100644 --- a/telephony/java/android/service/euicc/ISwitchToSubscriptionCallback.aidl +++ b/telephony/java/android/service/euicc/ISwitchToSubscriptionCallback.aidl @@ -18,6 +18,6 @@ package android.service.euicc; /** @hide */ oneway interface ISwitchToSubscriptionCallback { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void onComplete(int result); }
\ No newline at end of file diff --git a/telephony/java/android/service/euicc/IUpdateSubscriptionNicknameCallback.aidl b/telephony/java/android/service/euicc/IUpdateSubscriptionNicknameCallback.aidl index 0aa66978bb91..fda73497674c 100644 --- a/telephony/java/android/service/euicc/IUpdateSubscriptionNicknameCallback.aidl +++ b/telephony/java/android/service/euicc/IUpdateSubscriptionNicknameCallback.aidl @@ -18,6 +18,6 @@ package android.service.euicc; /** @hide */ oneway interface IUpdateSubscriptionNicknameCallback { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void onComplete(int result); }
\ No newline at end of file diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java index d5e834d5e2ef..0d557067f84e 100644 --- a/telephony/java/android/telephony/CarrierConfigManager.java +++ b/telephony/java/android/telephony/CarrierConfigManager.java @@ -26,6 +26,7 @@ import android.annotation.SystemService; import android.compat.annotation.UnsupportedAppUsage; import android.content.ComponentName; import android.content.Context; +import android.os.Build; import android.os.PersistableBundle; import android.os.RemoteException; import android.service.carrier.CarrierService; @@ -2676,7 +2677,7 @@ public class CarrierConfigManager { * Key identifying if voice call barring notification is required to be shown to the user. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String KEY_DISABLE_VOICE_BARRING_NOTIFICATION_BOOL = "disable_voice_barring_notification_bool"; diff --git a/telephony/java/android/telephony/CellIdentityGsm.java b/telephony/java/android/telephony/CellIdentityGsm.java index 849c613da748..376a5be43272 100644 --- a/telephony/java/android/telephony/CellIdentityGsm.java +++ b/telephony/java/android/telephony/CellIdentityGsm.java @@ -19,6 +19,7 @@ package android.telephony; import android.annotation.NonNull; import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.telephony.gsm.GsmCellLocation; import android.text.TextUtils; @@ -56,7 +57,7 @@ public final class CellIdentityGsm extends CellIdentity { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public CellIdentityGsm() { super(TAG, CellInfo.TYPE_GSM, null, null, null, null); mLac = CellInfo.UNAVAILABLE; diff --git a/telephony/java/android/telephony/CellIdentityLte.java b/telephony/java/android/telephony/CellIdentityLte.java index e6279dc977ee..bcf58e5da607 100644 --- a/telephony/java/android/telephony/CellIdentityLte.java +++ b/telephony/java/android/telephony/CellIdentityLte.java @@ -65,7 +65,7 @@ public final class CellIdentityLte extends CellIdentity { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public CellIdentityLte() { super(TAG, CellInfo.TYPE_LTE, null, null, null, null); mCi = CellInfo.UNAVAILABLE; diff --git a/telephony/java/android/telephony/CellInfoCdma.java b/telephony/java/android/telephony/CellInfoCdma.java index 1bef681619ed..3ce99facfdb1 100644 --- a/telephony/java/android/telephony/CellInfoCdma.java +++ b/telephony/java/android/telephony/CellInfoCdma.java @@ -36,7 +36,7 @@ public final class CellInfoCdma extends CellInfo implements Parcelable { private CellSignalStrengthCdma mCellSignalStrengthCdma; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public CellInfoCdma() { super(); mCellIdentityCdma = new CellIdentityCdma(); diff --git a/telephony/java/android/telephony/CellInfoGsm.java b/telephony/java/android/telephony/CellInfoGsm.java index c19521fdfa99..e296e613362a 100644 --- a/telephony/java/android/telephony/CellInfoGsm.java +++ b/telephony/java/android/telephony/CellInfoGsm.java @@ -18,6 +18,7 @@ package android.telephony; import android.annotation.NonNull; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -35,7 +36,7 @@ public final class CellInfoGsm extends CellInfo implements Parcelable { private CellSignalStrengthGsm mCellSignalStrengthGsm; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public CellInfoGsm() { super(); mCellIdentityGsm = new CellIdentityGsm(); diff --git a/telephony/java/android/telephony/CellInfoLte.java b/telephony/java/android/telephony/CellInfoLte.java index 320925ea63ae..6f812341756b 100644 --- a/telephony/java/android/telephony/CellInfoLte.java +++ b/telephony/java/android/telephony/CellInfoLte.java @@ -39,7 +39,7 @@ public final class CellInfoLte extends CellInfo implements Parcelable { private CellConfigLte mCellConfig; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public CellInfoLte() { super(); mCellIdentityLte = new CellIdentityLte(); diff --git a/telephony/java/android/telephony/CellSignalStrengthGsm.java b/telephony/java/android/telephony/CellSignalStrengthGsm.java index 9d55f109f751..3ff859b55bdd 100644 --- a/telephony/java/android/telephony/CellSignalStrengthGsm.java +++ b/telephony/java/android/telephony/CellSignalStrengthGsm.java @@ -53,7 +53,7 @@ public final class CellSignalStrengthGsm extends CellSignalStrength implements P private int mLevel; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public CellSignalStrengthGsm() { setDefaultValues(); } diff --git a/telephony/java/android/telephony/CellSignalStrengthLte.java b/telephony/java/android/telephony/CellSignalStrengthLte.java index c26936e4bdd0..47a8f72a2337 100644 --- a/telephony/java/android/telephony/CellSignalStrengthLte.java +++ b/telephony/java/android/telephony/CellSignalStrengthLte.java @@ -18,6 +18,7 @@ package android.telephony; import android.annotation.IntRange; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.os.PersistableBundle; @@ -107,7 +108,7 @@ public final class CellSignalStrengthLte extends CellSignalStrength implements P private int mParametersUseForLevel; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public CellSignalStrengthLte() { setDefaultValues(); } diff --git a/telephony/java/android/telephony/PhoneNumberFormattingTextWatcher.java b/telephony/java/android/telephony/PhoneNumberFormattingTextWatcher.java index d4ed860cdafd..24dfbd028d03 100644 --- a/telephony/java/android/telephony/PhoneNumberFormattingTextWatcher.java +++ b/telephony/java/android/telephony/PhoneNumberFormattingTextWatcher.java @@ -17,6 +17,7 @@ package android.telephony; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.text.Editable; import android.text.Selection; import android.text.TextWatcher; @@ -50,7 +51,7 @@ public class PhoneNumberFormattingTextWatcher implements TextWatcher { */ private boolean mStopFormatting; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private AsYouTypeFormatter mFormatter; /** diff --git a/telephony/java/android/telephony/PhoneNumberUtils.java b/telephony/java/android/telephony/PhoneNumberUtils.java index 58e368bcc444..ed09d538a3b1 100644 --- a/telephony/java/android/telephony/PhoneNumberUtils.java +++ b/telephony/java/android/telephony/PhoneNumberUtils.java @@ -27,6 +27,7 @@ import android.content.Intent; import android.content.res.Resources; import android.database.Cursor; import android.net.Uri; +import android.os.Build; import android.os.PersistableBundle; import android.provider.Contacts; import android.provider.ContactsContract; @@ -1832,7 +1833,7 @@ public class PhoneNumberUtils { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @Deprecated public static boolean isPotentialEmergencyNumber(int subId, String number) { // Check against the emergency numbers listed by the RIL / SIM, @@ -2108,7 +2109,7 @@ public class PhoneNumberUtils { * @hide */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static boolean isPotentialLocalEmergencyNumber(Context context, String number) { return isPotentialLocalEmergencyNumber(context, getDefaultVoiceSubId(), number); } @@ -2138,7 +2139,7 @@ public class PhoneNumberUtils { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @Deprecated public static boolean isPotentialLocalEmergencyNumber(Context context, int subId, String number) { diff --git a/telephony/java/android/telephony/PreciseDataConnectionState.java b/telephony/java/android/telephony/PreciseDataConnectionState.java index fd9f46011c7e..9ea624b60988 100644 --- a/telephony/java/android/telephony/PreciseDataConnectionState.java +++ b/telephony/java/android/telephony/PreciseDataConnectionState.java @@ -73,7 +73,7 @@ public final class PreciseDataConnectionState implements Parcelable { */ @TestApi @Deprecated - @UnsupportedAppUsage // (maxTargetSdk = Build.VERSION_CODES.Q) + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) // (maxTargetSdk = Build.VERSION_CODES.Q) // FIXME: figure out how to remove the UnsupportedAppUsage and delete this constructor public PreciseDataConnectionState(@DataState int state, @NetworkType int networkType, diff --git a/telephony/java/android/telephony/RadioAccessFamily.java b/telephony/java/android/telephony/RadioAccessFamily.java index 90ddf2cd4730..f1e90118a559 100644 --- a/telephony/java/android/telephony/RadioAccessFamily.java +++ b/telephony/java/android/telephony/RadioAccessFamily.java @@ -92,7 +92,7 @@ public class RadioAccessFamily implements Parcelable { * {@link TelephonyManager.NetworkTypeBitMask}. It's a bit mask value to represent the support * type. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public RadioAccessFamily(int phoneId, int radioAccessFamily) { mPhoneId = phoneId; mRadioAccessFamily = radioAccessFamily; @@ -103,7 +103,7 @@ public class RadioAccessFamily implements Parcelable { * * @return phone ID */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getPhoneId() { return mPhoneId; } @@ -113,7 +113,7 @@ public class RadioAccessFamily implements Parcelable { * * @return radio access family */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public @TelephonyManager.NetworkTypeBitMask int getRadioAccessFamily() { return mRadioAccessFamily; } @@ -168,7 +168,7 @@ public class RadioAccessFamily implements Parcelable { } }; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @TelephonyManager.NetworkTypeBitMask public static int getRafFromNetworkType(@PrefNetworkMode int type) { switch (type) { diff --git a/telephony/java/android/telephony/ServiceState.java b/telephony/java/android/telephony/ServiceState.java index 3e7464739f9f..41b3ee672f46 100644 --- a/telephony/java/android/telephony/ServiceState.java +++ b/telephony/java/android/telephony/ServiceState.java @@ -956,7 +956,7 @@ public class ServiceState implements Parcelable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static String rilRadioTechnologyToString(int rt) { String rtString; @@ -1167,7 +1167,7 @@ public class ServiceState implements Parcelable { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setVoiceRegState(int state) { mVoiceRegState = state; if (DBG) Rlog.d(LOG_TAG, "[ServiceState] setVoiceRegState=" + mVoiceRegState); @@ -1198,7 +1198,7 @@ public class ServiceState implements Parcelable { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setVoiceRoaming(boolean roaming) { setVoiceRoamingType(roaming ? ROAMING_TYPE_UNKNOWN : ROAMING_TYPE_NOT_ROAMING); } @@ -1219,7 +1219,7 @@ public class ServiceState implements Parcelable { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setDataRoaming(boolean dataRoaming) { setDataRoamingType(dataRoaming ? ROAMING_TYPE_UNKNOWN : ROAMING_TYPE_NOT_ROAMING); } @@ -1291,7 +1291,7 @@ public class ServiceState implements Parcelable { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setOperatorAlphaLong(@Nullable String longName) { mOperatorAlphaLong = longName; } @@ -1476,7 +1476,7 @@ public class ServiceState implements Parcelable { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getRilVoiceRadioTechnology() { NetworkRegistrationInfo wwanRegInfo = getNetworkRegistrationInfo( NetworkRegistrationInfo.DOMAIN_CS, AccessNetworkConstants.TRANSPORT_TYPE_WWAN); @@ -1486,7 +1486,7 @@ public class ServiceState implements Parcelable { return RIL_RADIO_TECHNOLOGY_UNKNOWN; } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getRilDataRadioTechnology() { return networkTypeToRilRadioTechnology(getDataNetworkType()); } @@ -1763,7 +1763,7 @@ public class ServiceState implements Parcelable { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static boolean bitmaskHasTech(int bearerBitmask, int radioTech) { if (bearerBitmask == 0) { return true; @@ -1849,7 +1849,7 @@ public class ServiceState implements Parcelable { * voice SS. The voice SS is only used if it is IN_SERVICE (otherwise the base SS is returned). * @hide * */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static ServiceState mergeServiceStates(ServiceState baseSs, ServiceState voiceSs) { if (voiceSs.mVoiceRegState != STATE_IN_SERVICE) { return baseSs; diff --git a/telephony/java/android/telephony/SmsManager.java b/telephony/java/android/telephony/SmsManager.java index 2de15991b858..738f975e9ce4 100644 --- a/telephony/java/android/telephony/SmsManager.java +++ b/telephony/java/android/telephony/SmsManager.java @@ -550,7 +550,7 @@ public final class SmsManager { * @throws IllegalArgumentException if destinationAddress or text are empty * {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void sendTextMessage( String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent, diff --git a/telephony/java/android/telephony/SmsMessage.java b/telephony/java/android/telephony/SmsMessage.java index 717a9b155cbf..cfb29f124b43 100644 --- a/telephony/java/android/telephony/SmsMessage.java +++ b/telephony/java/android/telephony/SmsMessage.java @@ -29,6 +29,7 @@ import android.annotation.SystemApi; import android.compat.annotation.UnsupportedAppUsage; import android.content.res.Resources; import android.os.Binder; +import android.os.Build; import android.text.TextUtils; import com.android.internal.telephony.GsmAlphabet; @@ -133,7 +134,7 @@ public class SmsMessage { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private int mSubId = 0; /** set Subscription information @@ -1054,7 +1055,7 @@ public class SmsMessage { * * @return true if Cdma format should be used for MO SMS, false otherwise. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static boolean useCdmaFormatForMoSms(int subId) { SmsManager smsManager = SmsManager.getSmsManagerForSubscriptionId(subId); if (!smsManager.isImsSmsSupported()) { diff --git a/telephony/java/android/telephony/SubscriptionInfo.java b/telephony/java/android/telephony/SubscriptionInfo.java index 11667c83bc6a..8307c035aeb2 100644 --- a/telephony/java/android/telephony/SubscriptionInfo.java +++ b/telephony/java/android/telephony/SubscriptionInfo.java @@ -30,6 +30,7 @@ import android.graphics.PorterDuff; import android.graphics.PorterDuffColorFilter; import android.graphics.Rect; import android.graphics.Typeface; +import android.os.Build; import android.os.Parcel; import android.os.ParcelUuid; import android.os.Parcelable; @@ -354,7 +355,7 @@ public class SubscriptionInfo implements Parcelable { * Sets the name displayed to the user that identifies this subscription * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setDisplayName(CharSequence name) { this.mDisplayName = name; } @@ -379,7 +380,7 @@ public class SubscriptionInfo implements Parcelable { * NAME_SOURCE_USER_INPUT. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getNameSource() { return this.mNameSource; } @@ -446,7 +447,7 @@ public class SubscriptionInfo implements Parcelable { * Sets the color displayed to the user that identifies this subscription * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setIconTint(int iconTint) { this.mIconTint = iconTint; } diff --git a/telephony/java/android/telephony/SubscriptionManager.java b/telephony/java/android/telephony/SubscriptionManager.java index 2e51ef16baf1..83e63ef29e2c 100644 --- a/telephony/java/android/telephony/SubscriptionManager.java +++ b/telephony/java/android/telephony/SubscriptionManager.java @@ -127,7 +127,7 @@ public class SubscriptionManager { public static final int MAX_SUBSCRIPTION_ID_VALUE = DEFAULT_SUBSCRIPTION_ID - 1; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final Uri CONTENT_URI = SimInfo.CONTENT_URI; /** @hide */ @@ -1365,6 +1365,7 @@ public class SubscriptionManager { * include those that were inserted before, maybe empty but not null. * @hide */ + @NonNull @UnsupportedAppUsage public List<SubscriptionInfo> getAllSubscriptionInfoList() { if (VDBG) logd("[getAllSubscriptionInfoList]+"); @@ -1382,7 +1383,7 @@ public class SubscriptionManager { } if (result == null) { - result = new ArrayList<>(); + result = Collections.emptyList(); } return result; } @@ -1826,7 +1827,7 @@ public class SubscriptionManager { * @return the number of records updated * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int setDisplayNumber(String number, int subId) { if (number == null) { logd("[setDisplayNumber]- fail"); @@ -1844,7 +1845,7 @@ public class SubscriptionManager { * @return the number of records updated * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int setDataRoaming(int roaming, int subId) { if (VDBG) logd("[setDataRoaming]+ roaming:" + roaming + " subId:" + subId); return setSubscriptionPropertyHelper(subId, "setDataRoaming", @@ -1989,13 +1990,13 @@ public class SubscriptionManager { * @return the SubscriptionInfo for the default voice subscription. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public SubscriptionInfo getDefaultVoiceSubscriptionInfo() { return getActiveSubscriptionInfo(getDefaultVoiceSubscriptionId()); } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static int getDefaultVoicePhoneId() { return getPhoneId(getDefaultVoiceSubscriptionId()); } @@ -2047,7 +2048,7 @@ public class SubscriptionManager { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getDefaultSmsPhoneId() { return getPhoneId(getDefaultSmsSubscriptionId()); } @@ -2181,7 +2182,7 @@ public class SubscriptionManager { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static boolean isValidPhoneId(int phoneId) { return phoneId >= 0 && phoneId < TelephonyManager.getDefault().getActiveModemCount(); } @@ -2200,7 +2201,7 @@ public class SubscriptionManager { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static void putPhoneIdAndSubIdExtra(Intent intent, int phoneId, int subId) { if (VDBG) logd("putPhoneIdAndSubIdExtra: phoneId=" + phoneId + " subId=" + subId); intent.putExtra(EXTRA_SLOT_INDEX, phoneId); diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index 73244859c336..88aec5184548 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -2802,7 +2802,7 @@ public class TelephonyManager { /** Current network is IWLAN */ public static final int NETWORK_TYPE_IWLAN = TelephonyProtoEnums.NETWORK_TYPE_IWLAN; // = 18. /** Current network is LTE_CA {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int NETWORK_TYPE_LTE_CA = TelephonyProtoEnums.NETWORK_TYPE_LTE_CA; // = 19. /** * Current network is NR (New Radio) 5G. @@ -6675,7 +6675,7 @@ public class TelephonyManager { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean nvResetConfig(int resetType) { try { ITelephony telephony = getITelephony(); @@ -6944,7 +6944,7 @@ public class TelephonyManager { * @return The value at the given index of settings. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static int getIntAtIndex(android.content.ContentResolver cr, String name, int index) throws android.provider.Settings.SettingNotFoundException { @@ -6977,7 +6977,7 @@ public class TelephonyManager { * @return true if the value was set, false on database errors * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static boolean putIntAtIndex(android.content.ContentResolver cr, String name, int index, int value) { String data = ""; @@ -7049,7 +7049,7 @@ public class TelephonyManager { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static String getTelephonyProperty(String property, String defaultVal) { String propVal = SystemProperties.get(property); return TextUtils.isEmpty(propVal) ? defaultVal : propVal; @@ -7348,7 +7348,7 @@ public class TelephonyManager { * Corresponds to features defined in ImsFeature. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public @Nullable IImsRegistration getImsRegistration(int slotIndex, int feature) { try { ITelephony telephony = getITelephony(); @@ -7368,7 +7368,7 @@ public class TelephonyManager { * Corresponds to features defined in ImsFeature. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public @Nullable IImsConfig getImsConfig(int slotIndex, int feature) { try { ITelephony telephony = getITelephony(); @@ -7387,7 +7387,7 @@ public class TelephonyManager { * @param Registration state * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setImsRegistrationState(boolean registered) { try { ITelephony telephony = getITelephony(); @@ -8054,7 +8054,7 @@ public class TelephonyManager { * @deprecated Use {@link #setPreferredNetworkTypeBitmask} instead. */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean setPreferredNetworkType(int subId, @PrefNetworkMode int networkType) { try { ITelephony telephony = getITelephony(); @@ -8428,7 +8428,7 @@ public class TelephonyManager { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean setRoamingOverride(List<String> gsmRoamingList, List<String> gsmNonRoamingList, List<String> cdmaRoamingList, List<String> cdmaNonRoamingList) { @@ -9718,7 +9718,7 @@ public class TelephonyManager { * * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setSimOperatorNumericForPhone(int phoneId, String numeric) { if (SubscriptionManager.isValidPhoneId(phoneId)) { List<String> newList = updateTelephonyProperty( @@ -10090,7 +10090,7 @@ public class TelephonyManager { * @param name the alphabetic name of current registered operator. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setNetworkOperatorNameForPhone(int phoneId, String name) { if (SubscriptionManager.isValidPhoneId(phoneId)) { List<String> newList = updateTelephonyProperty( @@ -10115,7 +10115,7 @@ public class TelephonyManager { * @param operator the numeric name (MCC+MNC) of current registered operator * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setNetworkOperatorNumericForPhone(int phoneId, String numeric) { if (SubscriptionManager.isValidPhoneId(phoneId)) { List<String> newList = updateTelephonyProperty( @@ -10140,7 +10140,7 @@ public class TelephonyManager { * @param isRoaming is network in romaing state or not * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setNetworkRoamingForPhone(int phoneId, boolean isRoaming) { if (SubscriptionManager.isValidPhoneId(phoneId)) { List<Boolean> newList = updateTelephonyProperty( @@ -10169,7 +10169,7 @@ public class TelephonyManager { * @param type the network type currently in use on the device for data transmission * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setDataNetworkTypeForPhone(int phoneId, int type) { if (SubscriptionManager.isValidPhoneId(phoneId)) { List<String> newList = updateTelephonyProperty( @@ -13458,6 +13458,149 @@ public class TelephonyManager { } } + /** + * No error. Operation succeeded. + * @hide + */ + @SystemApi + public static final int ENABLE_NR_DUAL_CONNECTIVITY_SUCCESS = 0; + + /** + * NR Dual connectivity enablement is not supported. + * @hide + */ + @SystemApi + public static final int ENABLE_NR_DUAL_CONNECTIVITY_NOT_SUPPORTED = 1; + + /** + * Radio is not available. + * @hide + */ + @SystemApi + public static final int ENABLE_NR_DUAL_CONNECTIVITY_RADIO_NOT_AVAILABLE = 2; + + /** + * Internal Radio error. + * @hide + */ + @SystemApi + public static final int ENABLE_NR_DUAL_CONNECTIVITY_RADIO_ERROR = 3; + + /** + * Currently in invalid state. Not able to process the request. + * @hide + */ + @SystemApi + public static final int ENABLE_NR_DUAL_CONNECTIVITY_INVALID_STATE = 4; + + /** @hide */ + @Retention(RetentionPolicy.SOURCE) + @IntDef(prefix = {"ENABLE_NR_DUAL_CONNECTIVITY"}, value = { + ENABLE_NR_DUAL_CONNECTIVITY_SUCCESS, + ENABLE_NR_DUAL_CONNECTIVITY_NOT_SUPPORTED, + ENABLE_NR_DUAL_CONNECTIVITY_INVALID_STATE, + ENABLE_NR_DUAL_CONNECTIVITY_RADIO_NOT_AVAILABLE, + ENABLE_NR_DUAL_CONNECTIVITY_RADIO_ERROR}) + public @interface EnableNrDualConnectivityResult {} + + /** + * Enable NR dual connectivity. Enabled state does not mean dual connectivity + * is active. It means device is allowed to connect to both primary and secondary. + * + * @hide + */ + @SystemApi + public static final int NR_DUAL_CONNECTIVITY_ENABLE = 1; + + /** + * Disable NR dual connectivity. Disabled state does not mean the secondary cell is released. + * Modem will release it only if the current bearer is released to avoid radio link failure. + * @hide + */ + @SystemApi + public static final int NR_DUAL_CONNECTIVITY_DISABLE = 2; + + /** + * Disable NR dual connectivity and force the secondary cell to be released if dual connectivity + * was active. This will result in radio link failure. + * @hide + */ + @SystemApi + public static final int NR_DUAL_CONNECTIVITY_DISABLE_IMMEDIATE = 3; + + /** + * @hide + */ + @IntDef(prefix = { "NR_DUAL_CONNECTIVITY_" }, value = { + NR_DUAL_CONNECTIVITY_ENABLE, + NR_DUAL_CONNECTIVITY_DISABLE, + NR_DUAL_CONNECTIVITY_DISABLE_IMMEDIATE, + }) + @Retention(RetentionPolicy.SOURCE) + public @interface NrDualConnectivityState { + } + + /** + * Enable/Disable E-UTRA-NR Dual Connectivity. + * + * @param nrDualConnectivityState expected NR dual connectivity state + * This can be passed following states + * <ol> + * <li>Enable NR dual connectivity {@link #NR_DUAL_CONNECTIVITY_ENABLE} + * <li>Disable NR dual connectivity {@link #NR_DUAL_CONNECTIVITY_DISABLE} + * <li>Disable NR dual connectivity and force secondary cell to be released + * {@link #NR_DUAL_CONNECTIVITY_DISABLE_IMMEDIATE} + * </ol> + * @return operation result. + * <p>Requires Permission: + * {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE} + * @throws IllegalStateException if the Telephony process is not currently available. + * @hide + */ + @SystemApi + public @EnableNrDualConnectivityResult int setNrDualConnectivityState( + @NrDualConnectivityState int nrDualConnectivityState) { + try { + ITelephony telephony = getITelephony(); + if (telephony != null) { + return telephony.setNrDualConnectivityState(getSubId(), nrDualConnectivityState); + } else { + throw new IllegalStateException("telephony service is null."); + } + } catch (RemoteException ex) { + Rlog.e(TAG, "setNrDualConnectivityState RemoteException", ex); + ex.rethrowFromSystemServer(); + } + + return ENABLE_NR_DUAL_CONNECTIVITY_INVALID_STATE; + } + + /** + * Is E-UTRA-NR Dual Connectivity enabled. + * @return true if dual connectivity is enabled else false. Enabled state does not mean dual + * connectivity is active. It means the device is allowed to connect to both primary and + * secondary cell. + * <p>Requires Permission: + * {@link android.Manifest.permission#READ_PRIVILEGED_PHONE_STATE READ_PRIVILEGED_PHONE_STATE} + * @throws IllegalStateException if the Telephony process is not currently available. + * @hide + */ + @SystemApi + public boolean isNrDualConnectivityEnabled() { + try { + ITelephony telephony = getITelephony(); + if (telephony != null) { + return telephony.isNrDualConnectivityEnabled(getSubId()); + } else { + throw new IllegalStateException("telephony service is null."); + } + } catch (RemoteException ex) { + Rlog.e(TAG, "isNRDualConnectivityEnabled RemoteException", ex); + ex.rethrowFromSystemServer(); + } + return false; + } + private static class DeathRecipient implements IBinder.DeathRecipient { @Override public void binderDied() { diff --git a/telephony/java/android/telephony/euicc/DownloadableSubscription.java b/telephony/java/android/telephony/euicc/DownloadableSubscription.java index 23d46ba09599..52b31d7f9611 100644 --- a/telephony/java/android/telephony/euicc/DownloadableSubscription.java +++ b/telephony/java/android/telephony/euicc/DownloadableSubscription.java @@ -19,6 +19,7 @@ import android.annotation.Nullable; import android.annotation.SystemApi; import android.app.PendingIntent; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.telephony.UiccAccessRule; @@ -61,7 +62,7 @@ public final class DownloadableSubscription implements Parcelable { */ @Nullable @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final String encodedActivationCode; @Nullable private String confirmationCode; @@ -191,7 +192,7 @@ public final class DownloadableSubscription implements Parcelable { * @deprecated - Do not use. */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setCarrierName(String carrierName) { this.carrierName = carrierName; } @@ -238,7 +239,7 @@ public final class DownloadableSubscription implements Parcelable { * @deprecated - Do not use. */ @Deprecated - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void setAccessRules(UiccAccessRule[] accessRules) { this.accessRules = Arrays.asList(accessRules); } diff --git a/telephony/java/android/telephony/euicc/EuiccInfo.java b/telephony/java/android/telephony/euicc/EuiccInfo.java index 467d2689cd3c..08de2051975e 100644 --- a/telephony/java/android/telephony/euicc/EuiccInfo.java +++ b/telephony/java/android/telephony/euicc/EuiccInfo.java @@ -17,6 +17,7 @@ package android.telephony.euicc; import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -44,7 +45,7 @@ public final class EuiccInfo implements Parcelable { }; @Nullable - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final String osVersion; /** diff --git a/telephony/java/android/telephony/ims/AudioCodecAttributes.aidl b/telephony/java/android/telephony/ims/AudioCodecAttributes.aidl new file mode 100644 index 000000000000..bbab548bcd37 --- /dev/null +++ b/telephony/java/android/telephony/ims/AudioCodecAttributes.aidl @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2020 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.telephony.ims; + +parcelable AudioCodecAttributes; diff --git a/telephony/java/android/telephony/ims/AudioCodecAttributes.java b/telephony/java/android/telephony/ims/AudioCodecAttributes.java new file mode 100644 index 000000000000..7b6ab00b93e4 --- /dev/null +++ b/telephony/java/android/telephony/ims/AudioCodecAttributes.java @@ -0,0 +1,131 @@ +/* + * Copyright (C) 2020 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.telephony.ims; + +import android.annotation.NonNull; +import android.annotation.SystemApi; +import android.os.Parcel; +import android.os.Parcelable; +import android.util.Range; + +/** + * Parcelable object to handle audio codec attributes. + * It provides the audio codec bitrate, bandwidth and their upper/lower bound. + * + * @hide + */ +@SystemApi +public final class AudioCodecAttributes implements Parcelable { + // The audio codec bitrate in kbps. + private float mBitrateKbps; + // The range of the audio codec bitrate in kbps. + private Range<Float> mBitrateRangeKbps; + // The audio codec bandwidth in kHz. + private float mBandwidthKhz; + // The range of the audio codec bandwidth in kHz. + private Range<Float> mBandwidthRangeKhz; + + + /** + * Constructor. + * + * @param bitrateKbps The audio codec bitrate in kbps. + * @param bitrateRangeKbps The range of the audio codec bitrate in kbps. + * @param bandwidthKhz The audio codec bandwidth in kHz. + * @param bandwidthRangeKhz The range of the audio codec bandwidth in kHz. + */ + + public AudioCodecAttributes(float bitrateKbps, @NonNull Range<Float> bitrateRangeKbps, + float bandwidthKhz, @NonNull Range<Float> bandwidthRangeKhz) { + mBitrateKbps = bitrateKbps; + mBitrateRangeKbps = bitrateRangeKbps; + mBandwidthKhz = bandwidthKhz; + mBandwidthRangeKhz = bandwidthRangeKhz; + } + + private AudioCodecAttributes(Parcel in) { + mBitrateKbps = in.readFloat(); + mBitrateRangeKbps = new Range<>(in.readFloat(), in.readFloat()); + mBandwidthKhz = in.readFloat(); + mBandwidthRangeKhz = new Range<>(in.readFloat(), in.readFloat()); + } + + @Override + public void writeToParcel(@NonNull Parcel out, int flags) { + out.writeFloat(mBitrateKbps); + out.writeFloat(mBitrateRangeKbps.getLower()); + out.writeFloat(mBitrateRangeKbps.getUpper()); + out.writeFloat(mBandwidthKhz); + out.writeFloat(mBandwidthRangeKhz.getLower()); + out.writeFloat(mBandwidthRangeKhz.getUpper()); + } + + @Override + public int describeContents() { + return 0; + } + + public static final @NonNull Creator<AudioCodecAttributes> CREATOR = + new Creator<AudioCodecAttributes>() { + @Override + public AudioCodecAttributes createFromParcel(Parcel in) { + return new AudioCodecAttributes(in); + } + + @Override + public AudioCodecAttributes[] newArray(int size) { + return new AudioCodecAttributes[size]; + } + }; + + /** + * @return the exact value of the audio codec bitrate in kbps. + */ + public float getBitrateKbps() { + return mBitrateKbps; + } + + /** + * @return the range of the audio codec bitrate in kbps + */ + public @NonNull Range<Float> getBitrateRangeKbps() { + return mBitrateRangeKbps; + } + + /** + * @return the exact value of the audio codec bandwidth in kHz. + */ + public float getBandwidthKhz() { + return mBandwidthKhz; + } + + /** + * @return the range of the audio codec bandwidth in kHz. + */ + public @NonNull Range<Float> getBandwidthRangeKhz() { + return mBandwidthRangeKhz; + } + + @NonNull + @Override + public String toString() { + return "{ bitrateKbps=" + mBitrateKbps + + ", bitrateRangeKbps=" + mBitrateRangeKbps + + ", bandwidthKhz=" + mBandwidthKhz + + ", bandwidthRangeKhz=" + mBandwidthRangeKhz + " }"; + } +} diff --git a/telephony/java/android/telephony/ims/ImsCallForwardInfo.java b/telephony/java/android/telephony/ims/ImsCallForwardInfo.java index 3f9c8d26ca91..1c2cac27eb37 100644 --- a/telephony/java/android/telephony/ims/ImsCallForwardInfo.java +++ b/telephony/java/android/telephony/ims/ImsCallForwardInfo.java @@ -20,6 +20,7 @@ import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.SystemApi; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -128,26 +129,26 @@ public final class ImsCallForwardInfo implements Parcelable { public @interface TypeOfAddress{} /**@hide*/ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public @CallForwardReasons int mCondition; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public @CallForwardStatus int mStatus; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public @TypeOfAddress int mToA; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public @ImsSsData.ServiceClassFlags int mServiceClass; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public String mNumber; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int mTimeSeconds; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public ImsCallForwardInfo() { } diff --git a/telephony/java/android/telephony/ims/ImsCallProfile.java b/telephony/java/android/telephony/ims/ImsCallProfile.java index 47a0ab61f970..9a55cec80816 100644 --- a/telephony/java/android/telephony/ims/ImsCallProfile.java +++ b/telephony/java/android/telephony/ims/ImsCallProfile.java @@ -21,6 +21,7 @@ import android.annotation.NonNull; import android.annotation.SystemApi; import android.annotation.TestApi; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; @@ -28,6 +29,8 @@ import android.telecom.VideoProfile; import android.telephony.emergency.EmergencyNumber; import android.telephony.emergency.EmergencyNumber.EmergencyCallRouting; import android.telephony.emergency.EmergencyNumber.EmergencyServiceCategories; +import android.telephony.ims.feature.MmTelFeature; +import android.util.ArraySet; import android.util.Log; import com.android.internal.annotations.VisibleForTesting; @@ -37,7 +40,10 @@ import com.android.internal.telephony.util.TelephonyUtils; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; /** * A Parcelable object to handle the IMS call profile, which provides the service, call type, and @@ -356,10 +362,10 @@ public final class ImsCallProfile implements Parcelable { /** @hide */ public int mServiceType; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int mCallType; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public @CallRestrictCause int mRestrictCause = CALL_RESTRICT_CAUSE_NONE; /** @@ -444,6 +450,10 @@ public final class ImsCallProfile implements Parcelable { /** Indicates if we have known the intent of the user for the call is emergency */ private boolean mHasKnownUserIntentEmergency = false; + private Set<RtpHeaderExtensionType> mOfferedRtpHeaderExtensionTypes = new ArraySet<>(); + + private Set<RtpHeaderExtensionType> mAcceptedRtpHeaderExtensionTypes = new ArraySet<>(); + /** * Extras associated with this {@link ImsCallProfile}. * <p> @@ -467,10 +477,10 @@ public final class ImsCallProfile implements Parcelable { * a {@link android.os.Binder}. */ /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public Bundle mCallExtras; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public ImsStreamMediaProfile mMediaProfile; /** @hide */ @@ -682,6 +692,8 @@ public final class ImsCallProfile implements Parcelable { out.writeBoolean(mHasKnownUserIntentEmergency); out.writeInt(mRestrictCause); out.writeInt(mCallerNumberVerificationStatus); + out.writeArray(mOfferedRtpHeaderExtensionTypes.toArray()); + out.writeArray(mAcceptedRtpHeaderExtensionTypes.toArray()); } private void readFromParcel(Parcel in) { @@ -696,9 +708,16 @@ public final class ImsCallProfile implements Parcelable { mHasKnownUserIntentEmergency = in.readBoolean(); mRestrictCause = in.readInt(); mCallerNumberVerificationStatus = in.readInt(); + Object[] offered = in.readArray(RtpHeaderExtensionType.class.getClassLoader()); + mOfferedRtpHeaderExtensionTypes = Arrays.stream(offered) + .map(o -> (RtpHeaderExtensionType) o).collect(Collectors.toSet()); + Object[] accepted = in.readArray(RtpHeaderExtensionType.class.getClassLoader()); + mAcceptedRtpHeaderExtensionTypes = Arrays.stream(accepted) + .map(o -> (RtpHeaderExtensionType) o).collect(Collectors.toSet()); } - public static final @android.annotation.NonNull Creator<ImsCallProfile> CREATOR = new Creator<ImsCallProfile>() { + public static final @android.annotation.NonNull Creator<ImsCallProfile> CREATOR = + new Creator<ImsCallProfile>() { @Override public ImsCallProfile createFromParcel(Parcel in) { return new ImsCallProfile(in); @@ -823,7 +842,7 @@ public final class ImsCallProfile implements Parcelable { * See {@link #presentationToOir(int)}. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static int presentationToOIR(int presentation) { switch (presentation) { case PhoneConstants.PRESENTATION_RESTRICTED: @@ -1085,4 +1104,66 @@ public final class ImsCallProfile implements Parcelable { public boolean hasKnownUserIntentEmergency() { return mHasKnownUserIntentEmergency; } + + /** + * For an incoming or outgoing call, indicates the {@link RtpHeaderExtensionType}s which the + * caller is offering to make available. + * <p> + * For outgoing calls, an {@link ImsService} will reserve + * {@link RtpHeaderExtensionType#getLocalIdentifier()} identifiers the telephony stack has + * proposed to use and not use these same local identifiers. The offered header extension + * types for an outgoing call can be found in the + * {@link ImsCallProfile#getOfferedRtpHeaderExtensionTypes()} and will be available to the + * {@link ImsService} in {@link MmTelFeature#createCallSession(ImsCallProfile)}. + * The {@link ImsService} sets the accepted {@link #setAcceptedRtpHeaderExtensionTypes(Set)} + * when the SDP offer/accept process has completed. + * <p> + * According to RFC8285, RTP header extensions available to a call are determined using the + * offer/accept phase of the SDP protocol (see RFC4566). + * + * @return the {@link RtpHeaderExtensionType}s which were offered by other end of the call. + */ + public @NonNull Set<RtpHeaderExtensionType> getOfferedRtpHeaderExtensionTypes() { + return mOfferedRtpHeaderExtensionTypes; + } + + /** + * Sets the offered {@link RtpHeaderExtensionType}s for this call. + * <p> + * According to RFC8285, RTP header extensions available to a call are determined using the + * offer/accept phase of the SDP protocol (see RFC4566). + * + * @param rtpHeaderExtensions the {@link RtpHeaderExtensionType}s which are offered. + */ + public void setOfferedRtpHeaderExtensionTypes(@NonNull Set<RtpHeaderExtensionType> + rtpHeaderExtensions) { + mOfferedRtpHeaderExtensionTypes.clear(); + mOfferedRtpHeaderExtensionTypes.addAll(rtpHeaderExtensions); + } + + /** + * Gets the {@link RtpHeaderExtensionType}s which have been accepted by both ends of the call. + * <p> + * According to RFC8285, RTP header extensions available to a call are determined using the + * offer/accept phase of the SDP protocol (see RFC4566). + * + * @return the {@link RtpHeaderExtensionType}s which were accepted by the other end of the call. + */ + public @NonNull Set<RtpHeaderExtensionType> getAcceptedRtpHeaderExtensionTypes() { + return mAcceptedRtpHeaderExtensionTypes; + } + + /** + * Sets the accepted {@link RtpHeaderExtensionType}s for this call. + * <p> + * According to RFC8285, RTP header extensions available to a call are determined using the + * offer/accept phase of the SDP protocol (see RFC4566). + * + * @param rtpHeaderExtensions + */ + public void setAcceptedRtpHeaderExtensionTypes(@NonNull Set<RtpHeaderExtensionType> + rtpHeaderExtensions) { + mAcceptedRtpHeaderExtensionTypes.clear(); + mAcceptedRtpHeaderExtensionTypes.addAll(rtpHeaderExtensions); + } } diff --git a/telephony/java/android/telephony/ims/ImsCallSession.java b/telephony/java/android/telephony/ims/ImsCallSession.java index 8857b9b36d0c..a3efb799029a 100755 --- a/telephony/java/android/telephony/ims/ImsCallSession.java +++ b/telephony/java/android/telephony/ims/ImsCallSession.java @@ -22,11 +22,16 @@ import android.os.Message; import android.os.RemoteException; import android.telephony.CallQuality; import android.telephony.ims.aidl.IImsCallSessionListener; +import android.util.ArraySet; import android.util.Log; import com.android.ims.internal.IImsCallSession; import com.android.ims.internal.IImsVideoCallProvider; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + /** * Provides the call initiation/termination, and media exchange between two IMS endpoints. * It directly communicates with IMS service which implements the IMS protocol behavior. @@ -468,11 +473,31 @@ public class ImsCallSession { } /** + * Informs the framework of a DTMF digit which was received from the network. + * <p> + * According to <a href="http://tools.ietf.org/html/rfc2833">RFC 2833 sec 3.10</a>, + * event 0 ~ 9 maps to decimal value 0 ~ 9, '*' to 10, '#' to 11, event 'A' ~ 'D' to + * 12 ~ 15. + * @param digit the DTMF digit + */ + public void callSessionDtmfReceived(char digit) { + // no-op + } + + /** * Called when the IMS service reports a change to the call quality. */ public void callQualityChanged(CallQuality callQuality) { // no-op } + + /** + * Called when the IMS service reports incoming RTP header extension data. + */ + public void callSessionRtpHeaderExtensionsReceived( + @NonNull Set<RtpHeaderExtension> extensions) { + // no-op + } } private final IImsCallSession miSession; @@ -1119,6 +1144,31 @@ public class ImsCallSession { } /** + * Requests that {@code rtpHeaderExtensions} are sent as a header extension with the next + * RTP packet sent by the IMS stack. + * <p> + * The {@link RtpHeaderExtensionType}s negotiated during SDP (Session Description Protocol) + * signalling determine the {@link RtpHeaderExtension}s which can be sent using this method. + * See RFC8285 for more information. + * <p> + * By specification, the RTP header extension is an unacknowledged transmission and there is no + * guarantee that the header extension will be delivered by the network to the other end of the + * call. + * @param rtpHeaderExtensions The header extensions to be included in the next RTP header. + */ + public void sendRtpHeaderExtensions(@NonNull Set<RtpHeaderExtension> rtpHeaderExtensions) { + if (mClosed) { + return; + } + + try { + miSession.sendRtpHeaderExtensions( + new ArrayList<RtpHeaderExtension>(rtpHeaderExtensions)); + } catch (RemoteException e) { + } + } + + /** * A listener type for receiving notification on IMS call session events. * When an event is generated for an {@link IImsCallSession}, * the application is notified by having one of the methods called on @@ -1477,6 +1527,17 @@ public class ImsCallSession { } /** + * DTMF digit received. + * @param dtmf The DTMF digit. + */ + @Override + public void callSessionDtmfReceived(char dtmf) { + if (mListener != null) { + mListener.callSessionDtmfReceived(dtmf); + } + } + + /** * Call quality updated */ @Override @@ -1485,6 +1546,19 @@ public class ImsCallSession { mListener.callQualityChanged(callQuality); } } + + /** + * RTP header extension data received. + * @param extensions The header extension data. + */ + @Override + public void callSessionRtpHeaderExtensionsReceived( + @NonNull List<RtpHeaderExtension> extensions) { + if (mListener != null) { + mListener.callSessionRtpHeaderExtensionsReceived( + new ArraySet<RtpHeaderExtension>(extensions)); + } + } } /** diff --git a/telephony/java/android/telephony/ims/ImsCallSessionListener.java b/telephony/java/android/telephony/ims/ImsCallSessionListener.java index 2fdd195bbb26..86bb5d9f0b09 100644 --- a/telephony/java/android/telephony/ims/ImsCallSessionListener.java +++ b/telephony/java/android/telephony/ims/ImsCallSessionListener.java @@ -28,6 +28,10 @@ import android.telephony.ims.stub.ImsCallSessionImplBase; import com.android.ims.internal.IImsCallSession; +import java.util.ArrayList; +import java.util.Objects; +import java.util.Set; + /** * Listener interface for notifying the Framework's {@link ImsCallSession} for updates to an ongoing * IMS call. @@ -683,6 +687,59 @@ public class ImsCallSessionListener { } /** + * The {@link ImsService} calls this method to inform the framework of a DTMF digit which was + * received from the network. + * <p> + * According to <a href="http://tools.ietf.org/html/rfc2833">RFC 2833 sec 3.10</a>, + * event 0 ~ 9 maps to decimal value 0 ~ 9, '*' to 10, '#' to 11, event 'A' ~ 'D' to 12 ~ 15. + * <p> + * <em>Note:</em> Alpha DTMF digits are converted from lower-case to upper-case. + * + * @param dtmf The DTMF digit received, '0'-'9', *, #, A, B, C, or D. + * @throws IllegalArgumentException If an invalid DTMF character is provided. + */ + public void callSessionDtmfReceived(char dtmf) { + if (!(dtmf >= '0' && dtmf <= '9' + || dtmf >= 'A' && dtmf <= 'D' + || dtmf >= 'a' && dtmf <= 'd' + || dtmf == '*' + || dtmf == '#')) { + throw new IllegalArgumentException("DTMF digit must be 0-9, *, #, A, B, C, D"); + } + try { + mListener.callSessionDtmfReceived(Character.toUpperCase(dtmf)); + } catch (RemoteException e) { + e.rethrowFromSystemServer(); + } + } + + /** + * The {@link ImsService} calls this method to inform the framework of RTP header extension data + * which was received from the network. + * <p> + * The set of {@link RtpHeaderExtension} data are identified by local identifiers which were + * negotiated during SDP signalling. See RFC8285, + * {@link ImsCallProfile#getAcceptedRtpHeaderExtensionTypes()} and + * {@link RtpHeaderExtensionType} for more information. + * <p> + * By specification, the RTP header extension is an unacknowledged transmission and there is no + * guarantee that the header extension will be delivered by the network to the other end of the + * call. + * + * @param extensions The RTP header extension data received. + */ + public void callSessionRtpHeaderExtensionsReceived( + @NonNull Set<RtpHeaderExtension> extensions) { + Objects.requireNonNull(extensions, "extensions are required."); + try { + mListener.callSessionRtpHeaderExtensionsReceived( + new ArrayList<RtpHeaderExtension>(extensions)); + } catch (RemoteException e) { + e.rethrowFromSystemServer(); + } + } + + /** * Notifies the result of transfer request. * @hide */ diff --git a/telephony/java/android/telephony/ims/ImsReasonInfo.java b/telephony/java/android/telephony/ims/ImsReasonInfo.java index 30389a290368..184477af0b46 100644 --- a/telephony/java/android/telephony/ims/ImsReasonInfo.java +++ b/telephony/java/android/telephony/ims/ImsReasonInfo.java @@ -1353,7 +1353,7 @@ public final class ImsReasonInfo implements Parcelable { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public ImsReasonInfo(int code, int extraCode) { mCode = code; mExtraCode = extraCode; diff --git a/telephony/java/android/telephony/ims/ImsSsInfo.java b/telephony/java/android/telephony/ims/ImsSsInfo.java index 27b56b8c5b47..bc53b628131e 100644 --- a/telephony/java/android/telephony/ims/ImsSsInfo.java +++ b/telephony/java/android/telephony/ims/ImsSsInfo.java @@ -21,6 +21,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -155,10 +156,10 @@ public final class ImsSsInfo implements Parcelable { // 0: disabled, 1: enabled /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int mStatus; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public String mIcbNum; /** @hide */ public int mProvisionStatus = SERVICE_PROVISIONING_UNKNOWN; @@ -166,7 +167,7 @@ public final class ImsSsInfo implements Parcelable { private int mClirOutgoingState = CLIR_OUTGOING_DEFAULT; /**@hide*/ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public ImsSsInfo() { } diff --git a/telephony/java/android/telephony/ims/ImsStreamMediaProfile.java b/telephony/java/android/telephony/ims/ImsStreamMediaProfile.java index 131cb1a505fb..d924baee5ab9 100644 --- a/telephony/java/android/telephony/ims/ImsStreamMediaProfile.java +++ b/telephony/java/android/telephony/ims/ImsStreamMediaProfile.java @@ -17,8 +17,10 @@ package android.telephony.ims; import android.annotation.NonNull; +import android.annotation.Nullable; import android.annotation.SystemApi; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -84,16 +86,19 @@ public final class ImsStreamMediaProfile implements Parcelable { // Audio related information /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int mAudioQuality; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int mAudioDirection; + // Audio codec attributes + private AudioCodecAttributes mAudioCodecAttributes; + // Video related information /** @hide */ public int mVideoQuality; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int mVideoDirection; // Rtt related information /** @hide */ @@ -164,7 +169,7 @@ public final class ImsStreamMediaProfile implements Parcelable { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public ImsStreamMediaProfile() { mAudioQuality = AUDIO_QUALITY_NONE; mAudioDirection = DIRECTION_SEND_RECEIVE; @@ -190,6 +195,7 @@ public final class ImsStreamMediaProfile implements Parcelable { public void copyFrom(ImsStreamMediaProfile profile) { mAudioQuality = profile.mAudioQuality; mAudioDirection = profile.mAudioDirection; + mAudioCodecAttributes = profile.mAudioCodecAttributes; mVideoQuality = profile.mVideoQuality; mVideoDirection = profile.mVideoDirection; mRttMode = profile.mRttMode; @@ -198,12 +204,13 @@ public final class ImsStreamMediaProfile implements Parcelable { @NonNull @Override public String toString() { - return "{ audioQuality=" + mAudioQuality + - ", audioDirection=" + mAudioDirection + - ", videoQuality=" + mVideoQuality + - ", videoDirection=" + mVideoDirection + - ", rttMode=" + mRttMode + - ", hasRttAudioSpeech=" + mIsReceivingRttAudio + " }"; + return "{ audioQuality=" + mAudioQuality + + ", audioDirection=" + mAudioDirection + + ", audioCodecAttribute=" + mAudioCodecAttributes + + ", videoQuality=" + mVideoQuality + + ", videoDirection=" + mVideoDirection + + ", rttMode=" + mRttMode + + ", hasRttAudioSpeech=" + mIsReceivingRttAudio + " }"; } @Override @@ -215,6 +222,7 @@ public final class ImsStreamMediaProfile implements Parcelable { public void writeToParcel(Parcel out, int flags) { out.writeInt(mAudioQuality); out.writeInt(mAudioDirection); + out.writeTypedObject(mAudioCodecAttributes, flags); out.writeInt(mVideoQuality); out.writeInt(mVideoDirection); out.writeInt(mRttMode); @@ -224,6 +232,7 @@ public final class ImsStreamMediaProfile implements Parcelable { private void readFromParcel(Parcel in) { mAudioQuality = in.readInt(); mAudioDirection = in.readInt(); + mAudioCodecAttributes = in.readTypedObject(AudioCodecAttributes.CREATOR); mVideoQuality = in.readInt(); mVideoDirection = in.readInt(); mRttMode = in.readInt(); @@ -274,6 +283,23 @@ public final class ImsStreamMediaProfile implements Parcelable { return mAudioDirection; } + /** + * Get the audio codec attributes {@link AudioCodecAttributes} which may be {@code null} if + * ImsService doesn't support this information. + * @return audio codec attributes + */ + public @Nullable AudioCodecAttributes getAudioCodecAttributes() { + return mAudioCodecAttributes; + } + + /** + * Set the audio codec attributes {@link AudioCodecAttributes} which includes bitrate and + * bandwidth information. + */ + public void setAudioCodecAttributes(@NonNull AudioCodecAttributes audioCodecAttributes) { + mAudioCodecAttributes = audioCodecAttributes; + } + public int getVideoQuality() { return mVideoQuality; } diff --git a/telephony/java/android/telephony/ims/ImsVideoCallProvider.java b/telephony/java/android/telephony/ims/ImsVideoCallProvider.java index 2fca4096f447..64bdcbba265a 100644 --- a/telephony/java/android/telephony/ims/ImsVideoCallProvider.java +++ b/telephony/java/android/telephony/ims/ImsVideoCallProvider.java @@ -19,6 +19,7 @@ package android.telephony.ims; import android.annotation.SystemApi; import android.compat.annotation.UnsupportedAppUsage; import android.net.Uri; +import android.os.Build; import android.os.Handler; import android.os.Looper; import android.os.Message; @@ -179,7 +180,7 @@ public abstract class ImsVideoCallProvider { * Returns binder object which can be used across IPC methods. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public final IImsVideoCallProvider getInterface() { return mBinder; } diff --git a/telephony/java/android/telephony/ims/RtpHeaderExtension.aidl b/telephony/java/android/telephony/ims/RtpHeaderExtension.aidl new file mode 100644 index 000000000000..cbf79d352ad8 --- /dev/null +++ b/telephony/java/android/telephony/ims/RtpHeaderExtension.aidl @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2020 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.telephony.ims; + +parcelable RtpHeaderExtension;
\ No newline at end of file diff --git a/telephony/java/android/telephony/ims/RtpHeaderExtension.java b/telephony/java/android/telephony/ims/RtpHeaderExtension.java new file mode 100644 index 000000000000..f9ab7016facb --- /dev/null +++ b/telephony/java/android/telephony/ims/RtpHeaderExtension.java @@ -0,0 +1,137 @@ +/* + * Copyright (C) 2020 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.telephony.ims; + +import android.annotation.IntRange; +import android.annotation.NonNull; +import android.annotation.SystemApi; +import android.os.Parcel; +import android.os.Parcelable; + +import java.util.Arrays; +import java.util.Objects; + +/** + * A representation of an RTP header extension. + * <p> + * Per RFC8285, an RTP header extension consists of both a local identifier in the range 1-14, an + * 8-bit length indicator and a number of extension data bytes equivalent to the stated length. + * @hide + */ +@SystemApi +public final class RtpHeaderExtension implements Parcelable { + private int mLocalIdentifier; + private byte[] mExtensionData; + + /** + * Creates a new {@link RtpHeaderExtension}. + * @param localIdentifier The local identifier for this RTP header extension. + * @param extensionData The data for this RTP header extension. + * @throws IllegalArgumentException if {@code extensionId} is not in the range 1-14. + * @throws NullPointerException if {@code extensionData} is null. + */ + public RtpHeaderExtension(@IntRange(from = 1, to = 14) int localIdentifier, + @NonNull byte[] extensionData) { + if (localIdentifier < 1 || localIdentifier > 13) { + throw new IllegalArgumentException("localIdentifier must be in range 1-14"); + } + if (extensionData == null) { + throw new NullPointerException("extensionDa is required."); + } + mLocalIdentifier = localIdentifier; + mExtensionData = extensionData; + } + + /** + * Creates a new instance of {@link RtpHeaderExtension} from a parcel. + * @param in The parceled data to read. + */ + private RtpHeaderExtension(@NonNull Parcel in) { + mLocalIdentifier = in.readInt(); + mExtensionData = in.createByteArray(); + } + + /** + * The local identifier for the RTP header extension. + * <p> + * Per RFC8285, the extension ID is a value in the range 1-14 (0 is reserved for padding and + * 15 is reserved for the one-byte header form. + * <p> + * Within the current call, this extension ID will match one of the + * {@link RtpHeaderExtensionType#getLocalIdentifier()}s. + * + * @return The local identifier for this RTP header extension. + */ + @IntRange(from = 1, to = 14) + public int getLocalIdentifier() { + return mLocalIdentifier; + } + + /** + * The data payload for the RTP header extension. + * <p> + * Per RFC8285 Sec 4.3, an RTP header extension includes an 8-bit length field which indicate + * how many bytes of data are present in the RTP header extension. The extension includes this + * many bytes of actual data. + * <p> + * We represent this as a byte array who's length is equivalent to the 8-bit length field. + * @return RTP header extension data payload. The payload may be up to 255 bytes in length. + */ + public @NonNull byte[] getExtensionData() { + return mExtensionData; + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(@NonNull Parcel dest, int flags) { + dest.writeInt(mLocalIdentifier); + dest.writeByteArray(mExtensionData); + } + + public static final @NonNull Creator<RtpHeaderExtension> CREATOR = + new Creator<RtpHeaderExtension>() { + @Override + public RtpHeaderExtension createFromParcel(@NonNull Parcel in) { + return new RtpHeaderExtension(in); + } + + @Override + public RtpHeaderExtension[] newArray(int size) { + return new RtpHeaderExtension[size]; + } + }; + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + RtpHeaderExtension that = (RtpHeaderExtension) o; + return mLocalIdentifier == that.mLocalIdentifier + && Arrays.equals(mExtensionData, that.mExtensionData); + } + + @Override + public int hashCode() { + int result = Objects.hash(mLocalIdentifier); + result = 31 * result + Arrays.hashCode(mExtensionData); + return result; + } +} diff --git a/telephony/java/android/telephony/ims/RtpHeaderExtensionType.aidl b/telephony/java/android/telephony/ims/RtpHeaderExtensionType.aidl new file mode 100644 index 000000000000..3e62ffff5127 --- /dev/null +++ b/telephony/java/android/telephony/ims/RtpHeaderExtensionType.aidl @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2020 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.telephony.ims; + +parcelable RtpHeaderExtensionType;
\ No newline at end of file diff --git a/telephony/java/android/telephony/ims/RtpHeaderExtensionType.java b/telephony/java/android/telephony/ims/RtpHeaderExtensionType.java new file mode 100644 index 000000000000..e1d39c217395 --- /dev/null +++ b/telephony/java/android/telephony/ims/RtpHeaderExtensionType.java @@ -0,0 +1,136 @@ +/* + * Copyright (C) 2020 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.telephony.ims; + +import android.annotation.IntRange; +import android.annotation.NonNull; +import android.annotation.SystemApi; +import android.net.Uri; +import android.os.Parcel; +import android.os.Parcelable; + +import java.util.Objects; + +/** + * Defines a mapping between a local identifier and a {@link Uri} which identifies an RTP header + * extension. + * <p> + * According to RFC8285, SDP (Session Description Protocol) signalling for a call provides a means + * for the supported RTP header extensions for a call to be negotiated at call initiation time. + * The types of RTP header extensions potentially usable in a session are identified by a local + * identifier ({@link #getLocalIdentifier()}) when RTP header extensions are present on RTP packets. + * A {@link Uri} ({@link #getUri()}) provides a unique identifier for the RTP header extension + * format which parties in a call can use to identify supported RTP header extensions. + * @hide + */ +@SystemApi +public final class RtpHeaderExtensionType implements Parcelable { + private int mLocalIdentifier; + private Uri mUri; + + /** + * Create a new RTP header extension type. + * @param localIdentifier the local identifier. + * @param uri the {@link Uri} identifying the RTP header extension type. + * @throws IllegalArgumentException if {@code localIdentifier} is out of the expected range. + * @throws NullPointerException if {@code uri} is null. + */ + public RtpHeaderExtensionType(@IntRange(from = 1, to = 14) int localIdentifier, + @NonNull Uri uri) { + if (localIdentifier < 1 || localIdentifier > 13) { + throw new IllegalArgumentException("localIdentifier must be in range 1-14"); + } + if (uri == null) { + throw new NullPointerException("uri is required."); + } + mLocalIdentifier = localIdentifier; + mUri = uri; + } + + private RtpHeaderExtensionType(Parcel in) { + mLocalIdentifier = in.readInt(); + mUri = in.readParcelable(Uri.class.getClassLoader()); + } + + public static final @NonNull Creator<RtpHeaderExtensionType> CREATOR = + new Creator<RtpHeaderExtensionType>() { + @Override + public RtpHeaderExtensionType createFromParcel(@NonNull Parcel in) { + return new RtpHeaderExtensionType(in); + } + + @Override + public @NonNull RtpHeaderExtensionType[] newArray(int size) { + return new RtpHeaderExtensionType[size]; + } + }; + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(@NonNull Parcel dest, int flags) { + dest.writeInt(mLocalIdentifier); + dest.writeParcelable(mUri, flags); + } + + /** + * The local identifier for this RTP header extension type. + * <p> + * {@link RtpHeaderExtension}s which indicate a {@link RtpHeaderExtension#getLocalIdentifier()} + * matching this local identifier will have the format specified by {@link #getUri()}. + * <p> + * Per RFC8285, the extension ID is a value in the range 1-14 (0 is reserved for padding and + * 15 is reserved for the one-byte header form. + * + * @return The local identifier associated with this {@link #getUri()}. + */ + public @IntRange(from = 1, to = 14) int getLocalIdentifier() { + return mLocalIdentifier; + } + + /** + * A {@link Uri} which identifies the format of the RTP extension header. + * <p> + * According to RFC8285 section 5, URIs MUST be absolute and SHOULD contain a month/date pair + * in the form mmyyyy to indicate versioning of the extension. Extension headers defined in an + * RFC are typically defined using URNs starting with {@code urn:ietf:params:rtp-hdrext:}. + * For example, RFC6464 defines {@code urn:ietf:params:rtp-hdrext:ssrc-audio-level} which is an + * RTP header extension for communicating client to mixer audio level indications. + * + * @return A unique {@link Uri} identifying the format of the RTP extension header. + */ + public @NonNull Uri getUri() { + return mUri; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + RtpHeaderExtensionType that = (RtpHeaderExtensionType) o; + return mLocalIdentifier == that.mLocalIdentifier + && mUri.equals(that.mUri); + } + + @Override + public int hashCode() { + return Objects.hash(mLocalIdentifier, mUri); + } +} diff --git a/telephony/java/android/telephony/ims/aidl/IImsCallSessionListener.aidl b/telephony/java/android/telephony/ims/aidl/IImsCallSessionListener.aidl index 36d2067ad016..ed895b77a164 100644 --- a/telephony/java/android/telephony/ims/aidl/IImsCallSessionListener.aidl +++ b/telephony/java/android/telephony/ims/aidl/IImsCallSessionListener.aidl @@ -21,9 +21,12 @@ import android.telephony.ims.ImsStreamMediaProfile; import android.telephony.ims.ImsCallProfile; import android.telephony.ims.ImsReasonInfo; import android.telephony.ims.ImsConferenceState; +import android.telephony.ims.RtpHeaderExtension; import com.android.ims.internal.IImsCallSession; import android.telephony.ims.ImsSuppServiceNotification; +import java.util.List; + /** * A listener type for receiving notification on IMS call session events. * When an event is generated for an {@link IImsCallSession}, the application is notified @@ -153,9 +156,17 @@ oneway interface IImsCallSessionListener { void callSessionTransferred(); void callSessionTransferFailed(in ImsReasonInfo reasonInfo); + void callSessionDtmfReceived(char dtmf); + /** * Notifies of a change to the call quality. * @param callQuality then updated call quality */ void callQualityChanged(in CallQuality callQuality); + + /** + * Notifies of incoming RTP header extensions from the network. + * @param extensions the RTP header extensions received. + */ + void callSessionRtpHeaderExtensionsReceived(in List<RtpHeaderExtension> extensions); } diff --git a/telephony/java/android/telephony/ims/compat/ImsService.java b/telephony/java/android/telephony/ims/compat/ImsService.java index 41d1d726b3f4..303ba183c12e 100644 --- a/telephony/java/android/telephony/ims/compat/ImsService.java +++ b/telephony/java/android/telephony/ims/compat/ImsService.java @@ -20,6 +20,7 @@ import android.annotation.Nullable; import android.app.Service; import android.compat.annotation.UnsupportedAppUsage; import android.content.Intent; +import android.os.Build; import android.os.IBinder; import android.telephony.CarrierConfigManager; import android.telephony.ims.compat.feature.ImsFeature; @@ -86,7 +87,7 @@ public class ImsService extends Service { /** * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) protected final IBinder mImsServiceController = new IImsServiceController.Stub() { @Override @@ -122,7 +123,7 @@ public class ImsService extends Service { } }; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public ImsService() { } diff --git a/telephony/java/android/telephony/ims/compat/feature/ImsFeature.java b/telephony/java/android/telephony/ims/compat/feature/ImsFeature.java index 5a9e8e2dafc4..6038a18a28b1 100644 --- a/telephony/java/android/telephony/ims/compat/feature/ImsFeature.java +++ b/telephony/java/android/telephony/ims/compat/feature/ImsFeature.java @@ -19,6 +19,7 @@ package android.telephony.ims.compat.feature; import android.annotation.IntDef; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; +import android.os.Build; import android.os.IInterface; import android.os.RemoteException; import android.telephony.SubscriptionManager; @@ -78,12 +79,12 @@ public abstract class ImsFeature { mSlotId = slotId; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getFeatureState() { return mState; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) protected final void setFeatureState(@ImsState int state) { if (mState != state) { mState = state; diff --git a/telephony/java/android/telephony/ims/compat/feature/MMTelFeature.java b/telephony/java/android/telephony/ims/compat/feature/MMTelFeature.java index b52c37106049..d32e9b7f5122 100644 --- a/telephony/java/android/telephony/ims/compat/feature/MMTelFeature.java +++ b/telephony/java/android/telephony/ims/compat/feature/MMTelFeature.java @@ -18,6 +18,7 @@ package android.telephony.ims.compat.feature; import android.app.PendingIntent; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Message; import android.os.RemoteException; import android.telephony.ims.ImsCallProfile; @@ -48,7 +49,7 @@ public class MMTelFeature extends ImsFeature { // Lock for feature synchronization private final Object mLock = new Object(); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public MMTelFeature() { } diff --git a/telephony/java/android/telephony/ims/compat/stub/ImsCallSessionImplBase.java b/telephony/java/android/telephony/ims/compat/stub/ImsCallSessionImplBase.java index 06aa6428b1b2..8dcd711a96a9 100755 --- a/telephony/java/android/telephony/ims/compat/stub/ImsCallSessionImplBase.java +++ b/telephony/java/android/telephony/ims/compat/stub/ImsCallSessionImplBase.java @@ -19,6 +19,7 @@ package android.telephony.ims.compat.stub; import android.annotation.NonNull; import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Message; import android.os.RemoteException; import android.telephony.CallQuality; @@ -29,11 +30,14 @@ import android.telephony.ims.ImsConferenceState; import android.telephony.ims.ImsReasonInfo; import android.telephony.ims.ImsStreamMediaProfile; import android.telephony.ims.ImsSuppServiceNotification; +import android.telephony.ims.RtpHeaderExtension; import android.telephony.ims.aidl.IImsCallSessionListener; import com.android.ims.internal.IImsCallSession; import com.android.ims.internal.IImsVideoCallProvider; +import java.util.List; + /** * Compat implementation of ImsCallSessionImplBase for older implementations. * @@ -45,7 +49,7 @@ import com.android.ims.internal.IImsVideoCallProvider; public class ImsCallSessionImplBase extends IImsCallSession.Stub { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public ImsCallSessionImplBase() { } @@ -404,6 +408,15 @@ public class ImsCallSessionImplBase extends IImsCallSession.Stub { } /** + * Device sends RTP header extensions. + * @param headerExtensions The header extensions to send. + */ + @Override + public void sendRtpHeaderExtensions(@NonNull List<RtpHeaderExtension> headerExtensions) { + // no-op; not supported in compat layer. + } + + /** * There are two different ImsCallSessionListeners that need to reconciled here, we need to * convert the "old" version of the com.android.ims.internal.IImsCallSessionListener to the * "new" version of the Listener android.telephony.ims.ImsCallSessionListener when calling diff --git a/telephony/java/android/telephony/ims/compat/stub/ImsConfigImplBase.java b/telephony/java/android/telephony/ims/compat/stub/ImsConfigImplBase.java index 0c7264697cd3..a8278ae0d734 100644 --- a/telephony/java/android/telephony/ims/compat/stub/ImsConfigImplBase.java +++ b/telephony/java/android/telephony/ims/compat/stub/ImsConfigImplBase.java @@ -19,6 +19,7 @@ package android.telephony.ims.compat.stub; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.content.Intent; +import android.os.Build; import android.os.RemoteException; import android.util.Log; @@ -59,7 +60,7 @@ public class ImsConfigImplBase { ImsConfigStub mImsConfigStub; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public ImsConfigImplBase(Context context) { mImsConfigStub = new ImsConfigStub(this, context); } @@ -164,7 +165,7 @@ public class ImsConfigImplBase { public void setVideoQuality(int quality, ImsConfigListener listener) throws RemoteException { } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public IImsConfig getIImsConfig() { return mImsConfigStub; } /** diff --git a/telephony/java/android/telephony/ims/compat/stub/ImsUtListenerImplBase.java b/telephony/java/android/telephony/ims/compat/stub/ImsUtListenerImplBase.java index ce291d4d14c6..c689460a5cec 100644 --- a/telephony/java/android/telephony/ims/compat/stub/ImsUtListenerImplBase.java +++ b/telephony/java/android/telephony/ims/compat/stub/ImsUtListenerImplBase.java @@ -17,6 +17,7 @@ package android.telephony.ims.compat.stub; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Bundle; import android.os.RemoteException; import android.telephony.ims.ImsCallForwardInfo; @@ -40,7 +41,7 @@ import com.android.ims.internal.IImsUtListener; public class ImsUtListenerImplBase extends IImsUtListener.Stub { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public ImsUtListenerImplBase() { } diff --git a/telephony/java/android/telephony/ims/stub/ImsCallSessionImplBase.java b/telephony/java/android/telephony/ims/stub/ImsCallSessionImplBase.java index 1cebdd582b58..a3a6cb864fa5 100644 --- a/telephony/java/android/telephony/ims/stub/ImsCallSessionImplBase.java +++ b/telephony/java/android/telephony/ims/stub/ImsCallSessionImplBase.java @@ -26,10 +26,17 @@ import android.telephony.ims.ImsCallSessionListener; import android.telephony.ims.ImsReasonInfo; import android.telephony.ims.ImsStreamMediaProfile; import android.telephony.ims.ImsVideoCallProvider; +import android.telephony.ims.RtpHeaderExtension; +import android.telephony.ims.RtpHeaderExtensionType; import android.telephony.ims.aidl.IImsCallSessionListener; +import android.util.ArraySet; import com.android.ims.internal.IImsCallSession; import com.android.ims.internal.IImsVideoCallProvider; + +import java.util.List; +import java.util.Set; + /** * Base implementation of IImsCallSession, which implements stub versions of the methods available. * @@ -277,6 +284,12 @@ public class ImsCallSessionImplBase implements AutoCloseable { public void sendRttMessage(String rttMessage) { ImsCallSessionImplBase.this.sendRttMessage(rttMessage); } + + @Override + public void sendRtpHeaderExtensions(@NonNull List<RtpHeaderExtension> extensions) { + ImsCallSessionImplBase.this.sendRtpHeaderExtensions( + new ArraySet<RtpHeaderExtension>(extensions)); + } }; /** @@ -636,6 +649,22 @@ public class ImsCallSessionImplBase implements AutoCloseable { public void sendRttMessage(String rttMessage) { } + /** + * Device requests that {@code rtpHeaderExtensions} are sent as a header extension with the next + * RTP packet sent by the IMS stack. + * <p> + * The {@link RtpHeaderExtensionType}s negotiated during SDP (Session Description Protocol) + * signalling determine the {@link RtpHeaderExtension}s which can be sent using this method. + * See RFC8285 for more information. + * <p> + * By specification, the RTP header extension is an unacknowledged transmission and there is no + * guarantee that the header extension will be delivered by the network to the other end of the + * call. + * @param rtpHeaderExtensions The RTP header extensions to be included in the next RTP header. + */ + public void sendRtpHeaderExtensions(@NonNull Set<RtpHeaderExtension> rtpHeaderExtensions) { + } + /** @hide */ public IImsCallSession getServiceImpl() { return mServiceImpl; diff --git a/telephony/java/android/telephony/mbms/vendor/IMbmsStreamingService.aidl b/telephony/java/android/telephony/mbms/vendor/IMbmsStreamingService.aidl index c140127237d4..a4abfac74177 100755 --- a/telephony/java/android/telephony/mbms/vendor/IMbmsStreamingService.aidl +++ b/telephony/java/android/telephony/mbms/vendor/IMbmsStreamingService.aidl @@ -26,17 +26,17 @@ import android.telephony.mbms.StreamingServiceInfo; */ interface IMbmsStreamingService { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) int initialize(IMbmsStreamingSessionCallback callback, int subId); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) int requestUpdateStreamingServices(int subId, in List<String> serviceClasses); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) int startStreaming(int subId, String serviceId, IStreamingServiceCallback callback); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) Uri getPlaybackUri(int subId, String serviceId); void stopStreaming(int subId, String serviceId); diff --git a/telephony/java/com/android/ims/ImsConfigListener.aidl b/telephony/java/com/android/ims/ImsConfigListener.aidl index 4f229df252a6..df8144c15d77 100644 --- a/telephony/java/com/android/ims/ImsConfigListener.aidl +++ b/telephony/java/com/android/ims/ImsConfigListener.aidl @@ -47,7 +47,7 @@ oneway interface ImsConfigListener { * * @return void. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void onSetFeatureResponse(int feature, int network, int value, int status); /** diff --git a/telephony/java/com/android/ims/ImsUtInterface.java b/telephony/java/com/android/ims/ImsUtInterface.java index 4a5380e4551b..5dfbce3dd65f 100644 --- a/telephony/java/com/android/ims/ImsUtInterface.java +++ b/telephony/java/com/android/ims/ImsUtInterface.java @@ -17,6 +17,7 @@ package com.android.ims; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Handler; import android.os.Message; import android.telephony.ims.ImsCallForwardInfo; @@ -124,7 +125,7 @@ public interface ImsUtInterface { * Retrieves the configuration of the call forward. * The return value of ((AsyncResult)result.obj) is an array of {@link ImsCallForwardInfo}. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void queryCallForward(int condition, String number, Message result); /** diff --git a/telephony/java/com/android/ims/internal/IImsCallSession.aidl b/telephony/java/com/android/ims/internal/IImsCallSession.aidl index ab14e82b7087..e3a8aeed7ad5 100644 --- a/telephony/java/com/android/ims/internal/IImsCallSession.aidl +++ b/telephony/java/com/android/ims/internal/IImsCallSession.aidl @@ -20,6 +20,8 @@ import android.os.Message; import android.telephony.ims.aidl.IImsCallSessionListener; import android.telephony.ims.ImsCallProfile; import android.telephony.ims.ImsStreamMediaProfile; +import android.telephony.ims.RtpHeaderExtension; + import com.android.ims.internal.IImsVideoCallProvider; /** @@ -297,4 +299,10 @@ interface IImsCallSession { * @param rttMessage RTT message to be sent */ void sendRttMessage(in String rttMessage); + + /* + * Device sends RTP header extension(s). + * @param extensions the header extensions to be sent + */ + void sendRtpHeaderExtensions(in List<RtpHeaderExtension> extensions); } diff --git a/telephony/java/com/android/ims/internal/IImsCallSessionListener.aidl b/telephony/java/com/android/ims/internal/IImsCallSessionListener.aidl index 1c62cc48093c..8afd85633322 100644 --- a/telephony/java/com/android/ims/internal/IImsCallSessionListener.aidl +++ b/telephony/java/com/android/ims/internal/IImsCallSessionListener.aidl @@ -34,47 +34,47 @@ oneway interface IImsCallSessionListener { /** * Notifies the result of the basic session operation (setup / terminate). */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void callSessionProgressing(in IImsCallSession session, in ImsStreamMediaProfile profile); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void callSessionStarted(in IImsCallSession session, in ImsCallProfile profile); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void callSessionStartFailed(in IImsCallSession session, in ImsReasonInfo reasonInfo); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void callSessionTerminated(in IImsCallSession session, in ImsReasonInfo reasonInfo); /** * Notifies the result of the call hold/resume operation. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void callSessionHeld(in IImsCallSession session, in ImsCallProfile profile); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void callSessionHoldFailed(in IImsCallSession session, in ImsReasonInfo reasonInfo); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void callSessionHoldReceived(in IImsCallSession session, in ImsCallProfile profile); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void callSessionResumed(in IImsCallSession session, in ImsCallProfile profile); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void callSessionResumeFailed(in IImsCallSession session, in ImsReasonInfo reasonInfo); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void callSessionResumeReceived(in IImsCallSession session, in ImsCallProfile profile); /** * Notifies the result of call merge operation. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void callSessionMergeStarted(in IImsCallSession session, in IImsCallSession newSession, in ImsCallProfile profile); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void callSessionMergeComplete(in IImsCallSession session); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void callSessionMergeFailed(in IImsCallSession session, in ImsReasonInfo reasonInfo); /** * Notifies the result of call upgrade / downgrade or any other call updates. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void callSessionUpdated(in IImsCallSession session, in ImsCallProfile profile); void callSessionUpdateFailed(in IImsCallSession session, @@ -95,9 +95,9 @@ oneway interface IImsCallSessionListener { /** * Notifies the result of the participant invitation / removal to/from the conference session. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void callSessionInviteParticipantsRequestDelivered(in IImsCallSession session); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void callSessionInviteParticipantsRequestFailed(in IImsCallSession session, in ImsReasonInfo reasonInfo); void callSessionRemoveParticipantsRequestDelivered(in IImsCallSession session); @@ -107,7 +107,7 @@ oneway interface IImsCallSessionListener { /** * Notifies the changes of the conference info. in the conference session. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void callSessionConferenceStateUpdated(in IImsCallSession session, in ImsConferenceState state); @@ -120,10 +120,10 @@ oneway interface IImsCallSessionListener { /** * Notifies of handover information for this call */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void callSessionHandover(in IImsCallSession session, in int srcAccessTech, in int targetAccessTech, in ImsReasonInfo reasonInfo); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void callSessionHandoverFailed(in IImsCallSession session, in int srcAccessTech, in int targetAccessTech, in ImsReasonInfo reasonInfo); void callSessionMayHandover(in IImsCallSession session, @@ -137,7 +137,7 @@ oneway interface IImsCallSessionListener { * - {@link com.android.internal.telephony.Phone#TTY_MODE_HCO} * - {@link com.android.internal.telephony.Phone#TTY_MODE_VCO} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void callSessionTtyModeReceived(in IImsCallSession session, in int mode); /** @@ -146,13 +146,13 @@ oneway interface IImsCallSessionListener { * @param session The call session. * @param isMultiParty {@code true} if the session became multiparty, {@code false} otherwise. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void callSessionMultipartyStateChanged(in IImsCallSession session, in boolean isMultiParty); /** * Notifies the supplementary service information for the current session. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void callSessionSuppServiceReceived(in IImsCallSession session, in ImsSuppServiceNotification suppSrvNotification); diff --git a/telephony/java/com/android/ims/internal/IImsRegistrationListener.aidl b/telephony/java/com/android/ims/internal/IImsRegistrationListener.aidl index a7a62a625478..216b45c37458 100644 --- a/telephony/java/com/android/ims/internal/IImsRegistrationListener.aidl +++ b/telephony/java/com/android/ims/internal/IImsRegistrationListener.aidl @@ -32,7 +32,7 @@ oneway interface IImsRegistrationListener { * * @deprecated see {@link registrationConnectedWithRadioTech} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void registrationConnected(); /** @@ -48,7 +48,7 @@ oneway interface IImsRegistrationListener { * @param imsRadioTech the radio access technology. Valid values are {@code * RIL_RADIO_TECHNOLOGY_*} defined in {@link ServiceState}. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void registrationConnectedWithRadioTech(int imsRadioTech); /** @@ -57,14 +57,14 @@ oneway interface IImsRegistrationListener { * @param imsRadioTech the radio access technology. Valid values are {@code * RIL_RADIO_TECHNOLOGY_*} defined in {@link ServiceState}. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void registrationProgressingWithRadioTech(int imsRadioTech); /** * Notifies the application when the device is disconnected from the IMS network. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void registrationDisconnected(in ImsReasonInfo imsReasonInfo); /** @@ -98,7 +98,7 @@ oneway interface IImsRegistrationListener { * @param enabledFeatures features enabled as defined in com.android.ims.ImsConfig#FeatureConstants. * @param disabledFeatures features disabled as defined in com.android.ims.ImsConfig#FeatureConstants. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void registrationFeatureCapabilityChanged(int serviceClass, in int[] enabledFeatures, in int[] disabledFeatures); @@ -106,13 +106,13 @@ oneway interface IImsRegistrationListener { * Updates the application with the waiting voice message count. * @param count The number of waiting voice messages. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void voiceMessageCountUpdate(int count); /** * Notifies the application when the list of URIs associated with IMS client is updated. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void registrationAssociatedUriChanged(in Uri[] uris); /** @@ -123,6 +123,6 @@ oneway interface IImsRegistrationListener { * attempted. * @param imsReasonInfo Reason for the failure. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void registrationChangeFailed(in int targetAccessTech, in ImsReasonInfo imsReasonInfo); } diff --git a/telephony/java/com/android/ims/internal/IImsUtListener.aidl b/telephony/java/com/android/ims/internal/IImsUtListener.aidl index 9a12ceee5212..604adf84817b 100644 --- a/telephony/java/com/android/ims/internal/IImsUtListener.aidl +++ b/telephony/java/com/android/ims/internal/IImsUtListener.aidl @@ -31,38 +31,38 @@ oneway interface IImsUtListener { /** * Notifies the result of the supplementary service configuration udpate. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void utConfigurationUpdated(in IImsUt ut, int id); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void utConfigurationUpdateFailed(in IImsUt ut, int id, in ImsReasonInfo error); /** * Notifies the result of the supplementary service configuration query. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void utConfigurationQueried(in IImsUt ut, int id, in Bundle ssInfo); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void utConfigurationQueryFailed(in IImsUt ut, int id, in ImsReasonInfo error); void lineIdentificationSupplementaryServiceResponse(int id, in ImsSsInfo config); /** * Notifies the status of the call barring supplementary service. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void utConfigurationCallBarringQueried(in IImsUt ut, int id, in ImsSsInfo[] cbInfo); /** * Notifies the status of the call forwarding supplementary service. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void utConfigurationCallForwardQueried(in IImsUt ut, int id, in ImsCallForwardInfo[] cfInfo); /** * Notifies the status of the call waiting supplementary service. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void utConfigurationCallWaitingQueried(in IImsUt ut, int id, in ImsSsInfo[] cwInfo); diff --git a/telephony/java/com/android/ims/internal/IImsVideoCallCallback.aidl b/telephony/java/com/android/ims/internal/IImsVideoCallCallback.aidl index cf8d63794546..5d575abda979 100644 --- a/telephony/java/com/android/ims/internal/IImsVideoCallCallback.aidl +++ b/telephony/java/com/android/ims/internal/IImsVideoCallCallback.aidl @@ -31,25 +31,25 @@ import android.telecom.VideoProfile; * {@hide} */ oneway interface IImsVideoCallCallback { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void receiveSessionModifyRequest(in VideoProfile videoProfile); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void receiveSessionModifyResponse(int status, in VideoProfile requestedProfile, in VideoProfile responseProfile); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void handleCallSessionEvent(int event); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void changePeerDimensions(int width, int height); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void changeCallDataUsage(long dataUsage); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void changeCameraCapabilities(in VideoProfile.CameraCapabilities cameraCapabilities); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void changeVideoQuality(int videoQuality); } diff --git a/telephony/java/com/android/ims/internal/IImsVideoCallProvider.aidl b/telephony/java/com/android/ims/internal/IImsVideoCallProvider.aidl index 4d20bd675628..44d83897390a 100644 --- a/telephony/java/com/android/ims/internal/IImsVideoCallProvider.aidl +++ b/telephony/java/com/android/ims/internal/IImsVideoCallProvider.aidl @@ -41,7 +41,7 @@ import com.android.ims.internal.IImsVideoCallCallback; * @hide */ oneway interface IImsVideoCallProvider { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void setCallback(IImsVideoCallCallback callback); void setCamera(String cameraId, int uid); diff --git a/telephony/java/com/android/internal/telephony/ICarrierConfigLoader.aidl b/telephony/java/com/android/internal/telephony/ICarrierConfigLoader.aidl index 76ebc0f3ac2f..89620eaaf609 100644 --- a/telephony/java/com/android/internal/telephony/ICarrierConfigLoader.aidl +++ b/telephony/java/com/android/internal/telephony/ICarrierConfigLoader.aidl @@ -24,7 +24,7 @@ import android.os.PersistableBundle; interface ICarrierConfigLoader { /** @deprecated Use {@link #getConfigForSubIdWithFeature(int, String, String) instead */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) PersistableBundle getConfigForSubId(int subId, String callingPackage); PersistableBundle getConfigForSubIdWithFeature(int subId, String callingPackage, diff --git a/telephony/java/com/android/internal/telephony/IPhoneSubInfo.aidl b/telephony/java/com/android/internal/telephony/IPhoneSubInfo.aidl index 28ef235bf398..09f9b4212c03 100644 --- a/telephony/java/com/android/internal/telephony/IPhoneSubInfo.aidl +++ b/telephony/java/com/android/internal/telephony/IPhoneSubInfo.aidl @@ -25,7 +25,7 @@ import android.telephony.ImsiEncryptionInfo; interface IPhoneSubInfo { /** @deprecated Use {@link #getDeviceIdWithFeature(String, String) instead */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) String getDeviceId(String callingPackage); /** diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl index 79456360c377..36d01f459fb8 100644 --- a/telephony/java/com/android/internal/telephony/ITelephony.aidl +++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl @@ -96,7 +96,7 @@ interface ITelephony { void call(String callingPackage, String number); /** @deprecated Use {@link #isRadioOnWithFeature(String, String) instead */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) boolean isRadioOn(String callingPackage); /** @@ -110,7 +110,7 @@ interface ITelephony { /** * @deprecated Use {@link #isRadioOnForSubscriberWithFeature(int, String, String) instead */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) boolean isRadioOnForSubscriber(int subId, String callingPackage); /** @@ -190,7 +190,7 @@ interface ITelephony { * @param subId user preferred subId. * @return true if MMI command is executed. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) boolean handlePinMmiForSubscriber(int subId, String dialString); /** @@ -614,7 +614,7 @@ interface ITelephony { * successful iccOpenLogicalChannel. * @return true if the channel was closed successfully. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) boolean iccCloseLogicalChannel(int subId, int channel); /** @@ -656,7 +656,7 @@ interface ITelephony { * @return The APDU response from the ICC card with the status appended at * the end. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) String iccTransmitApduLogicalChannel(int subId, int channel, int cla, int instruction, int p1, int p2, int p3, String data); @@ -2216,4 +2216,20 @@ interface ITelephony { * does not exist on the SIM card. */ List<String> getEquivalentHomePlmns(int subId, String callingPackage, String callingFeatureId); + + /** + * Enable/Disable E-UTRA-NR Dual Connectivity + * @return operation result. See TelephonyManager.EnableNrDualConnectivityResult for + * details + * @param subId the id of the subscription + * @param enable enable/disable dual connectivity + */ + int setNrDualConnectivityState(int subId, int nrDualConnectivityState); + + /** + * Is E-UTRA-NR Dual Connectivity enabled + * @param subId the id of the subscription + * @return true if dual connectivity is enabled else false + */ + boolean isNrDualConnectivityEnabled(int subId); } diff --git a/telephony/java/com/android/internal/telephony/OperatorInfo.java b/telephony/java/com/android/internal/telephony/OperatorInfo.java index 2ca459811e04..a6f0f667d0cd 100644 --- a/telephony/java/com/android/internal/telephony/OperatorInfo.java +++ b/telephony/java/com/android/internal/telephony/OperatorInfo.java @@ -35,37 +35,37 @@ public class OperatorInfo implements Parcelable { FORBIDDEN; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private String mOperatorAlphaLong; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private String mOperatorAlphaShort; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private String mOperatorNumeric; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private State mState = State.UNKNOWN; private int mRan = AccessNetworkType.UNKNOWN; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public String getOperatorAlphaLong() { return mOperatorAlphaLong; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public String getOperatorAlphaShort() { return mOperatorAlphaShort; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public String getOperatorNumeric() { return mOperatorNumeric; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public State getState() { return mState; @@ -75,7 +75,7 @@ public class OperatorInfo implements Parcelable { return mRan; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) OperatorInfo(String operatorAlphaLong, String operatorAlphaShort, String operatorNumeric, @@ -97,7 +97,7 @@ public class OperatorInfo implements Parcelable { mRan = ran; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public OperatorInfo(String operatorAlphaLong, String operatorAlphaShort, String operatorNumeric, @@ -124,7 +124,7 @@ public class OperatorInfo implements Parcelable { /** * See state strings defined in ril.h RIL_REQUEST_QUERY_AVAILABLE_NETWORKS */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static State rilStateToState(String s) { if (s.equals("unknown")) { return State.UNKNOWN; @@ -180,7 +180,7 @@ public class OperatorInfo implements Parcelable { * Implement the Parcelable interface * Method to deserialize a OperatorInfo object, or an array thereof. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final Creator<OperatorInfo> CREATOR = new Creator<OperatorInfo>() { @Override diff --git a/telephony/java/com/android/internal/telephony/RILConstants.java b/telephony/java/com/android/internal/telephony/RILConstants.java index 4abf784e9c81..91607462c29f 100644 --- a/telephony/java/com/android/internal/telephony/RILConstants.java +++ b/telephony/java/com/android/internal/telephony/RILConstants.java @@ -513,6 +513,8 @@ public interface RILConstants { int RIL_REQUEST_SET_SYSTEM_SELECTION_CHANNELS = 210; int RIL_REQUEST_GET_BARRING_INFO = 211; int RIL_REQUEST_ENTER_SIM_DEPERSONALIZATION = 212; + int RIL_REQUEST_ENABLE_NR_DUAL_CONNECTIVITY = 213; + int RIL_REQUEST_IS_NR_DUAL_CONNECTIVITY_ENABLED = 214; int RIL_REQUEST_ALLOCATE_PDU_SESSION_ID = 215; int RIL_REQUEST_RELEASE_PDU_SESSION_ID = 216; int RIL_REQUEST_BEGIN_HANDOVER = 217; @@ -574,6 +576,7 @@ public interface RILConstants { int RIL_UNSOL_CARRIER_INFO_IMSI_ENCRYPTION = 1048; int RIL_UNSOL_NETWORK_SCAN_RESULT = 1049; int RIL_UNSOL_KEEPALIVE_STATUS = 1050; + int RIL_UNSOL_UNTHROTTLE_APN = 1052; /* The following unsols are not defined in RIL.h */ int RIL_UNSOL_HAL_NON_RIL_BASE = 1100; diff --git a/telephony/java/com/android/internal/telephony/Sms7BitEncodingTranslator.java b/telephony/java/com/android/internal/telephony/Sms7BitEncodingTranslator.java index f8ab87d042eb..2109c6a4739c 100644 --- a/telephony/java/com/android/internal/telephony/Sms7BitEncodingTranslator.java +++ b/telephony/java/com/android/internal/telephony/Sms7BitEncodingTranslator.java @@ -19,6 +19,7 @@ package com.android.internal.telephony; import android.compat.annotation.UnsupportedAppUsage; import android.content.res.Resources; import android.content.res.XmlResourceParser; +import android.os.Build; import android.util.SparseIntArray; import com.android.internal.telephony.cdma.sms.UserData; @@ -28,15 +29,15 @@ import com.android.telephony.Rlog; public class Sms7BitEncodingTranslator { private static final String TAG = "Sms7BitEncodingTranslator"; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static final boolean DBG = TelephonyUtils.IS_DEBUGGABLE; private static boolean mIs7BitTranslationTableLoaded = false; private static SparseIntArray mTranslationTable = null; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static SparseIntArray mTranslationTableCommon = null; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static SparseIntArray mTranslationTableGSM = null; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static SparseIntArray mTranslationTableCDMA = null; // Parser variables diff --git a/telephony/java/com/android/internal/telephony/SmsMessageBase.java b/telephony/java/com/android/internal/telephony/SmsMessageBase.java index 084882b10c9b..6d46ed3b8416 100644 --- a/telephony/java/com/android/internal/telephony/SmsMessageBase.java +++ b/telephony/java/com/android/internal/telephony/SmsMessageBase.java @@ -39,18 +39,18 @@ public abstract class SmsMessageBase { Pattern.compile("\\s*(\"[^\"]*\"|[^<>\"]+)\\s*<([^<>]+)>\\s*"); /** {@hide} The address of the SMSC. May be null */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) protected String mScAddress; /** {@hide} The address of the sender */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) protected SmsAddress mOriginatingAddress; /** {@hide} The address of the receiver */ protected SmsAddress mRecipientAddress; /** {@hide} The message body as a string. May be null if the message isn't text */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) protected String mMessageBody; /** {@hide} */ @@ -76,21 +76,21 @@ public abstract class SmsMessageBase { protected byte[] mUserData; /** {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) protected SmsHeader mUserDataHeader; // "Message Waiting Indication Group" // 23.038 Section 4 /** {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) protected boolean mIsMwi; /** {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) protected boolean mMwiSense; /** {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) protected boolean mMwiDontStore; /** @@ -104,7 +104,7 @@ public abstract class SmsMessageBase { protected int mIndexOnIcc = -1; /** TP-Message-Reference - Message Reference of sent message. @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int mMessageRef; @UnsupportedAppUsage diff --git a/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java b/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java index a34e474e666e..f636276f11b8 100644 --- a/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java +++ b/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java @@ -233,7 +233,7 @@ public class SmsMessage extends SmsMessageBase { * null on encode error. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static SubmitPdu getSubmitPdu(String scAddr, String destAddr, String message, boolean statusReportRequested, SmsHeader smsHeader, int priority) { @@ -316,7 +316,7 @@ public class SmsMessage extends SmsMessageBase { * @return a <code>SubmitPdu</code> containing null SC address and the encoded message. Returns * null on encode error. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static SubmitPdu getSubmitPdu(String destAddr, UserData userData, boolean statusReportRequested, int priority) { return privateGetSubmitPdu(destAddr, statusReportRequested, userData, priority); 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 d186fcf63cfe..851bc020a1da 100644 --- a/telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java +++ b/telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java @@ -18,6 +18,7 @@ package com.android.internal.telephony.cdma.sms; import android.compat.annotation.UnsupportedAppUsage; import android.content.res.Resources; +import android.os.Build; import android.telephony.SmsCbCmasInfo; import android.telephony.cdma.CdmaSmsCbProgramData; import android.telephony.cdma.CdmaSmsCbProgramResults; @@ -1919,7 +1920,7 @@ public final class BearerData { * @return the number of bits to read from the stream * @throws CodingException if the specified encoding is not supported */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private static int getBitsForNumFields(int msgEncoding, int numFields) throws CodingException { switch (msgEncoding) { diff --git a/telephony/java/com/android/internal/telephony/gsm/SmsCbHeader.java b/telephony/java/com/android/internal/telephony/gsm/SmsCbHeader.java index d1903450261b..7e2cc6af4182 100644 --- a/telephony/java/com/android/internal/telephony/gsm/SmsCbHeader.java +++ b/telephony/java/com/android/internal/telephony/gsm/SmsCbHeader.java @@ -17,6 +17,7 @@ package com.android.internal.telephony.gsm; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.telephony.SmsCbCmasInfo; import android.telephony.SmsCbEtwsInfo; @@ -111,7 +112,7 @@ public class SmsCbHeader { private final int mSerialNumber; /** The Message Identifier in 3GPP is the same as the Service Category in CDMA. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private final int mMessageIdentifier; private final int mDataCodingScheme; @@ -130,7 +131,7 @@ public class SmsCbHeader { /** CMAS warning notification info. */ private final SmsCbCmasInfo mCmasInfo; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public SmsCbHeader(byte[] pdu) throws IllegalArgumentException { if (pdu == null || pdu.length < PDU_HEADER_LENGTH) { throw new IllegalArgumentException("Illegal PDU"); @@ -228,17 +229,17 @@ public class SmsCbHeader { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getGeographicalScope() { return mGeographicalScope; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getSerialNumber() { return mSerialNumber; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getServiceCategory() { return mMessageIdentifier; } @@ -251,12 +252,12 @@ public class SmsCbHeader { return mDataCodingSchemeStructedData; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int getPageIndex() { return mPageIndex; } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public 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 e3df903b7f4f..b51e8d3d3c5d 100644 --- a/telephony/java/com/android/internal/telephony/gsm/SmsMessage.java +++ b/telephony/java/com/android/internal/telephony/gsm/SmsMessage.java @@ -266,7 +266,7 @@ public class SmsMessage extends SmsMessageBase { * encoded message. Returns null on encode error. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static SubmitPdu getSubmitPdu(String scAddress, String destinationAddress, String message, boolean statusReportRequested, byte[] header, int encoding, @@ -292,7 +292,7 @@ public class SmsMessage extends SmsMessageBase { * encoded message. Returns null on encode error. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static SubmitPdu getSubmitPdu(String scAddress, String destinationAddress, String message, boolean statusReportRequested, byte[] header, int encoding, @@ -491,7 +491,7 @@ public class SmsMessage extends SmsMessageBase { * @return a <code>SubmitPdu</code> containing the encoded SC address if applicable and the * encoded message. Returns null on encode error. */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static SubmitPdu getSubmitPdu(String scAddress, String destinationAddress, String message, boolean statusReportRequested, int validityPeriod) { @@ -774,9 +774,9 @@ public class SmsMessage extends SmsMessageBase { } private static class PduParser { - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) byte mPdu[]; - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) int mCur; SmsHeader mUserDataHeader; byte[] mUserData; @@ -1168,14 +1168,14 @@ public class SmsMessage extends SmsMessageBase { } /** {@inheritDoc} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @Override public int getStatus() { return mStatus; } /** {@inheritDoc} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @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 1d136924aa2c..d79225fe5369 100644 --- a/telephony/java/com/android/internal/telephony/uicc/IccUtils.java +++ b/telephony/java/com/android/internal/telephony/uicc/IccUtils.java @@ -21,6 +21,7 @@ import android.content.res.Resources; import android.content.res.Resources.NotFoundException; import android.graphics.Bitmap; import android.graphics.Color; +import android.os.Build; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.telephony.GsmAlphabet; @@ -385,7 +386,7 @@ public class IccUtils { return GsmAlphabet.gsm8BitUnpackedToString(data, offset, length, defaultCharset.trim()); } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static int hexCharToInt(char c) { if (c >= '0' && c <= '9') return (c - '0'); diff --git a/tests/net/common/java/android/net/NetworkCapabilitiesTest.java b/tests/net/common/java/android/net/NetworkCapabilitiesTest.java index 11a83ebf6dd7..6b7ea66df233 100644 --- a/tests/net/common/java/android/net/NetworkCapabilitiesTest.java +++ b/tests/net/common/java/android/net/NetworkCapabilitiesTest.java @@ -359,7 +359,7 @@ public class NetworkCapabilitiesTest { assertFalse(nr.satisfiedByNetworkCapabilities(new NetworkCapabilities())); } - @Test + @Test @IgnoreUpTo(Build.VERSION_CODES.R) public void testOemPrivate() { NetworkCapabilities nc = new NetworkCapabilities(); // By default OEM_PRIVATE is neither in the unwanted or required lists and the network is diff --git a/tests/net/common/java/android/net/OemNetworkPreferencesTest.java b/tests/net/common/java/android/net/OemNetworkPreferencesTest.java new file mode 100644 index 000000000000..b77ed6ab5a29 --- /dev/null +++ b/tests/net/common/java/android/net/OemNetworkPreferencesTest.java @@ -0,0 +1,104 @@ +/* + * Copyright (C) 2020 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.net; + +import static com.android.testutils.MiscAsserts.assertThrows; +import static com.android.testutils.ParcelUtils.assertParcelSane; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import android.util.SparseArray; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; + +import java.util.ArrayList; +import java.util.List; + +@RunWith(AndroidJUnit4.class) +@SmallTest +public class OemNetworkPreferencesTest { + + private static final int TEST_PREF = OemNetworkPreferences.OEM_NETWORK_PREFERENCE_DEFAULT; + private static final String TEST_PACKAGE = "com.google.apps.contacts"; + + private final List<String> mPackages = new ArrayList<>(); + private final OemNetworkPreferences.Builder mBuilder = new OemNetworkPreferences.Builder(); + + @Before + public void beforeEachTestMethod() { + mPackages.add(TEST_PACKAGE); + } + + @Test + public void builderAddNetworkPreferenceRequiresNonNullPackages() { + assertThrows(NullPointerException.class, + () -> mBuilder.addNetworkPreference(TEST_PREF, null)); + } + + @Test + public void getNetworkPreferencesReturnsCorrectValue() { + final int expectedNumberOfMappings = 1; + mBuilder.addNetworkPreference(TEST_PREF, mPackages); + + final SparseArray<List<String>> networkPreferences = + mBuilder.build().getNetworkPreferences(); + + assertEquals(expectedNumberOfMappings, networkPreferences.size()); + assertEquals(mPackages.size(), networkPreferences.get(TEST_PREF).size()); + assertEquals(mPackages.get(0), networkPreferences.get(TEST_PREF).get(0)); + } + + @Test + public void getNetworkPreferencesReturnsUnmodifiableValue() { + final String newPackage = "new.com.google.apps.contacts"; + mBuilder.addNetworkPreference(TEST_PREF, mPackages); + + final SparseArray<List<String>> networkPreferences = + mBuilder.build().getNetworkPreferences(); + + assertThrows(UnsupportedOperationException.class, + () -> networkPreferences.get(TEST_PREF).set(mPackages.size() - 1, newPackage)); + + assertThrows(UnsupportedOperationException.class, + () -> networkPreferences.get(TEST_PREF).add(newPackage)); + } + + @Test + public void toStringReturnsCorrectValue() { + mBuilder.addNetworkPreference(TEST_PREF, mPackages); + + final String networkPreferencesString = mBuilder.build().getNetworkPreferences().toString(); + + assertTrue(networkPreferencesString.contains(Integer.toString(TEST_PREF))); + assertTrue(networkPreferencesString.contains(TEST_PACKAGE)); + } + + @Test + public void testOemNetworkPreferencesParcelable() { + mBuilder.addNetworkPreference(TEST_PREF, mPackages); + + final OemNetworkPreferences prefs = mBuilder.build(); + + assertParcelSane(prefs, 1 /* fieldCount */); + } +} diff --git a/tests/net/java/com/android/server/connectivity/MultipathPolicyTrackerTest.java b/tests/net/java/com/android/server/connectivity/MultipathPolicyTrackerTest.java index de1028cd2303..c53462cfb0b2 100644 --- a/tests/net/java/com/android/server/connectivity/MultipathPolicyTrackerTest.java +++ b/tests/net/java/com/android/server/connectivity/MultipathPolicyTrackerTest.java @@ -34,6 +34,7 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.argThat; import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -53,6 +54,7 @@ import android.net.NetworkTemplate; import android.net.StringNetworkSpecifier; import android.net.TelephonyNetworkSpecifier; import android.os.Handler; +import android.os.UserHandle; import android.provider.Settings; import android.telephony.TelephonyManager; import android.test.mock.MockContentResolver; @@ -91,6 +93,7 @@ public class MultipathPolicyTrackerTest { private static final int POLICY_SNOOZED = -100; @Mock private Context mContext; + @Mock private Context mUserAllContext; @Mock private Resources mResources; @Mock private Handler mHandler; @Mock private MultipathPolicyTracker.Dependencies mDeps; @@ -127,8 +130,11 @@ public class MultipathPolicyTrackerTest { when(mContext.getResources()).thenReturn(mResources); when(mContext.getApplicationInfo()).thenReturn(new ApplicationInfo()); - when(mContext.registerReceiverAsUser(mConfigChangeReceiverCaptor.capture(), - any(), argThat(f -> f.hasAction(ACTION_CONFIGURATION_CHANGED)), any(), any())) + doReturn(UserHandle.ALL.getIdentifier()).when(mUserAllContext).getUserId(); + when(mContext.createContextAsUser(eq(UserHandle.ALL), anyInt())) + .thenReturn(mUserAllContext); + when(mUserAllContext.registerReceiver(mConfigChangeReceiverCaptor.capture(), + argThat(f -> f.hasAction(ACTION_CONFIGURATION_CHANGED)), any(), any())) .thenReturn(null); when(mDeps.getClock()).thenReturn(mClock); diff --git a/tests/net/java/com/android/server/connectivity/VpnTest.java b/tests/net/java/com/android/server/connectivity/VpnTest.java index 2fa0914dabbd..a553b584a2e3 100644 --- a/tests/net/java/com/android/server/connectivity/VpnTest.java +++ b/tests/net/java/com/android/server/connectivity/VpnTest.java @@ -241,7 +241,7 @@ public class VpnTest { doNothing().when(mNetService).registerObserver(any()); // Deny all appops by default. - when(mAppOps.noteOpNoThrow(anyInt(), anyInt(), anyString())) + when(mAppOps.noteOpNoThrow(anyString(), anyInt(), anyString(), any(), any())) .thenReturn(AppOpsManager.MODE_IGNORED); // Setup IpSecService @@ -729,26 +729,27 @@ public class VpnTest { assertEquals(expected, vpn.getProfileNameForPackage(TEST_VPN_PKG)); } - private Vpn createVpnAndSetupUidChecks(int... grantedOps) throws Exception { + private Vpn createVpnAndSetupUidChecks(String... grantedOps) throws Exception { return createVpnAndSetupUidChecks(primaryUser, grantedOps); } - private Vpn createVpnAndSetupUidChecks(UserInfo user, int... grantedOps) throws Exception { + private Vpn createVpnAndSetupUidChecks(UserInfo user, String... grantedOps) throws Exception { final Vpn vpn = createVpn(user.id); setMockedUsers(user); when(mPackageManager.getPackageUidAsUser(eq(TEST_VPN_PKG), anyInt())) .thenReturn(Process.myUid()); - for (final int op : grantedOps) { - when(mAppOps.noteOpNoThrow(op, Process.myUid(), TEST_VPN_PKG)) + for (final String opStr : grantedOps) { + when(mAppOps.noteOpNoThrow(opStr, Process.myUid(), TEST_VPN_PKG, + null /* attributionTag */, null /* message */)) .thenReturn(AppOpsManager.MODE_ALLOWED); } return vpn; } - private void checkProvisionVpnProfile(Vpn vpn, boolean expectedResult, int... checkedOps) { + private void checkProvisionVpnProfile(Vpn vpn, boolean expectedResult, String... checkedOps) { assertEquals(expectedResult, vpn.provisionVpnProfile(TEST_VPN_PKG, mVpnProfile, mKeyStore)); // The profile should always be stored, whether or not consent has been previously granted. @@ -759,8 +760,9 @@ public class VpnTest { eq(Process.SYSTEM_UID), eq(0)); - for (final int checkedOp : checkedOps) { - verify(mAppOps).noteOpNoThrow(checkedOp, Process.myUid(), TEST_VPN_PKG); + for (final String checkedOpStr : checkedOps) { + verify(mAppOps).noteOpNoThrow(checkedOpStr, Process.myUid(), TEST_VPN_PKG, + null /* attributionTag */, null /* message */); } } @@ -768,11 +770,11 @@ public class VpnTest { public void testProvisionVpnProfileNoIpsecTunnels() throws Exception { when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_IPSEC_TUNNELS)) .thenReturn(false); - final Vpn vpn = createVpnAndSetupUidChecks(AppOpsManager.OP_ACTIVATE_PLATFORM_VPN); + final Vpn vpn = createVpnAndSetupUidChecks(AppOpsManager.OPSTR_ACTIVATE_PLATFORM_VPN); try { checkProvisionVpnProfile( - vpn, true /* expectedResult */, AppOpsManager.OP_ACTIVATE_PLATFORM_VPN); + vpn, true /* expectedResult */, AppOpsManager.OPSTR_ACTIVATE_PLATFORM_VPN); fail("Expected exception due to missing feature"); } catch (UnsupportedOperationException expected) { } @@ -780,10 +782,10 @@ public class VpnTest { @Test public void testProvisionVpnProfilePreconsented() throws Exception { - final Vpn vpn = createVpnAndSetupUidChecks(AppOpsManager.OP_ACTIVATE_PLATFORM_VPN); + final Vpn vpn = createVpnAndSetupUidChecks(AppOpsManager.OPSTR_ACTIVATE_PLATFORM_VPN); checkProvisionVpnProfile( - vpn, true /* expectedResult */, AppOpsManager.OP_ACTIVATE_PLATFORM_VPN); + vpn, true /* expectedResult */, AppOpsManager.OPSTR_ACTIVATE_PLATFORM_VPN); } @Test @@ -793,19 +795,19 @@ public class VpnTest { // Expect that both the ACTIVATE_VPN and ACTIVATE_PLATFORM_VPN were tried, but the caller // had neither. checkProvisionVpnProfile(vpn, false /* expectedResult */, - AppOpsManager.OP_ACTIVATE_PLATFORM_VPN, AppOpsManager.OP_ACTIVATE_VPN); + AppOpsManager.OPSTR_ACTIVATE_PLATFORM_VPN, AppOpsManager.OPSTR_ACTIVATE_VPN); } @Test public void testProvisionVpnProfileVpnServicePreconsented() throws Exception { - final Vpn vpn = createVpnAndSetupUidChecks(AppOpsManager.OP_ACTIVATE_VPN); + final Vpn vpn = createVpnAndSetupUidChecks(AppOpsManager.OPSTR_ACTIVATE_VPN); - checkProvisionVpnProfile(vpn, true /* expectedResult */, AppOpsManager.OP_ACTIVATE_VPN); + checkProvisionVpnProfile(vpn, true /* expectedResult */, AppOpsManager.OPSTR_ACTIVATE_VPN); } @Test public void testProvisionVpnProfileTooLarge() throws Exception { - final Vpn vpn = createVpnAndSetupUidChecks(AppOpsManager.OP_ACTIVATE_PLATFORM_VPN); + final Vpn vpn = createVpnAndSetupUidChecks(AppOpsManager.OPSTR_ACTIVATE_PLATFORM_VPN); final VpnProfile bigProfile = new VpnProfile(""); bigProfile.name = new String(new byte[Vpn.MAX_VPN_PROFILE_SIZE_BYTES + 1]); @@ -821,7 +823,7 @@ public class VpnTest { public void testProvisionVpnProfileRestrictedUser() throws Exception { final Vpn vpn = createVpnAndSetupUidChecks( - restrictedProfileA, AppOpsManager.OP_ACTIVATE_PLATFORM_VPN); + restrictedProfileA, AppOpsManager.OPSTR_ACTIVATE_PLATFORM_VPN); try { vpn.provisionVpnProfile(TEST_VPN_PKG, mVpnProfile, mKeyStore); @@ -844,7 +846,7 @@ public class VpnTest { public void testDeleteVpnProfileRestrictedUser() throws Exception { final Vpn vpn = createVpnAndSetupUidChecks( - restrictedProfileA, AppOpsManager.OP_ACTIVATE_PLATFORM_VPN); + restrictedProfileA, AppOpsManager.OPSTR_ACTIVATE_PLATFORM_VPN); try { vpn.deleteVpnProfile(TEST_VPN_PKG, mKeyStore); @@ -867,7 +869,7 @@ public class VpnTest { @Test public void testStartVpnProfile() throws Exception { - final Vpn vpn = createVpnAndSetupUidChecks(AppOpsManager.OP_ACTIVATE_PLATFORM_VPN); + final Vpn vpn = createVpnAndSetupUidChecks(AppOpsManager.OPSTR_ACTIVATE_PLATFORM_VPN); when(mKeyStore.get(vpn.getProfileNameForPackage(TEST_VPN_PKG))) .thenReturn(mVpnProfile.encode()); @@ -877,14 +879,16 @@ public class VpnTest { verify(mKeyStore).get(eq(vpn.getProfileNameForPackage(TEST_VPN_PKG))); verify(mAppOps) .noteOpNoThrow( - eq(AppOpsManager.OP_ACTIVATE_PLATFORM_VPN), + eq(AppOpsManager.OPSTR_ACTIVATE_PLATFORM_VPN), eq(Process.myUid()), - eq(TEST_VPN_PKG)); + eq(TEST_VPN_PKG), + eq(null) /* attributionTag */, + eq(null) /* message */); } @Test public void testStartVpnProfileVpnServicePreconsented() throws Exception { - final Vpn vpn = createVpnAndSetupUidChecks(AppOpsManager.OP_ACTIVATE_VPN); + final Vpn vpn = createVpnAndSetupUidChecks(AppOpsManager.OPSTR_ACTIVATE_VPN); when(mKeyStore.get(vpn.getProfileNameForPackage(TEST_VPN_PKG))) .thenReturn(mVpnProfile.encode()); @@ -892,7 +896,8 @@ public class VpnTest { vpn.startVpnProfile(TEST_VPN_PKG, mKeyStore); // Verify that the the ACTIVATE_VPN appop was checked, but no error was thrown. - verify(mAppOps).noteOpNoThrow(AppOpsManager.OP_ACTIVATE_VPN, Process.myUid(), TEST_VPN_PKG); + verify(mAppOps).noteOpNoThrow(AppOpsManager.OPSTR_ACTIVATE_VPN, Process.myUid(), + TEST_VPN_PKG, null /* attributionTag */, null /* message */); } @Test @@ -908,10 +913,13 @@ public class VpnTest { // Verify both appops were checked. verify(mAppOps) .noteOpNoThrow( - eq(AppOpsManager.OP_ACTIVATE_PLATFORM_VPN), + eq(AppOpsManager.OPSTR_ACTIVATE_PLATFORM_VPN), eq(Process.myUid()), - eq(TEST_VPN_PKG)); - verify(mAppOps).noteOpNoThrow(AppOpsManager.OP_ACTIVATE_VPN, Process.myUid(), TEST_VPN_PKG); + eq(TEST_VPN_PKG), + eq(null) /* attributionTag */, + eq(null) /* message */); + verify(mAppOps).noteOpNoThrow(AppOpsManager.OPSTR_ACTIVATE_VPN, Process.myUid(), + TEST_VPN_PKG, null /* attributionTag */, null /* message */); // Keystore should never have been accessed. verify(mKeyStore, never()).get(any()); @@ -919,7 +927,7 @@ public class VpnTest { @Test public void testStartVpnProfileMissingProfile() throws Exception { - final Vpn vpn = createVpnAndSetupUidChecks(AppOpsManager.OP_ACTIVATE_PLATFORM_VPN); + final Vpn vpn = createVpnAndSetupUidChecks(AppOpsManager.OPSTR_ACTIVATE_PLATFORM_VPN); when(mKeyStore.get(vpn.getProfileNameForPackage(TEST_VPN_PKG))).thenReturn(null); @@ -932,16 +940,18 @@ public class VpnTest { verify(mKeyStore).get(vpn.getProfileNameForPackage(TEST_VPN_PKG)); verify(mAppOps) .noteOpNoThrow( - eq(AppOpsManager.OP_ACTIVATE_PLATFORM_VPN), + eq(AppOpsManager.OPSTR_ACTIVATE_PLATFORM_VPN), eq(Process.myUid()), - eq(TEST_VPN_PKG)); + eq(TEST_VPN_PKG), + eq(null) /* attributionTag */, + eq(null) /* message */); } @Test public void testStartVpnProfileRestrictedUser() throws Exception { final Vpn vpn = createVpnAndSetupUidChecks( - restrictedProfileA, AppOpsManager.OP_ACTIVATE_PLATFORM_VPN); + restrictedProfileA, AppOpsManager.OPSTR_ACTIVATE_PLATFORM_VPN); try { vpn.startVpnProfile(TEST_VPN_PKG, mKeyStore); @@ -954,7 +964,7 @@ public class VpnTest { public void testStopVpnProfileRestrictedUser() throws Exception { final Vpn vpn = createVpnAndSetupUidChecks( - restrictedProfileA, AppOpsManager.OP_ACTIVATE_PLATFORM_VPN); + restrictedProfileA, AppOpsManager.OPSTR_ACTIVATE_PLATFORM_VPN); try { vpn.stopVpnProfile(TEST_VPN_PKG); @@ -970,7 +980,7 @@ public class VpnTest { assertTrue(vpn.setPackageAuthorization(TEST_VPN_PKG, VpnManager.TYPE_VPN_SERVICE)); verify(mAppOps) .setMode( - eq(AppOpsManager.OP_ACTIVATE_VPN), + eq(AppOpsManager.OPSTR_ACTIVATE_VPN), eq(Process.myUid()), eq(TEST_VPN_PKG), eq(AppOpsManager.MODE_ALLOWED)); @@ -983,7 +993,7 @@ public class VpnTest { assertTrue(vpn.setPackageAuthorization(TEST_VPN_PKG, VpnManager.TYPE_VPN_PLATFORM)); verify(mAppOps) .setMode( - eq(AppOpsManager.OP_ACTIVATE_PLATFORM_VPN), + eq(AppOpsManager.OPSTR_ACTIVATE_PLATFORM_VPN), eq(Process.myUid()), eq(TEST_VPN_PKG), eq(AppOpsManager.MODE_ALLOWED)); @@ -996,13 +1006,13 @@ public class VpnTest { assertTrue(vpn.setPackageAuthorization(TEST_VPN_PKG, VpnManager.TYPE_VPN_NONE)); verify(mAppOps) .setMode( - eq(AppOpsManager.OP_ACTIVATE_VPN), + eq(AppOpsManager.OPSTR_ACTIVATE_VPN), eq(Process.myUid()), eq(TEST_VPN_PKG), eq(AppOpsManager.MODE_IGNORED)); verify(mAppOps) .setMode( - eq(AppOpsManager.OP_ACTIVATE_PLATFORM_VPN), + eq(AppOpsManager.OPSTR_ACTIVATE_PLATFORM_VPN), eq(Process.myUid()), eq(TEST_VPN_PKG), eq(AppOpsManager.MODE_IGNORED)); @@ -1059,7 +1069,7 @@ public class VpnTest { verify(mKeyStore).get(eq(vpn.getProfileNameForPackage(TEST_VPN_PKG))); verify(mAppOps).setMode( - eq(AppOpsManager.OP_ACTIVATE_PLATFORM_VPN), eq(uid), eq(TEST_VPN_PKG), + eq(AppOpsManager.OPSTR_ACTIVATE_PLATFORM_VPN), eq(uid), eq(TEST_VPN_PKG), eq(AppOpsManager.MODE_ALLOWED)); verify(mSystemServices).settingsSecurePutStringForUser( diff --git a/tests/net/java/com/android/server/net/NetworkStatsAccessTest.java b/tests/net/java/com/android/server/net/NetworkStatsAccessTest.java index 858358c74f80..8b730af76951 100644 --- a/tests/net/java/com/android/server/net/NetworkStatsAccessTest.java +++ b/tests/net/java/com/android/server/net/NetworkStatsAccessTest.java @@ -22,7 +22,6 @@ import static org.mockito.Mockito.when; import android.Manifest; import android.Manifest.permission; import android.app.AppOpsManager; -import android.app.admin.DeviceAdminInfo; import android.app.admin.DevicePolicyManagerInternal; import android.content.Context; import android.content.pm.PackageManager; @@ -167,13 +166,11 @@ public class NetworkStatsAccessTest { } private void setIsDeviceOwner(boolean isOwner) { - when(mDpmi.isActiveAdminWithPolicy(TEST_UID, DeviceAdminInfo.USES_POLICY_DEVICE_OWNER)) - .thenReturn(isOwner); + when(mDpmi.isActiveDeviceOwner(TEST_UID)).thenReturn(isOwner); } private void setIsProfileOwner(boolean isOwner) { - when(mDpmi.isActiveAdminWithPolicy(TEST_UID, DeviceAdminInfo.USES_POLICY_PROFILE_OWNER)) - .thenReturn(isOwner); + when(mDpmi.isActiveProfileOwner(TEST_UID)).thenReturn(isOwner); } private void setHasAppOpsPermission(int appOpsMode, boolean hasPermission) { diff --git a/tests/utils/hostutils/src/com/android/internal/util/test/SystemPreparer.java b/tests/utils/hostutils/src/com/android/internal/util/test/SystemPreparer.java index f30c35aca8da..1139fd6b811e 100644 --- a/tests/utils/hostutils/src/com/android/internal/util/test/SystemPreparer.java +++ b/tests/utils/hostutils/src/com/android/internal/util/test/SystemPreparer.java @@ -16,6 +16,7 @@ package com.android.internal.util.test; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import com.android.tradefed.device.DeviceNotAvailableException; @@ -114,6 +115,24 @@ public class SystemPreparer extends ExternalResource { return this; } + /** Stages multiple APEXs within the host test jar onto the device. */ + public SystemPreparer stageMultiplePackages(String[] resourcePaths, String[] packageNames) + throws DeviceNotAvailableException, IOException { + assertEquals(resourcePaths.length, packageNames.length); + final ITestDevice device = mDeviceProvider.getDevice(); + final String[] adbCommandLine = new String[resourcePaths.length + 2]; + adbCommandLine[0] = "install-multi-package"; + adbCommandLine[1] = "--staged"; + for (int i = 0; i < resourcePaths.length; i++) { + final File tmpFile = copyResourceToTemp(resourcePaths[i]); + adbCommandLine[i + 2] = tmpFile.getAbsolutePath(); + mInstalledPackages.add(packageNames[i]); + } + final String output = device.executeAdbCommand(adbCommandLine); + assertTrue(output.contains("Success. Reboot device to apply staged session")); + return this; + } + /** Sets the enable state of an overlay package. */ public SystemPreparer setOverlayEnabled(String packageName, boolean enabled) throws DeviceNotAvailableException { @@ -182,11 +201,29 @@ public class SystemPreparer extends ExternalResource { return this; } + private static @Nullable String getFileExtension(@Nullable String path) { + if (path == null) { + return null; + } + final int lastDot = path.lastIndexOf('.'); + if (lastDot >= 0) { + return path.substring(lastDot + 1); + } else { + return null; + } + } + /** Copies a file within the host test jar to a temporary file on the host machine. */ private File copyResourceToTemp(String resourcePath) throws IOException { - final File tempFile = mHostTempFolder.newFile(); + final String ext = getFileExtension(resourcePath); + final File tempFile; + if (ext != null) { + tempFile = File.createTempFile("junit", "." + ext, mHostTempFolder.getRoot()); + } else { + tempFile = mHostTempFolder.newFile(); + } final ClassLoader classLoader = getClass().getClassLoader(); - try (InputStream assetIs = classLoader.getResource(resourcePath).openStream(); + try (InputStream assetIs = classLoader.getResourceAsStream(resourcePath); FileOutputStream assetOs = new FileOutputStream(tempFile)) { if (assetIs == null) { throw new IllegalStateException("Failed to find resource " + resourcePath); diff --git a/tools/stats_log_api_gen/Android.bp b/tools/stats_log_api_gen/Android.bp index e3b6db08c503..c0893f70f30b 100644 --- a/tools/stats_log_api_gen/Android.bp +++ b/tools/stats_log_api_gen/Android.bp @@ -126,6 +126,9 @@ cc_library { host: { static_libs: ["libstatssocket"], }, + darwin: { + enabled: false, + }, }, } diff --git a/wifi/java/android/net/wifi/IWifiManager.aidl b/wifi/java/android/net/wifi/IWifiManager.aidl index 5063ad66e446..3f79364b7eef 100644 --- a/wifi/java/android/net/wifi/IWifiManager.aidl +++ b/wifi/java/android/net/wifi/IWifiManager.aidl @@ -187,7 +187,7 @@ interface IWifiManager void factoryReset(String packageName); - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) Network getCurrentNetwork(); byte[] retrieveBackupData(); diff --git a/wifi/java/android/net/wifi/ScanResult.java b/wifi/java/android/net/wifi/ScanResult.java index aa3a13925894..c269ba6752d9 100644 --- a/wifi/java/android/net/wifi/ScanResult.java +++ b/wifi/java/android/net/wifi/ScanResult.java @@ -22,6 +22,7 @@ import android.annotation.SystemApi; import android.compat.annotation.UnsupportedAppUsage; import android.net.wifi.WifiAnnotations.ChannelWidth; import android.net.wifi.WifiAnnotations.WifiStandard; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -375,7 +376,7 @@ public final class ScanResult implements Parcelable { * @deprecated use is80211mcResponder() instead * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean is80211McRTTResponder; /** @@ -712,47 +713,47 @@ public final class ScanResult implements Parcelable { */ public static class InformationElement { /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int EID_SSID = 0; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int EID_SUPPORTED_RATES = 1; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int EID_TIM = 5; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int EID_BSS_LOAD = 11; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int EID_ERP = 42; /** @hide */ public static final int EID_HT_CAPABILITIES = 45; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int EID_RSN = 48; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int EID_EXTENDED_SUPPORTED_RATES = 50; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int EID_HT_OPERATION = 61; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int EID_INTERWORKING = 107; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int EID_ROAMING_CONSORTIUM = 111; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int EID_EXTENDED_CAPS = 127; /** @hide */ public static final int EID_VHT_CAPABILITIES = 191; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int EID_VHT_OPERATION = 192; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int EID_VSA = 221; /** @hide */ public static final int EID_EXTENSION_PRESENT = 255; diff --git a/wifi/java/android/net/wifi/WifiConfiguration.java b/wifi/java/android/net/wifi/WifiConfiguration.java index 71f0ab8087ab..8c32d18c035c 100644 --- a/wifi/java/android/net/wifi/WifiConfiguration.java +++ b/wifi/java/android/net/wifi/WifiConfiguration.java @@ -873,7 +873,7 @@ public class WifiConfiguration implements Parcelable { * @hide * Number of reports indicating no Internet Access */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int numNoInternetAccessReports; /** @@ -893,7 +893,7 @@ public class WifiConfiguration implements Parcelable { * this configuration and selects "don't ask again". * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean noInternetAccessExpected; /** @@ -933,7 +933,7 @@ public class WifiConfiguration implements Parcelable { * @deprecated only kept for @UnsupportedAppUsage * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public boolean selfAdded; /** diff --git a/wifi/java/android/net/wifi/WifiManager.java b/wifi/java/android/net/wifi/WifiManager.java index fb6af5b550b0..b7f4c96f6604 100644 --- a/wifi/java/android/net/wifi/WifiManager.java +++ b/wifi/java/android/net/wifi/WifiManager.java @@ -1047,7 +1047,7 @@ public class WifiManager { * @see #ACTION_LINK_CONFIGURATION_CHANGED * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final String LINK_CONFIGURATION_CHANGED_ACTION = "android.net.wifi.LINK_CONFIGURATION_CHANGED"; @@ -1256,7 +1256,7 @@ public class WifiManager { * change is significant enough to change the RSSI signal level. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int RSSI_LEVELS = 5; //TODO (b/146346676): This needs to be removed, not used in the code. diff --git a/wifi/java/android/net/wifi/p2p/WifiP2pConfig.java b/wifi/java/android/net/wifi/p2p/WifiP2pConfig.java index d47989235f0b..d3a6bac2513f 100644 --- a/wifi/java/android/net/wifi/p2p/WifiP2pConfig.java +++ b/wifi/java/android/net/wifi/p2p/WifiP2pConfig.java @@ -23,6 +23,7 @@ import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; import android.net.MacAddress; import android.net.wifi.WpsInfo; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.text.TextUtils; @@ -138,7 +139,7 @@ public class WifiP2pConfig implements Parcelable { public int groupOwnerIntent = GROUP_OWNER_INTENT_AUTO; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int netId = WifiP2pGroup.NETWORK_ID_PERSISTENT; /** diff --git a/wifi/java/android/net/wifi/p2p/WifiP2pDevice.java b/wifi/java/android/net/wifi/p2p/WifiP2pDevice.java index 710175fee747..567637af02c7 100644 --- a/wifi/java/android/net/wifi/p2p/WifiP2pDevice.java +++ b/wifi/java/android/net/wifi/p2p/WifiP2pDevice.java @@ -19,6 +19,7 @@ package android.net.wifi.p2p; import android.annotation.NonNull; import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.util.Log; @@ -185,7 +186,7 @@ public class WifiP2pDevice implements Parcelable { * Note: The events formats can be looked up in the wpa_supplicant code * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public WifiP2pDevice(String string) throws IllegalArgumentException { String[] tokens = string.split("[ \n]"); Matcher match; diff --git a/wifi/java/android/net/wifi/p2p/WifiP2pDeviceList.java b/wifi/java/android/net/wifi/p2p/WifiP2pDeviceList.java index ededf67fec7f..e7866e618089 100644 --- a/wifi/java/android/net/wifi/p2p/WifiP2pDeviceList.java +++ b/wifi/java/android/net/wifi/p2p/WifiP2pDeviceList.java @@ -17,6 +17,7 @@ package android.net.wifi.p2p; import android.compat.annotation.UnsupportedAppUsage; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.text.TextUtils; @@ -83,7 +84,7 @@ public class WifiP2pDeviceList implements Parcelable { * @param device to be updated * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void update(WifiP2pDevice device) { updateSupplicantDetails(device); mDevices.get(device.deviceAddress).status = device.status; diff --git a/wifi/java/android/net/wifi/p2p/WifiP2pManager.java b/wifi/java/android/net/wifi/p2p/WifiP2pManager.java index 724ccf0d7c45..5a270870c70a 100644 --- a/wifi/java/android/net/wifi/p2p/WifiP2pManager.java +++ b/wifi/java/android/net/wifi/p2p/WifiP2pManager.java @@ -399,7 +399,7 @@ public class WifiP2pManager { public static final int CANCEL_CONNECT_SUCCEEDED = BASE + 12; /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final int CREATE_GROUP = BASE + 13; /** @hide */ public static final int CREATE_GROUP_FAILED = BASE + 14; @@ -1105,7 +1105,7 @@ public class WifiP2pManager { } } - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private int putListener(Object listener) { if (listener == null) return INVALID_LISTENER_KEY; int key; @@ -1417,7 +1417,7 @@ public class WifiP2pManager { * {@link ActionListener#onSuccess} or {@link ActionListener#onFailure}. * @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void startWps(Channel c, WpsInfo wps, ActionListener listener) { checkChannel(c); c.mAsyncChannel.sendMessage(START_WPS, 0, c.putListener(listener), wps); @@ -1698,7 +1698,7 @@ public class WifiP2pManager { } /** @hide */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) @RequiresPermission(android.Manifest.permission.CONFIGURE_WIFI_DISPLAY) public void setWFDInfo(@NonNull Channel c, @NonNull WifiP2pWfdInfo wfdInfo, @Nullable ActionListener listener) { diff --git a/wifi/java/android/net/wifi/p2p/nsd/WifiP2pServiceInfo.java b/wifi/java/android/net/wifi/p2p/nsd/WifiP2pServiceInfo.java index 37b442baeb3f..5d018e75488e 100644 --- a/wifi/java/android/net/wifi/p2p/nsd/WifiP2pServiceInfo.java +++ b/wifi/java/android/net/wifi/p2p/nsd/WifiP2pServiceInfo.java @@ -170,7 +170,7 @@ public class WifiP2pServiceInfo implements Parcelable { } /** Implement the Parcelable interface {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final @android.annotation.NonNull Creator<WifiP2pServiceInfo> CREATOR = new Creator<WifiP2pServiceInfo>() { public WifiP2pServiceInfo createFromParcel(Parcel in) { diff --git a/wifi/java/android/net/wifi/p2p/nsd/WifiP2pServiceRequest.java b/wifi/java/android/net/wifi/p2p/nsd/WifiP2pServiceRequest.java index 68cbb88037b0..dea0477cf09b 100644 --- a/wifi/java/android/net/wifi/p2p/nsd/WifiP2pServiceRequest.java +++ b/wifi/java/android/net/wifi/p2p/nsd/WifiP2pServiceRequest.java @@ -265,7 +265,7 @@ public class WifiP2pServiceRequest implements Parcelable { } /** Implement the Parcelable interface {@hide} */ - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final @android.annotation.NonNull Creator<WifiP2pServiceRequest> CREATOR = new Creator<WifiP2pServiceRequest>() { public WifiP2pServiceRequest createFromParcel(Parcel in) { |