diff options
519 files changed, 5167 insertions, 3290 deletions
diff --git a/Android.bp b/Android.bp index 79734df6a9b9..b27455202ab8 100644 --- a/Android.bp +++ b/Android.bp @@ -1189,10 +1189,7 @@ stubs_defaults { "test-base/src/**/*.java", ":opt-telephony-srcs", ":opt-net-voip-srcs", - ":openjdk_javadoc_files", - ":non_openjdk_javadoc_files", - ":android_icu4j_src_files_for_docs", - ":conscrypt_public_api_files", + ":core_public_api_files", "test-mock/src/**/*.java", "test-runner/src/**/*.java", ], @@ -1250,10 +1247,7 @@ stubs_defaults { srcs: [ ":opt-telephony-srcs", ":opt-net-voip-srcs", - ":openjdk_javadoc_files", - ":non_openjdk_javadoc_files", - ":android_icu4j_src_files_for_docs", - ":conscrypt_public_api_files", + ":core_public_api_files", ], srcs_lib: "framework", srcs_lib_whitelist_dirs: frameworks_base_subdirs, diff --git a/api/current.txt b/api/current.txt index e789d5b3f6b0..b6baea974878 100755 --- a/api/current.txt +++ b/api/current.txt @@ -4203,10 +4203,9 @@ package android.app { public class AppComponentFactory { ctor public AppComponentFactory(); - method public android.content.pm.ApplicationInfo getApplicationInfo(); method @NonNull public android.app.Activity instantiateActivity(@NonNull ClassLoader, @NonNull String, @Nullable android.content.Intent) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException; method @NonNull public android.app.Application instantiateApplication(@NonNull ClassLoader, @NonNull String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException; - method @NonNull public ClassLoader instantiateClassLoader(@NonNull ClassLoader); + method @NonNull public ClassLoader instantiateClassLoader(@NonNull ClassLoader, @NonNull android.content.pm.ApplicationInfo); method @NonNull public android.content.ContentProvider instantiateProvider(@NonNull ClassLoader, @NonNull String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException; method @NonNull public android.content.BroadcastReceiver instantiateReceiver(@NonNull ClassLoader, @NonNull String, @Nullable android.content.Intent) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException; method @NonNull public android.app.Service instantiateService(@NonNull ClassLoader, @NonNull String, @Nullable android.content.Intent) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException; @@ -27250,8 +27249,8 @@ package android.net { } public class InetAddresses { - method public static boolean isNumericAddress(String); - method public static java.net.InetAddress parseNumericAddress(String); + method public static boolean isNumericAddress(@NonNull String); + method @NonNull public static java.net.InetAddress parseNumericAddress(@NonNull String); } public final class IpPrefix implements android.os.Parcelable { @@ -27470,6 +27469,7 @@ package android.net { field public static final int NET_CAPABILITY_IA = 7; // 0x7 field public static final int NET_CAPABILITY_IMS = 4; // 0x4 field public static final int NET_CAPABILITY_INTERNET = 12; // 0xc + field public static final int NET_CAPABILITY_MCX = 23; // 0x17 field public static final int NET_CAPABILITY_MMS = 0; // 0x0 field public static final int NET_CAPABILITY_NOT_CONGESTED = 20; // 0x14 field public static final int NET_CAPABILITY_NOT_METERED = 11; // 0xb @@ -27841,25 +27841,25 @@ package android.net { public class VpnService.Builder { ctor public VpnService.Builder(); - method public android.net.VpnService.Builder addAddress(java.net.InetAddress, int); - method public android.net.VpnService.Builder addAddress(String, int); - method public android.net.VpnService.Builder addAllowedApplication(String) throws android.content.pm.PackageManager.NameNotFoundException; - method public android.net.VpnService.Builder addDisallowedApplication(String) throws android.content.pm.PackageManager.NameNotFoundException; - method public android.net.VpnService.Builder addDnsServer(java.net.InetAddress); - method public android.net.VpnService.Builder addDnsServer(String); - method public android.net.VpnService.Builder addRoute(java.net.InetAddress, int); - method public android.net.VpnService.Builder addRoute(String, int); - method public android.net.VpnService.Builder addSearchDomain(String); - method public android.net.VpnService.Builder allowBypass(); - method public android.net.VpnService.Builder allowFamily(int); - method public android.os.ParcelFileDescriptor establish(); - method public android.net.VpnService.Builder setBlocking(boolean); - method public android.net.VpnService.Builder setConfigureIntent(android.app.PendingIntent); - method public android.net.VpnService.Builder setHttpProxy(@NonNull android.net.ProxyInfo); - method public android.net.VpnService.Builder setMetered(boolean); - method public android.net.VpnService.Builder setMtu(int); - method public android.net.VpnService.Builder setSession(String); - method public android.net.VpnService.Builder setUnderlyingNetworks(android.net.Network[]); + method @NonNull public android.net.VpnService.Builder addAddress(@NonNull java.net.InetAddress, int); + method @NonNull public android.net.VpnService.Builder addAddress(@NonNull String, int); + method @NonNull public android.net.VpnService.Builder addAllowedApplication(@NonNull String) throws android.content.pm.PackageManager.NameNotFoundException; + method @NonNull public android.net.VpnService.Builder addDisallowedApplication(@NonNull String) throws android.content.pm.PackageManager.NameNotFoundException; + method @NonNull public android.net.VpnService.Builder addDnsServer(@NonNull java.net.InetAddress); + method @NonNull public android.net.VpnService.Builder addDnsServer(@NonNull String); + method @NonNull public android.net.VpnService.Builder addRoute(@NonNull java.net.InetAddress, int); + method @NonNull public android.net.VpnService.Builder addRoute(@NonNull String, int); + method @NonNull public android.net.VpnService.Builder addSearchDomain(@NonNull String); + method @NonNull public android.net.VpnService.Builder allowBypass(); + method @NonNull public android.net.VpnService.Builder allowFamily(int); + method @Nullable public android.os.ParcelFileDescriptor establish(); + method @NonNull public android.net.VpnService.Builder setBlocking(boolean); + method @NonNull public android.net.VpnService.Builder setConfigureIntent(@NonNull android.app.PendingIntent); + method @NonNull public android.net.VpnService.Builder setHttpProxy(@NonNull android.net.ProxyInfo); + method @NonNull public android.net.VpnService.Builder setMetered(boolean); + method @NonNull public android.net.VpnService.Builder setMtu(int); + method @NonNull public android.net.VpnService.Builder setSession(@NonNull String); + method @NonNull public android.net.VpnService.Builder setUnderlyingNetworks(@Nullable android.net.Network[]); } } @@ -27891,7 +27891,7 @@ package android.net.http { method public java.util.Date getValidNotAfterDate(); method @Deprecated public String getValidNotBefore(); method public java.util.Date getValidNotBeforeDate(); - method public java.security.cert.X509Certificate getX509Certificate(); + method @Nullable public java.security.cert.X509Certificate getX509Certificate(); method public static android.net.http.SslCertificate restoreState(android.os.Bundle); method public static android.os.Bundle saveState(android.net.http.SslCertificate); } @@ -37321,7 +37321,7 @@ package android.provider { } public static final class Telephony.CarrierId implements android.provider.BaseColumns { - method public static android.net.Uri getPreciseCarrierIdUriForSubscriptionId(int); + method @NonNull public static android.net.Uri getPreciseCarrierIdUriForSubscriptionId(int); method public static android.net.Uri getUriForSubscriptionId(int); field public static final String CARRIER_ID = "carrier_id"; field public static final String CARRIER_NAME = "carrier_name"; @@ -39440,7 +39440,7 @@ package android.service.carrier { public class CarrierIdentifier implements android.os.Parcelable { ctor public CarrierIdentifier(String, String, @Nullable String, @Nullable String, @Nullable String, @Nullable String); - ctor public CarrierIdentifier(String, String, @Nullable String, @Nullable String, @Nullable String, @Nullable String, int, int); + ctor public CarrierIdentifier(@NonNull String, @NonNull String, @Nullable String, @Nullable String, @Nullable String, @Nullable String, int, int); ctor public CarrierIdentifier(byte[], @Nullable String, @Nullable String); method public int describeContents(); method public int getCarrierId(); @@ -41263,14 +41263,14 @@ package android.telecom { field public static final android.os.Parcelable.Creator<android.telecom.CallIdentification> CREATOR; } - public static class CallIdentification.Builder { + public static final class CallIdentification.Builder { ctor public CallIdentification.Builder(); - method public android.telecom.CallIdentification build(); - method public android.telecom.CallIdentification.Builder setDescription(@Nullable CharSequence); - method public android.telecom.CallIdentification.Builder setDetails(@Nullable CharSequence); - method public android.telecom.CallIdentification.Builder setName(@Nullable CharSequence); - method public android.telecom.CallIdentification.Builder setNuisanceConfidence(int); - method public android.telecom.CallIdentification.Builder setPhoto(@Nullable android.graphics.drawable.Icon); + method @NonNull public android.telecom.CallIdentification build(); + method @NonNull public android.telecom.CallIdentification.Builder setDescription(@Nullable CharSequence); + method @NonNull public android.telecom.CallIdentification.Builder setDetails(@Nullable CharSequence); + method @NonNull public android.telecom.CallIdentification.Builder setName(@Nullable CharSequence); + method @NonNull public android.telecom.CallIdentification.Builder setNuisanceConfidence(int); + method @NonNull public android.telecom.CallIdentification.Builder setPhoto(@Nullable android.graphics.drawable.Icon); } public abstract class CallRedirectionService extends android.app.Service { @@ -41737,7 +41737,7 @@ package android.telecom { public final class PhoneAccountSuggestion implements android.os.Parcelable { method public int describeContents(); - method public android.telecom.PhoneAccountHandle getPhoneAccountHandle(); + method @NonNull public android.telecom.PhoneAccountHandle getPhoneAccountHandle(); method public int getReason(); method public boolean shouldAutoSelect(); method public void writeToParcel(android.os.Parcel, int); @@ -41891,8 +41891,8 @@ package android.telecom { method public android.telecom.PhoneAccount getPhoneAccount(android.telecom.PhoneAccountHandle); method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public java.util.List<android.telecom.PhoneAccountHandle> getSelfManagedPhoneAccounts(); method public android.telecom.PhoneAccountHandle getSimCallManager(); - method public String getSystemDialerPackage(); - method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public android.telecom.PhoneAccountHandle getUserSelectedOutgoingPhoneAccount(); + method @Nullable public String getSystemDialerPackage(); + method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) @Nullable public android.telecom.PhoneAccountHandle getUserSelectedOutgoingPhoneAccount(); method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String getVoiceMailNumber(android.telecom.PhoneAccountHandle); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean handleMmi(String); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean handleMmi(String, android.telecom.PhoneAccountHandle); @@ -42383,6 +42383,7 @@ package android.telephony { field public static final int CONNECTION_UNKNOWN = 2147483647; // 0x7fffffff field public static final android.os.Parcelable.Creator<android.telephony.CellInfo> CREATOR; field public static final int UNAVAILABLE = 2147483647; // 0x7fffffff + field public static final long UNAVAILABLE_LONG = 9223372036854775807L; // 0x7fffffffffffffffL } public final class CellInfoCdma extends android.telephony.CellInfo implements android.os.Parcelable { @@ -42726,7 +42727,7 @@ package android.telephony { public class ServiceState implements android.os.Parcelable { ctor public ServiceState(); ctor public ServiceState(android.telephony.ServiceState); - ctor public ServiceState(android.os.Parcel); + ctor @Deprecated public ServiceState(android.os.Parcel); method protected void copyFrom(android.telephony.ServiceState); method public int describeContents(); method public int getCdmaNetworkId(); @@ -43042,8 +43043,8 @@ package android.telephony { method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String getImei(); method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String getImei(int); method @RequiresPermission(anyOf={android.Manifest.permission.READ_PHONE_STATE, android.Manifest.permission.READ_SMS, android.Manifest.permission.READ_PHONE_NUMBERS}) public String getLine1Number(); - method public String getManufacturerCode(); - method public String getManufacturerCode(int); + method @Nullable public String getManufacturerCode(); + method @Nullable public String getManufacturerCode(int); method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String getMeid(); method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String getMeid(int); method public String getMmsUAProfUrl(); @@ -43070,8 +43071,8 @@ package android.telephony { method public int getSimState(); method public int getSimState(int); method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String getSubscriberId(); - method public String getTypeAllocationCode(); - method public String getTypeAllocationCode(int); + method @Nullable public String getTypeAllocationCode(); + method @Nullable public String getTypeAllocationCode(int); method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") @NonNull public java.util.List<android.telephony.UiccCardInfo> getUiccCardsInfo(); method @Nullable @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String getVisualVoicemailPackageName(); method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String getVoiceMailAlphaTag(); @@ -43363,6 +43364,7 @@ package android.telephony.data { field public static final int TYPE_HIPRI = 16; // 0x10 field public static final int TYPE_IA = 256; // 0x100 field public static final int TYPE_IMS = 64; // 0x40 + field public static final int TYPE_MCX = 1024; // 0x400 field public static final int TYPE_MMS = 2; // 0x2 field public static final int TYPE_SUPL = 4; // 0x4 } @@ -43452,7 +43454,7 @@ package android.telephony.euicc { } public class EuiccManager { - method public android.telephony.euicc.EuiccManager createForCardId(int); + method @NonNull public android.telephony.euicc.EuiccManager createForCardId(int); method @RequiresPermission("android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS") public void deleteSubscription(int, android.app.PendingIntent); method @RequiresPermission("android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS") public void downloadSubscription(android.telephony.euicc.DownloadableSubscription, boolean, android.app.PendingIntent); method @Nullable public String getEid(); diff --git a/api/system-current.txt b/api/system-current.txt index 67ff89f19a97..2c05ceae8491 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -3133,8 +3133,8 @@ package android.net { public class LinkAddress implements android.os.Parcelable { ctor public LinkAddress(java.net.InetAddress, int, int, int); - ctor public LinkAddress(java.net.InetAddress, int); - ctor public LinkAddress(String); + ctor public LinkAddress(@NonNull java.net.InetAddress, int); + ctor public LinkAddress(@NonNull String); ctor public LinkAddress(String, int, int); method public boolean isGlobalPreferred(); method public boolean isIPv4(); @@ -4655,6 +4655,7 @@ package android.provider { field public static final String CARRIER_APP_WHITELIST = "carrier_app_whitelist"; field public static final String DATA_STALL_CONSECUTIVE_DNS_TIMEOUT_THRESHOLD = "data_stall_consecutive_dns_timeout_threshold"; field public static final String DATA_STALL_EVALUATION_TYPE = "data_stall_evaluation_type"; + field public static final int DATA_STALL_EVALUATION_TYPE_DNS = 1; // 0x1 field public static final String DATA_STALL_MIN_EVALUATE_INTERVAL = "data_stall_min_evaluate_interval"; field public static final String DATA_STALL_VALID_DNS_TIME_THRESHOLD = "data_stall_valid_dns_time_threshold"; field public static final String DEFAULT_SM_DP_PLUS = "default_sm_dp_plus"; @@ -4863,8 +4864,8 @@ package android.service.carrier { public abstract class ApnService extends android.app.Service { ctor public ApnService(); - method public android.os.IBinder onBind(android.content.Intent); - method @WorkerThread public abstract java.util.List<android.content.ContentValues> onRestoreApns(int); + method @NonNull public android.os.IBinder onBind(@Nullable android.content.Intent); + method @WorkerThread @NonNull public abstract java.util.List<android.content.ContentValues> onRestoreApns(int); } } @@ -4947,12 +4948,15 @@ package android.service.euicc { method public abstract void onStartOtaIfNecessary(int, android.service.euicc.EuiccService.OtaStatusChangedCallback); method public abstract int onSwitchToSubscription(int, @Nullable String, boolean); method public abstract int onUpdateSubscriptionNickname(int, String, String); + field public static final String ACTION_DELETE_SUBSCRIPTION_PRIVILEGED = "android.service.euicc.action.DELETE_SUBSCRIPTION_PRIVILEGED"; field public static final String ACTION_MANAGE_EMBEDDED_SUBSCRIPTIONS = "android.service.euicc.action.MANAGE_EMBEDDED_SUBSCRIPTIONS"; field public static final String ACTION_PROVISION_EMBEDDED_SUBSCRIPTION = "android.service.euicc.action.PROVISION_EMBEDDED_SUBSCRIPTION"; + field public static final String ACTION_RENAME_SUBSCRIPTION_PRIVILEGED = "android.service.euicc.action.RENAME_SUBSCRIPTION_PRIVILEGED"; field @Deprecated public static final String ACTION_RESOLVE_CONFIRMATION_CODE = "android.service.euicc.action.RESOLVE_CONFIRMATION_CODE"; field public static final String ACTION_RESOLVE_DEACTIVATE_SIM = "android.service.euicc.action.RESOLVE_DEACTIVATE_SIM"; field public static final String ACTION_RESOLVE_NO_PRIVILEGES = "android.service.euicc.action.RESOLVE_NO_PRIVILEGES"; field public static final String ACTION_RESOLVE_RESOLVABLE_ERRORS = "android.service.euicc.action.RESOLVE_RESOLVABLE_ERRORS"; + field public static final String ACTION_TOGGLE_SUBSCRIPTION_PRIVILEGED = "android.service.euicc.action.TOGGLE_SUBSCRIPTION_PRIVILEGED"; field public static final String CATEGORY_EUICC_UI = "android.service.euicc.category.EUICC_UI"; field public static final String EUICC_SERVICE_INTERFACE = "android.service.euicc.EuiccService"; field public static final String EXTRA_RESOLUTION_ALLOW_POLICY_RULES = "android.service.euicc.extra.RESOLUTION_ALLOW_POLICY_RULES"; @@ -5410,7 +5414,7 @@ package android.telecom { } public final class PhoneAccountSuggestion implements android.os.Parcelable { - ctor public PhoneAccountSuggestion(android.telecom.PhoneAccountHandle, int, boolean); + ctor public PhoneAccountSuggestion(@NonNull android.telecom.PhoneAccountHandle, int, boolean); } public class PhoneAccountSuggestionService extends android.app.Service { @@ -5488,8 +5492,8 @@ package android.telecom { method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public java.util.List<android.telecom.PhoneAccountHandle> getPhoneAccountsSupportingScheme(String); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean isInEmergencyCall(); method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isRinging(); - method @Deprecated @RequiresPermission(allOf={android.Manifest.permission.MODIFY_PHONE_STATE, android.Manifest.permission.WRITE_SECURE_SETTINGS}) public boolean setDefaultDialer(String); - method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setUserSelectedOutgoingPhoneAccount(android.telecom.PhoneAccountHandle); + method @Deprecated @RequiresPermission(allOf={android.Manifest.permission.MODIFY_PHONE_STATE, android.Manifest.permission.WRITE_SECURE_SETTINGS}) public boolean setDefaultDialer(@Nullable String); + method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setUserSelectedOutgoingPhoneAccount(@Nullable android.telecom.PhoneAccountHandle); field public static final String EXTRA_CALL_BACK_INTENT = "android.telecom.extra.CALL_BACK_INTENT"; field public static final String EXTRA_CLEAR_MISSED_CALLS_INTENT = "android.telecom.extra.CLEAR_MISSED_CALLS_INTENT"; field public static final String EXTRA_CONNECTION_SERVICE = "android.telecom.extra.CONNECTION_SERVICE"; @@ -5509,12 +5513,12 @@ package android.telephony { field public static final int WWAN = 1; // 0x1 } - public class CallAttributes implements android.os.Parcelable { - ctor public CallAttributes(android.telephony.PreciseCallState, int, android.telephony.CallQuality); + public final class CallAttributes implements android.os.Parcelable { + ctor public CallAttributes(@NonNull android.telephony.PreciseCallState, int, @NonNull android.telephony.CallQuality); method public int describeContents(); - method public android.telephony.CallQuality getCallQuality(); + method @NonNull public android.telephony.CallQuality getCallQuality(); method public int getNetworkType(); - method public android.telephony.PreciseCallState getPreciseCallState(); + method @NonNull public android.telephony.PreciseCallState getPreciseCallState(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.telephony.CallAttributes> CREATOR; } @@ -5551,13 +5555,13 @@ package android.telephony { } public final class CarrierRestrictionRules implements android.os.Parcelable { + method @NonNull public java.util.List<java.lang.Boolean> areCarrierIdentifiersAllowed(@NonNull java.util.List<android.service.carrier.CarrierIdentifier>); method public int describeContents(); method @NonNull public java.util.List<android.service.carrier.CarrierIdentifier> getAllowedCarriers(); method public int getDefaultCarrierRestriction(); method @NonNull public java.util.List<android.service.carrier.CarrierIdentifier> getExcludedCarriers(); method public int getMultiSimPolicy(); method public boolean isAllCarriersAllowed(); - method public java.util.List<java.lang.Boolean> isCarrierIdentifiersAllowed(@NonNull java.util.List<android.service.carrier.CarrierIdentifier>); method public void writeToParcel(android.os.Parcel, int); field public static final int CARRIER_RESTRICTION_DEFAULT_ALLOWED = 1; // 0x1 field public static final int CARRIER_RESTRICTION_DEFAULT_NOT_ALLOWED = 0; // 0x0 @@ -5566,13 +5570,13 @@ package android.telephony { field public static final int MULTISIM_POLICY_ONE_VALID_SIM_MUST_BE_PRESENT = 1; // 0x1 } - public static class CarrierRestrictionRules.Builder { - method public android.telephony.CarrierRestrictionRules build(); - method public android.telephony.CarrierRestrictionRules.Builder setAllCarriersAllowed(); - method public android.telephony.CarrierRestrictionRules.Builder setAllowedCarriers(java.util.List<android.service.carrier.CarrierIdentifier>); - method public android.telephony.CarrierRestrictionRules.Builder setDefaultCarrierRestriction(int); - method public android.telephony.CarrierRestrictionRules.Builder setExcludedCarriers(java.util.List<android.service.carrier.CarrierIdentifier>); - method public android.telephony.CarrierRestrictionRules.Builder setMultiSimPolicy(int); + public static final class CarrierRestrictionRules.Builder { + method @NonNull public android.telephony.CarrierRestrictionRules build(); + method @NonNull public android.telephony.CarrierRestrictionRules.Builder setAllCarriersAllowed(); + method @NonNull public android.telephony.CarrierRestrictionRules.Builder setAllowedCarriers(@NonNull java.util.List<android.service.carrier.CarrierIdentifier>); + method @NonNull public android.telephony.CarrierRestrictionRules.Builder setDefaultCarrierRestriction(int); + method @NonNull public android.telephony.CarrierRestrictionRules.Builder setExcludedCarriers(@NonNull java.util.List<android.service.carrier.CarrierIdentifier>); + method @NonNull public android.telephony.CarrierRestrictionRules.Builder setMultiSimPolicy(int); } public final class DataFailCause { @@ -6027,12 +6031,11 @@ package android.telephony { } public class NetworkRegistrationState implements android.os.Parcelable { - ctor public NetworkRegistrationState(int, int, int, int, int, boolean, int[], @Nullable android.telephony.CellIdentity); - ctor protected NetworkRegistrationState(android.os.Parcel); + ctor public NetworkRegistrationState(int, int, int, int, int, boolean, @NonNull int[], @Nullable android.telephony.CellIdentity); method public int describeContents(); method public int getAccessNetworkTechnology(); - method public int[] getAvailableServices(); - method public android.telephony.CellIdentity getCellIdentity(); + method @NonNull public int[] getAvailableServices(); + method @Nullable public android.telephony.CellIdentity getCellIdentity(); method @Nullable public android.telephony.DataSpecificRegistrationStates getDataSpecificStates(); method public int getDomain(); method public int getRegState(); @@ -6058,22 +6061,38 @@ package android.telephony { field public static final int SERVICE_TYPE_VOICE = 1; // 0x1 } + public static class NetworkRegistrationState.Builder { + ctor public NetworkRegistrationState.Builder(); + method @NonNull public android.telephony.NetworkRegistrationState build(); + method @NonNull public android.telephony.NetworkRegistrationState.Builder setAccessNetworkTechnology(int); + method @NonNull public android.telephony.NetworkRegistrationState.Builder setAvailableServices(@NonNull int[]); + method @NonNull public android.telephony.NetworkRegistrationState.Builder setCellIdentity(@Nullable android.telephony.CellIdentity); + method @NonNull public android.telephony.NetworkRegistrationState.Builder setDomain(int); + method @NonNull public android.telephony.NetworkRegistrationState.Builder setEmergencyOnly(boolean); + method @NonNull public android.telephony.NetworkRegistrationState.Builder setNrStatus(int); + method @NonNull public android.telephony.NetworkRegistrationState.Builder setRegState(int); + method @NonNull public android.telephony.NetworkRegistrationState.Builder setRejectCause(int); + method @NonNull public android.telephony.NetworkRegistrationState.Builder setRoamingType(int); + method @NonNull public android.telephony.NetworkRegistrationState.Builder setTransportType(int); + } + public abstract class NetworkService extends android.app.Service { ctor public NetworkService(); - method protected abstract android.telephony.NetworkService.NetworkServiceProvider createNetworkServiceProvider(int); + method public android.os.IBinder onBind(android.content.Intent); + method @Nullable public abstract android.telephony.NetworkService.NetworkServiceProvider onCreateNetworkServiceProvider(int); field public static final String NETWORK_SERVICE_INTERFACE = "android.telephony.NetworkService"; } public abstract class NetworkService.NetworkServiceProvider implements java.lang.AutoCloseable { ctor public NetworkService.NetworkServiceProvider(int); method public abstract void close(); - method public void getNetworkRegistrationState(int, android.telephony.NetworkServiceCallback); - method public final int getSlotId(); + method public void getNetworkRegistrationState(int, @NonNull android.telephony.NetworkServiceCallback); + method public final int getSlotIndex(); method public final void notifyNetworkRegistrationStateChanged(); } public class NetworkServiceCallback { - method public void onGetNetworkRegistrationStateComplete(int, android.telephony.NetworkRegistrationState); + method public void onGetNetworkRegistrationStateComplete(int, @Nullable android.telephony.NetworkRegistrationState); field public static final int RESULT_ERROR_BUSY = 3; // 0x3 field public static final int RESULT_ERROR_FAILED = 5; // 0x5 field public static final int RESULT_ERROR_ILLEGAL_STATE = 4; // 0x4 @@ -6097,7 +6116,7 @@ package android.telephony { public final class PhoneNumberRange implements android.os.Parcelable { ctor public PhoneNumberRange(@NonNull String, @NonNull String, @NonNull String, @NonNull String); method public int describeContents(); - method public boolean matches(String); + method public boolean matches(@NonNull String); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.telephony.PhoneNumberRange> CREATOR; } @@ -6107,7 +6126,7 @@ package android.telephony { method @RequiresPermission("android.permission.READ_PRECISE_PHONE_STATE") public void onCallDisconnectCauseChanged(int, int); method @RequiresPermission("android.permission.READ_PRECISE_PHONE_STATE") public void onImsCallDisconnectCauseChanged(@NonNull android.telephony.ims.ImsReasonInfo); method @RequiresPermission("android.permission.READ_PRECISE_PHONE_STATE") public void onPreciseCallStateChanged(@NonNull android.telephony.PreciseCallState); - method @RequiresPermission("android.permission.READ_PRECISE_PHONE_STATE") public void onPreciseDataConnectionStateChanged(android.telephony.PreciseDataConnectionState); + method @RequiresPermission("android.permission.READ_PRECISE_PHONE_STATE") public void onPreciseDataConnectionStateChanged(@NonNull android.telephony.PreciseDataConnectionState); method public void onRadioPowerStateChanged(int); method public void onSrvccStateChanged(int); method public void onVoiceActivationStateChanged(int); @@ -6142,7 +6161,7 @@ package android.telephony { public final class PreciseDataConnectionState implements android.os.Parcelable { method public int describeContents(); - method public String getDataConnectionApn(); + method @Nullable public String getDataConnectionApn(); method public int getDataConnectionApnTypeBitMask(); method public int getDataConnectionFailCause(); method public int getDataConnectionState(); @@ -6248,12 +6267,12 @@ package android.telephony { } public class ServiceState implements android.os.Parcelable { - method public android.telephony.NetworkRegistrationState getNetworkRegistrationState(int, int); - method public java.util.List<android.telephony.NetworkRegistrationState> getNetworkRegistrationStates(); - method @Deprecated public java.util.List<android.telephony.NetworkRegistrationState> getNetworkRegistrationStates(int); - method @Deprecated public android.telephony.NetworkRegistrationState getNetworkRegistrationStates(int, int); - method public java.util.List<android.telephony.NetworkRegistrationState> getNetworkRegistrationStatesForDomain(int); - method public java.util.List<android.telephony.NetworkRegistrationState> getNetworkRegistrationStatesForTransportType(int); + method @Nullable public android.telephony.NetworkRegistrationState getNetworkRegistrationState(int, int); + method @NonNull public java.util.List<android.telephony.NetworkRegistrationState> getNetworkRegistrationStates(); + method @Deprecated @NonNull public java.util.List<android.telephony.NetworkRegistrationState> getNetworkRegistrationStates(int); + method @Deprecated @Nullable public android.telephony.NetworkRegistrationState getNetworkRegistrationStates(int, int); + method @NonNull public java.util.List<android.telephony.NetworkRegistrationState> getNetworkRegistrationStatesForDomain(int); + method @NonNull public java.util.List<android.telephony.NetworkRegistrationState> getNetworkRegistrationStatesForTransportType(int); field public static final int ROAMING_TYPE_DOMESTIC = 2; // 0x2 field public static final int ROAMING_TYPE_INTERNATIONAL = 3; // 0x3 field public static final int ROAMING_TYPE_NOT_ROAMING = 0; // 0x0 @@ -6296,17 +6315,17 @@ package android.telephony { method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDefaultDataSubId(int); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDefaultSmsSubId(int); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setSubscriptionEnabled(int, boolean); - field public static final android.net.Uri ADVANCED_CALLING_ENABLED_CONTENT_URI; + field @NonNull public static final android.net.Uri ADVANCED_CALLING_ENABLED_CONTENT_URI; field public static final int PROFILE_CLASS_DEFAULT = -1; // 0xffffffff field public static final int PROFILE_CLASS_OPERATIONAL = 2; // 0x2 field public static final int PROFILE_CLASS_PROVISIONING = 1; // 0x1 field public static final int PROFILE_CLASS_TESTING = 0; // 0x0 field public static final int PROFILE_CLASS_UNSET = -1; // 0xffffffff - field public static final android.net.Uri VT_ENABLED_CONTENT_URI; - field public static final android.net.Uri WFC_ENABLED_CONTENT_URI; - field public static final android.net.Uri WFC_MODE_CONTENT_URI; - field public static final android.net.Uri WFC_ROAMING_ENABLED_CONTENT_URI; - field public static final android.net.Uri WFC_ROAMING_MODE_CONTENT_URI; + field @NonNull public static final android.net.Uri VT_ENABLED_CONTENT_URI; + field @NonNull public static final android.net.Uri WFC_ENABLED_CONTENT_URI; + field @NonNull public static final android.net.Uri WFC_MODE_CONTENT_URI; + field @NonNull public static final android.net.Uri WFC_ROAMING_ENABLED_CONTENT_URI; + field @NonNull public static final android.net.Uri WFC_ROAMING_MODE_CONTENT_URI; } public static class SubscriptionPlan.Builder { @@ -6344,7 +6363,7 @@ package android.telephony { method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean enableDataConnectivity(); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean enableModemForSlot(int, boolean); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void enableVideoCalling(boolean); - method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getAidForAppType(int); + method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getAidForAppType(int); method @Deprecated @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public java.util.List<android.service.carrier.CarrierIdentifier> getAllowedCarriers(int); method public java.util.List<java.lang.String> getCarrierPackageNamesForIntent(android.content.Intent); method public java.util.List<java.lang.String> getCarrierPackageNamesForIntentAndPhone(android.content.Intent, int); @@ -6360,9 +6379,10 @@ package android.telephony { method @Deprecated public boolean getDataEnabled(); method @Deprecated public boolean getDataEnabled(int); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean getEmergencyCallbackMode(); - method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getIsimDomain(); - method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getIsimIst(); + method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getIsimDomain(); + method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getIsimIst(); method @NonNull @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public java.util.List<android.util.Pair<java.lang.Integer,java.lang.Integer>> getLogicalToPhysicalSlotMapping(); + method public static long getMaxNumberVerificationTimeoutMillis(); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public long getPreferredNetworkTypeBitmap(); method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public int getRadioPowerState(); method public int getSimApplicationState(); @@ -6423,7 +6443,6 @@ package android.telephony { field public static final String EXTRA_SIM_STATE = "android.telephony.extra.SIM_STATE"; field public static final String EXTRA_VISUAL_VOICEMAIL_ENABLED_BY_USER_BOOL = "android.telephony.extra.VISUAL_VOICEMAIL_ENABLED_BY_USER_BOOL"; field public static final String EXTRA_VOICEMAIL_SCRAMBLED_PIN_STRING = "android.telephony.extra.VOICEMAIL_SCRAMBLED_PIN_STRING"; - field public static final long MAX_NUMBER_VERIFICATION_TIMEOUT_MILLIS = 60000L; // 0xea60L field public static final long NETWORK_TYPE_BITMASK_1xRTT = 64L; // 0x40L field public static final long NETWORK_TYPE_BITMASK_CDMA = 8L; // 0x8L field public static final long NETWORK_TYPE_BITMASK_EDGE = 2L; // 0x2L @@ -6504,7 +6523,6 @@ package android.telephony.data { public final class DataCallResponse implements android.os.Parcelable { ctor public DataCallResponse(int, int, int, int, int, @Nullable String, @Nullable java.util.List<android.net.LinkAddress>, @Nullable java.util.List<java.net.InetAddress>, @Nullable java.util.List<java.net.InetAddress>, @Nullable java.util.List<java.lang.String>, int); - ctor public DataCallResponse(android.os.Parcel); method public int describeContents(); method public int getActive(); method @NonNull public java.util.List<android.net.LinkAddress> getAddresses(); @@ -6546,7 +6564,8 @@ package android.telephony.data { public abstract class DataService extends android.app.Service { ctor public DataService(); - method public abstract android.telephony.data.DataService.DataServiceProvider createDataServiceProvider(int); + method public android.os.IBinder onBind(android.content.Intent); + method @Nullable public abstract android.telephony.data.DataService.DataServiceProvider onCreateDataServiceProvider(int); field public static final String DATA_SERVICE_INTERFACE = "android.telephony.data.DataService"; field public static final int REQUEST_REASON_HANDOVER = 3; // 0x3 field public static final int REQUEST_REASON_NORMAL = 1; // 0x1 @@ -6558,20 +6577,20 @@ package android.telephony.data { method public abstract void close(); method public void deactivateDataCall(int, int, @Nullable android.telephony.data.DataServiceCallback); method public void getDataCallList(@NonNull android.telephony.data.DataServiceCallback); - method public final int getSlotId(); + method public final int getSlotIndex(); method public final void notifyDataCallListChanged(java.util.List<android.telephony.data.DataCallResponse>); - method public void setDataProfile(java.util.List<android.telephony.data.DataProfile>, boolean, @Nullable android.telephony.data.DataServiceCallback); - method public void setInitialAttachApn(android.telephony.data.DataProfile, boolean, @Nullable android.telephony.data.DataServiceCallback); - method public void setupDataCall(int, android.telephony.data.DataProfile, boolean, boolean, int, @Nullable android.net.LinkProperties, @Nullable android.telephony.data.DataServiceCallback); + method public void setDataProfile(@NonNull java.util.List<android.telephony.data.DataProfile>, boolean, @Nullable android.telephony.data.DataServiceCallback); + method public void setInitialAttachApn(@NonNull android.telephony.data.DataProfile, boolean, @Nullable android.telephony.data.DataServiceCallback); + method public void setupDataCall(int, @NonNull android.telephony.data.DataProfile, boolean, boolean, int, @Nullable android.net.LinkProperties, @Nullable android.telephony.data.DataServiceCallback); } public class DataServiceCallback { - method public void onDataCallListChanged(java.util.List<android.telephony.data.DataCallResponse>); + method public void onDataCallListChanged(@NonNull java.util.List<android.telephony.data.DataCallResponse>); method public void onDeactivateDataCallComplete(int); - method public void onGetDataCallListComplete(int, java.util.List<android.telephony.data.DataCallResponse>); + method public void onGetDataCallListComplete(int, @NonNull java.util.List<android.telephony.data.DataCallResponse>); method public void onSetDataProfileComplete(int); method public void onSetInitialAttachApnComplete(int); - method public void onSetupDataCallComplete(int, android.telephony.data.DataCallResponse); + method public void onSetupDataCallComplete(int, @Nullable android.telephony.data.DataCallResponse); field public static final int RESULT_ERROR_BUSY = 3; // 0x3 field public static final int RESULT_ERROR_ILLEGAL_STATE = 4; // 0x4 field public static final int RESULT_ERROR_INVALID_ARG = 2; // 0x2 @@ -6581,7 +6600,7 @@ package android.telephony.data { public abstract class QualifiedNetworksService extends android.app.Service { ctor public QualifiedNetworksService(); - method public abstract android.telephony.data.QualifiedNetworksService.NetworkAvailabilityUpdater createNetworkAvailabilityUpdater(int); + method @NonNull public abstract android.telephony.data.QualifiedNetworksService.NetworkAvailabilityUpdater createNetworkAvailabilityUpdater(int); field public static final String QUALIFIED_NETWORKS_SERVICE_INTERFACE = "android.telephony.data.QualifiedNetworksService"; } @@ -6589,7 +6608,7 @@ package android.telephony.data { ctor public QualifiedNetworksService.NetworkAvailabilityUpdater(int); method public abstract void close(); method public final int getSlotIndex(); - method public final void updateQualifiedNetworkTypes(int, int[]); + method public final void updateQualifiedNetworkTypes(int, @Nullable int[]); } } @@ -6663,14 +6682,20 @@ package android.telephony.euicc { method @RequiresPermission(android.Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS) public void getDefaultDownloadableSubscriptionList(android.app.PendingIntent); method @RequiresPermission(android.Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS) public void getDownloadableSubscriptionMetadata(android.telephony.euicc.DownloadableSubscription, android.app.PendingIntent); method @RequiresPermission(android.Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS) public int getOtaStatus(); + field public static final String ACTION_DELETE_SUBSCRIPTION_PRIVILEGED = "android.telephony.euicc.action.DELETE_SUBSCRIPTION_PRIVILEGED"; field @RequiresPermission(android.Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS) public static final String ACTION_OTA_STATUS_CHANGED = "android.telephony.euicc.action.OTA_STATUS_CHANGED"; field public static final String ACTION_PROVISION_EMBEDDED_SUBSCRIPTION = "android.telephony.euicc.action.PROVISION_EMBEDDED_SUBSCRIPTION"; + field public static final String ACTION_RENAME_SUBSCRIPTION_PRIVILEGED = "android.telephony.euicc.action.RENAME_SUBSCRIPTION_PRIVILEGED"; + field public static final String ACTION_TOGGLE_SUBSCRIPTION_PRIVILEGED = "android.telephony.euicc.action.TOGGLE_SUBSCRIPTION_PRIVILEGED"; field public static final int EUICC_OTA_FAILED = 2; // 0x2 field public static final int EUICC_OTA_IN_PROGRESS = 1; // 0x1 field public static final int EUICC_OTA_NOT_NEEDED = 4; // 0x4 field public static final int EUICC_OTA_STATUS_UNAVAILABLE = 5; // 0x5 field public static final int EUICC_OTA_SUCCEEDED = 3; // 0x3 field public static final String EXTRA_EMBEDDED_SUBSCRIPTION_DOWNLOADABLE_SUBSCRIPTIONS = "android.telephony.euicc.extra.EMBEDDED_SUBSCRIPTION_DOWNLOADABLE_SUBSCRIPTIONS"; + field public static final String EXTRA_ENABLE_SUBSCRIPTION = "android.telephony.euicc.extra.ENABLE_SUBSCRIPTION"; + field public static final String EXTRA_SUBSCRIPTION_ID = "android.telephony.euicc.extra.SUBSCRIPTION_ID"; + field public static final String EXTRA_SUBSCRIPTION_NICKNAME = "android.telephony.euicc.extra.SUBSCRIPTION_NICKNAME"; } @IntDef(prefix={"EUICC_OTA_"}, value={android.telephony.euicc.EuiccManager.EUICC_OTA_IN_PROGRESS, android.telephony.euicc.EuiccManager.EUICC_OTA_FAILED, android.telephony.euicc.EuiccManager.EUICC_OTA_SUCCEEDED, android.telephony.euicc.EuiccManager.EUICC_OTA_NOT_NEEDED, android.telephony.euicc.EuiccManager.EUICC_OTA_STATUS_UNAVAILABLE}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface EuiccManager.OtaStatus { @@ -6825,7 +6850,7 @@ package android.telephony.ims { } public class ImsCallSessionListener { - method public void callQualityChanged(android.telephony.CallQuality); + method public void callQualityChanged(@NonNull android.telephony.CallQuality); method public void callSessionConferenceExtendFailed(android.telephony.ims.ImsReasonInfo); 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); @@ -6850,7 +6875,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 callSessionRttAudioIndicatorChanged(android.telephony.ims.ImsStreamMediaProfile); + method public void callSessionRttAudioIndicatorChanged(@NonNull android.telephony.ims.ImsStreamMediaProfile); method public void callSessionRttMessageReceived(String); method public void callSessionRttModifyRequestReceived(android.telephony.ims.ImsCallProfile); method public void callSessionRttModifyResponseReceived(int); @@ -6926,14 +6951,14 @@ package android.telephony.ims { method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isVtSettingEnabled(); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void registerImsRegistrationCallback(java.util.concurrent.Executor, @NonNull android.telephony.ims.ImsMmTelManager.RegistrationCallback) throws android.telephony.ims.ImsException; method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void registerMmTelCapabilityCallback(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.ImsMmTelManager.CapabilityCallback) throws android.telephony.ims.ImsException; - method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setAdvancedCallingSetting(boolean); + method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setAdvancedCallingSettingEnabled(boolean); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setRttCapabilitySetting(boolean); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setVoWiFiModeSetting(int); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setVoWiFiNonPersistent(boolean, int); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setVoWiFiRoamingModeSetting(int); - method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setVoWiFiRoamingSetting(boolean); - method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setVoWiFiSetting(boolean); - method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setVtSetting(boolean); + method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setVoWiFiRoamingSettingEnabled(boolean); + method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setVoWiFiSettingEnabled(boolean); + method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setVtSettingEnabled(boolean); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void unregisterImsRegistrationCallback(@NonNull android.telephony.ims.ImsMmTelManager.RegistrationCallback); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void unregisterMmTelCapabilityCallback(@NonNull android.telephony.ims.ImsMmTelManager.CapabilityCallback); field public static final int WIFI_MODE_CELLULAR_PREFERRED = 1; // 0x1 @@ -6948,10 +6973,10 @@ package android.telephony.ims { public static class ImsMmTelManager.RegistrationCallback { ctor public ImsMmTelManager.RegistrationCallback(); - method public void onDeregistered(android.telephony.ims.ImsReasonInfo); method public void onRegistered(int); method public void onRegistering(int); method public void onTechnologyChangeFailed(int, android.telephony.ims.ImsReasonInfo); + method public void onUnregistered(android.telephony.ims.ImsReasonInfo); } public final class ImsReasonInfo implements android.os.Parcelable { @@ -7154,12 +7179,12 @@ package android.telephony.ims { public final class ImsSsData implements android.os.Parcelable { ctor public ImsSsData(int, int, int, int, int); method public int describeContents(); - method public android.telephony.ims.ImsCallForwardInfo[] getCallForwardInfo(); + method @Nullable public java.util.List<android.telephony.ims.ImsCallForwardInfo> getCallForwardInfo(); method public int getRequestType(); method public int getResult(); method public int getServiceClass(); method public int getServiceType(); - method @NonNull public android.telephony.ims.ImsSsInfo[] getSuppServiceInfo(); + method @NonNull public java.util.List<android.telephony.ims.ImsSsInfo> getSuppServiceInfo(); method public int getTeleserviceType(); method public boolean isTypeBarring(); method public boolean isTypeCf(); @@ -7219,11 +7244,11 @@ package android.telephony.ims { field public static final int SS_WAIT = 12; // 0xc } - public static class ImsSsData.Builder { + public static final class ImsSsData.Builder { ctor public ImsSsData.Builder(int, int, int, int, int); method @NonNull public android.telephony.ims.ImsSsData build(); - method @NonNull public android.telephony.ims.ImsSsData.Builder setCallForwardingInfo(@NonNull android.telephony.ims.ImsCallForwardInfo[]); - method @NonNull public android.telephony.ims.ImsSsData.Builder setSuppServiceInfo(@NonNull android.telephony.ims.ImsSsInfo[]); + method @NonNull public android.telephony.ims.ImsSsData.Builder setCallForwardingInfo(@NonNull java.util.List<android.telephony.ims.ImsCallForwardInfo>); + method @NonNull public android.telephony.ims.ImsSsData.Builder setSuppServiceInfo(@NonNull java.util.List<android.telephony.ims.ImsSsInfo>); } public final class ImsSsInfo implements android.os.Parcelable { @@ -7232,7 +7257,7 @@ package android.telephony.ims { method public int getClirInterrogationStatus(); method public int getClirOutgoingState(); method @Deprecated public String getIcbNum(); - method public String getIncomingCommunicationBarringNumber(); + method @Nullable public String getIncomingCommunicationBarringNumber(); method public int getProvisionStatus(); method public int getStatus(); method public void writeToParcel(android.os.Parcel, int); @@ -7253,7 +7278,7 @@ package android.telephony.ims { field public static final int SERVICE_PROVISIONING_UNKNOWN = -1; // 0xffffffff } - public static class ImsSsInfo.Builder { + public static final class ImsSsInfo.Builder { ctor public ImsSsInfo.Builder(int); method @NonNull public android.telephony.ims.ImsSsInfo build(); method @NonNull public android.telephony.ims.ImsSsInfo.Builder setClirInterrogationStatus(int); @@ -7701,12 +7726,12 @@ package android.telephony.mbms.vendor { public class MbmsGroupCallServiceBase extends android.app.Service { ctor public MbmsGroupCallServiceBase(); method public void dispose(int) throws android.os.RemoteException; - method public int initialize(android.telephony.mbms.MbmsGroupCallSessionCallback, int) throws android.os.RemoteException; + method public int initialize(@NonNull android.telephony.mbms.MbmsGroupCallSessionCallback, int) throws android.os.RemoteException; method public void onAppCallbackDied(int, int); method public android.os.IBinder onBind(android.content.Intent); - method public int startGroupCall(int, long, java.util.List<java.lang.Integer>, java.util.List<java.lang.Integer>, android.telephony.mbms.GroupCallCallback); + method public int startGroupCall(int, long, @NonNull java.util.List<java.lang.Integer>, @NonNull java.util.List<java.lang.Integer>, @NonNull android.telephony.mbms.GroupCallCallback); method public void stopGroupCall(int, long); - method public void updateGroupCall(int, long, java.util.List<java.lang.Integer>, java.util.List<java.lang.Integer>); + method public void updateGroupCall(int, long, @NonNull java.util.List<java.lang.Integer>, @NonNull java.util.List<java.lang.Integer>); } public class MbmsStreamingServiceBase extends android.os.Binder { diff --git a/api/test-current.txt b/api/test-current.txt index 400046bad74a..8391e97ed9d5 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -626,8 +626,8 @@ package android.net { public class LinkAddress implements android.os.Parcelable { ctor public LinkAddress(java.net.InetAddress, int, int, int); - ctor public LinkAddress(java.net.InetAddress, int); - ctor public LinkAddress(String); + ctor public LinkAddress(@NonNull java.net.InetAddress, int); + ctor public LinkAddress(@NonNull String); ctor public LinkAddress(String, int, int); method public boolean isGlobalPreferred(); method public boolean isIPv4(); @@ -1227,6 +1227,7 @@ package android.provider { field public static final String CAPTIVE_PORTAL_USE_HTTPS = "captive_portal_use_https"; field public static final String DATA_STALL_CONSECUTIVE_DNS_TIMEOUT_THRESHOLD = "data_stall_consecutive_dns_timeout_threshold"; field public static final String DATA_STALL_EVALUATION_TYPE = "data_stall_evaluation_type"; + field public static final int DATA_STALL_EVALUATION_TYPE_DNS = 1; // 0x1 field public static final String DATA_STALL_MIN_EVALUATE_INTERVAL = "data_stall_min_evaluate_interval"; field public static final String DATA_STALL_VALID_DNS_TIME_THRESHOLD = "data_stall_valid_dns_time_threshold"; field public static final String HIDDEN_API_BLACKLIST_EXEMPTIONS = "hidden_api_blacklist_exemptions"; @@ -1439,8 +1440,12 @@ package android.telecom { ctor public CallAudioState(boolean, int, int, @Nullable android.bluetooth.BluetoothDevice, @NonNull java.util.Collection<android.bluetooth.BluetoothDevice>); } + public abstract class Conference extends android.telecom.Conferenceable { + method public android.telecom.Connection getPrimaryConnection(); + } + public final class PhoneAccountSuggestion implements android.os.Parcelable { - ctor public PhoneAccountSuggestion(android.telecom.PhoneAccountHandle, int, boolean); + ctor public PhoneAccountSuggestion(@NonNull android.telecom.PhoneAccountHandle, int, boolean); } public class PhoneAccountSuggestionService extends android.app.Service { @@ -1451,6 +1456,16 @@ package android.telecom { field public static final String SERVICE_INTERFACE = "android.telecom.PhoneAccountSuggestionService"; } + public class TelecomManager { + method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public int getCurrentTtyMode(); + method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean isInEmergencyCall(); + method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setUserSelectedOutgoingPhoneAccount(@Nullable android.telecom.PhoneAccountHandle); + field public static final int TTY_MODE_FULL = 1; // 0x1 + field public static final int TTY_MODE_HCO = 2; // 0x2 + field public static final int TTY_MODE_OFF = 0; // 0x0 + field public static final int TTY_MODE_VCO = 3; // 0x3 + } + } package android.telephony { @@ -1544,12 +1559,12 @@ package android.telephony.mbms.vendor { public class MbmsGroupCallServiceBase extends android.app.Service { ctor public MbmsGroupCallServiceBase(); method public void dispose(int) throws android.os.RemoteException; - method public int initialize(android.telephony.mbms.MbmsGroupCallSessionCallback, int) throws android.os.RemoteException; + method public int initialize(@NonNull android.telephony.mbms.MbmsGroupCallSessionCallback, int) throws android.os.RemoteException; method public void onAppCallbackDied(int, int); method public android.os.IBinder onBind(android.content.Intent); - method public int startGroupCall(int, long, java.util.List<java.lang.Integer>, java.util.List<java.lang.Integer>, android.telephony.mbms.GroupCallCallback); + method public int startGroupCall(int, long, @NonNull java.util.List<java.lang.Integer>, @NonNull java.util.List<java.lang.Integer>, @NonNull android.telephony.mbms.GroupCallCallback); method public void stopGroupCall(int, long); - method public void updateGroupCall(int, long, java.util.List<java.lang.Integer>, java.util.List<java.lang.Integer>); + method public void updateGroupCall(int, long, @NonNull java.util.List<java.lang.Integer>, @NonNull java.util.List<java.lang.Integer>); } public class MbmsStreamingServiceBase extends android.os.Binder { diff --git a/cmds/hid/hid b/cmds/hid/hid index 2359fcd738dd..3931da1e2a85 100755 --- a/cmds/hid/hid +++ b/cmds/hid/hid @@ -5,4 +5,10 @@ # base=/system export CLASSPATH=$base/framework/hid.jar + +# Preload the native portion libhidcommand_jni.so to bypass the dependency +# checks in the Java classloader, which prohibit dependencies that aren't +# listed in system/core/rootdir/etc/public.libraries.android.txt. +export LD_PRELOAD=libhidcommand_jni.so + exec app_process $base/bin com.android.commands.hid.Hid "$@" diff --git a/cmds/statsd/OWNERS b/cmds/statsd/OWNERS index deebd4e3cd3b..13157505fc28 100644 --- a/cmds/statsd/OWNERS +++ b/cmds/statsd/OWNERS @@ -1,7 +1,6 @@ bookatz@google.com cjyu@google.com dwchen@google.com -gaillard@google.com jinyithu@google.com joeo@google.com kwekua@google.com diff --git a/cmds/statsd/src/atoms.proto b/cmds/statsd/src/atoms.proto index 2fe6caf8844c..47eccdbc8c1f 100644 --- a/cmds/statsd/src/atoms.proto +++ b/cmds/statsd/src/atoms.proto @@ -2410,6 +2410,9 @@ message LmkKillOccurred { // The elapsed real time of start of the process. optional int64 process_start_time_nanos = 9; + + // Min oom adj score considered by lmkd. + optional int32 min_oom_score = 10; } /* diff --git a/config/hiddenapi-greylist.txt b/config/hiddenapi-greylist.txt index d87890b048e7..0b3fae2b37c9 100644 --- a/config/hiddenapi-greylist.txt +++ b/config/hiddenapi-greylist.txt @@ -1556,9 +1556,6 @@ Landroid/telephony/SmsCbMessage;->getServiceCategory()I Landroid/telephony/SmsCbMessage;->isCmasMessage()Z Landroid/telephony/SmsCbMessage;->isEmergencyMessage()Z Landroid/telephony/TelephonyManager$MultiSimVariants;->values()[Landroid/telephony/TelephonyManager$MultiSimVariants; -Landroid/test/AndroidTestCase;->getTestContext()Landroid/content/Context; -Landroid/test/AndroidTestCase;->setTestContext(Landroid/content/Context;)V -Landroid/test/InstrumentationTestCase;->runMethod(Ljava/lang/reflect/Method;I)V Landroid/util/Singleton;-><init>()V Landroid/util/XmlPullAttributes;-><init>(Lorg/xmlpull/v1/XmlPullParser;)V Landroid/util/XmlPullAttributes;->mParser:Lorg/xmlpull/v1/XmlPullParser; @@ -3359,7 +3356,6 @@ Lcom/android/internal/telephony/ServiceStateTracker;->isInHomeSidNid(II)Z Lcom/android/internal/telephony/ServiceStateTracker;->isInvalidOperatorNumeric(Ljava/lang/String;)Z Lcom/android/internal/telephony/ServiceStateTracker;->log(Ljava/lang/String;)V Lcom/android/internal/telephony/ServiceStateTracker;->loge(Ljava/lang/String;)V -Lcom/android/internal/telephony/ServiceStateTracker;->mAttachedRegistrants:Landroid/os/RegistrantList; Lcom/android/internal/telephony/ServiceStateTracker;->mCi:Lcom/android/internal/telephony/CommandsInterface; Lcom/android/internal/telephony/ServiceStateTracker;->mCr:Landroid/content/ContentResolver; Lcom/android/internal/telephony/ServiceStateTracker;->mCurDataSpn:Ljava/lang/String; @@ -3371,7 +3367,6 @@ Lcom/android/internal/telephony/ServiceStateTracker;->mDataRoamingOffRegistrants Lcom/android/internal/telephony/ServiceStateTracker;->mDataRoamingOnRegistrants:Landroid/os/RegistrantList; Lcom/android/internal/telephony/ServiceStateTracker;->mDefaultRoamingIndicator:I Lcom/android/internal/telephony/ServiceStateTracker;->mDesiredPowerState:Z -Lcom/android/internal/telephony/ServiceStateTracker;->mDetachedRegistrants:Landroid/os/RegistrantList; Lcom/android/internal/telephony/ServiceStateTracker;->mDeviceShuttingDown:Z Lcom/android/internal/telephony/ServiceStateTracker;->mEmergencyOnly:Z Lcom/android/internal/telephony/ServiceStateTracker;->mIccRecords:Lcom/android/internal/telephony/uicc/IccRecords; @@ -3399,7 +3394,6 @@ Lcom/android/internal/telephony/ServiceStateTracker;->mUiccApplcation:Lcom/andro Lcom/android/internal/telephony/ServiceStateTracker;->mUiccController:Lcom/android/internal/telephony/uicc/UiccController; Lcom/android/internal/telephony/ServiceStateTracker;->mVoiceRoamingOffRegistrants:Landroid/os/RegistrantList; Lcom/android/internal/telephony/ServiceStateTracker;->mVoiceRoamingOnRegistrants:Landroid/os/RegistrantList; -Lcom/android/internal/telephony/ServiceStateTracker;->notifyDataRegStateRilRadioTechnologyChanged()V Lcom/android/internal/telephony/ServiceStateTracker;->notifySignalStrength()Z Lcom/android/internal/telephony/ServiceStateTracker;->pollState()V Lcom/android/internal/telephony/ServiceStateTracker;->reRegisterNetwork(Landroid/os/Message;)V @@ -4508,9 +4502,6 @@ Lgov/nist/javax/sip/address/SipUri;->setParameter(Ljava/lang/String;Ljava/lang/S Lgov/nist/javax/sip/address/SipUri;->setUserParam(Ljava/lang/String;)V Lgov/nist/javax/sip/parser/URLParser;-><init>(Ljava/lang/String;)V Lgov/nist/javax/sip/parser/URLParser;->sipURL(Z)Lgov/nist/javax/sip/address/SipUri; -Ljunit/framework/TestCase;->fName:Ljava/lang/String; -Ljunit/framework/TestSuite;->isPublicTestMethod(Ljava/lang/reflect/Method;)Z -Ljunit/framework/TestSuite;->isTestMethod(Ljava/lang/reflect/Method;)Z Lorg/apache/xalan/extensions/ExpressionContext;->getContextNode()Lorg/w3c/dom/Node; Lorg/apache/xalan/extensions/ExpressionContext;->getErrorListener()Ljavax/xml/transform/ErrorListener; Lorg/apache/xalan/extensions/ExpressionContext;->getVariableOrParam(Lorg/apache/xml/utils/QName;)Lorg/apache/xpath/objects/XObject; diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index af451c253f6c..9bc719eae223 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -300,7 +300,6 @@ public final class ActivityThread extends ClientTransactionHandler { String[] mInstrumentedSplitAppDirs = null; String mInstrumentedLibDir = null; boolean mSystemThread = false; - boolean mJitEnabled = false; boolean mSomeActivitiesChanged = false; boolean mUpdatingSystemConfig = false; /* package */ boolean mHiddenApiWarningShown = false; @@ -1633,7 +1632,6 @@ public final class ActivityThread extends ClientTransactionHandler { public static final int SUICIDE = 130; @UnsupportedAppUsage public static final int REMOVE_PROVIDER = 131; - public static final int ENABLE_JIT = 132; public static final int DISPATCH_PACKAGE_BROADCAST = 133; @UnsupportedAppUsage public static final int SCHEDULE_CRASH = 134; @@ -1683,7 +1681,6 @@ public final class ActivityThread extends ClientTransactionHandler { case DESTROY_BACKUP_AGENT: return "DESTROY_BACKUP_AGENT"; case SUICIDE: return "SUICIDE"; case REMOVE_PROVIDER: return "REMOVE_PROVIDER"; - case ENABLE_JIT: return "ENABLE_JIT"; case DISPATCH_PACKAGE_BROADCAST: return "DISPATCH_PACKAGE_BROADCAST"; case SCHEDULE_CRASH: return "SCHEDULE_CRASH"; case DUMP_HEAP: return "DUMP_HEAP"; @@ -1795,9 +1792,6 @@ public final class ActivityThread extends ClientTransactionHandler { completeRemoveProvider((ProviderRefCount)msg.obj); Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER); break; - case ENABLE_JIT: - ensureJitEnabled(); - break; case DISPATCH_PACKAGE_BROADCAST: Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "broadcastPackage"); handleDispatchPackageBroadcast(msg.arg1, (String[])msg.obj); @@ -1933,7 +1927,6 @@ public final class ActivityThread extends ClientTransactionHandler { if (stopProfiling) { mProfiler.stopProfiling(); } - ensureJitEnabled(); return false; } } @@ -2258,13 +2251,6 @@ public final class ActivityThread extends ClientTransactionHandler { } } - void ensureJitEnabled() { - if (!mJitEnabled) { - mJitEnabled = true; - dalvik.system.VMRuntime.getRuntime().startJitCompilation(); - } - } - @UnsupportedAppUsage void scheduleGcIdler() { if (!mGcIdlerScheduled) { @@ -3690,7 +3676,6 @@ public final class ActivityThread extends ClientTransactionHandler { ActivityManager.getService().serviceDoneExecuting( data.token, SERVICE_DONE_EXECUTING_ANON, 0, 0); } - ensureJitEnabled(); } catch (RemoteException ex) { throw ex.rethrowFromSystemServer(); } @@ -3804,7 +3789,6 @@ public final class ActivityThread extends ClientTransactionHandler { } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } - ensureJitEnabled(); } catch (Exception e) { if (!mInstrumentation.onException(s, e)) { throw new RuntimeException( @@ -5979,9 +5963,6 @@ public final class ActivityThread extends ClientTransactionHandler { if (!data.restrictedBackupMode) { if (!ArrayUtils.isEmpty(data.providers)) { installContentProviders(app, data.providers); - // For process that contains content providers, we want to - // ensure that the JIT is enabled "at some point". - mH.sendEmptyMessageDelayed(H.ENABLE_JIT, 10*1000); } } @@ -6614,12 +6595,6 @@ public final class ActivityThread extends ClientTransactionHandler { sCurrentActivityThread = this; mSystemThread = system; if (!system) { - ViewRootImpl.addFirstDrawHandler(new Runnable() { - @Override - public void run() { - ensureJitEnabled(); - } - }); android.ddm.DdmHandleAppName.setAppName("<pre-initialized>", UserHandle.myUserId()); RuntimeInit.setApplicationObject(mAppThread.asBinder()); diff --git a/core/java/android/app/AppComponentFactory.java b/core/java/android/app/AppComponentFactory.java index ae632915dd2d..2cec7f0fc323 100644 --- a/core/java/android/app/AppComponentFactory.java +++ b/core/java/android/app/AppComponentFactory.java @@ -27,6 +27,7 @@ import android.content.pm.ApplicationInfo; * * @see #instantiateApplication * @see #instantiateActivity + * @see #instantiateClassLoader * @see #instantiateService * @see #instantiateReceiver * @see #instantiateProvider @@ -39,8 +40,10 @@ public class AppComponentFactory { * a custom class loader hierarchy. * * @param cl The default classloader instantiated by platform. + * @param aInfo Information about the application being loaded. */ - public @NonNull ClassLoader instantiateClassLoader(@NonNull ClassLoader cl) { + public @NonNull ClassLoader instantiateClassLoader(@NonNull ClassLoader cl, + @NonNull ApplicationInfo aInfo) { return cl; } @@ -133,19 +136,6 @@ public class AppComponentFactory { return (ContentProvider) cl.loadClass(className).newInstance(); } - private ApplicationInfo mApplicationInfo = null; - - void setApplicationInfo(ApplicationInfo info) { - mApplicationInfo = info; - } - - /** - * Returns the ApplicationInfo associated with this package. - */ - public ApplicationInfo getApplicationInfo() { - return mApplicationInfo; - } - /** * @hide */ diff --git a/core/java/android/app/LoadedApk.java b/core/java/android/app/LoadedApk.java index ac33c169288b..3a76de442777 100644 --- a/core/java/android/app/LoadedApk.java +++ b/core/java/android/app/LoadedApk.java @@ -232,7 +232,8 @@ public final class LoadedApk { mResources = Resources.getSystem(); mDefaultClassLoader = ClassLoader.getSystemClassLoader(); mAppComponentFactory = createAppFactory(mApplicationInfo, mDefaultClassLoader); - mClassLoader = mAppComponentFactory.instantiateClassLoader(mDefaultClassLoader); + mClassLoader = mAppComponentFactory.instantiateClassLoader(mDefaultClassLoader, + new ApplicationInfo(mApplicationInfo)); } /** @@ -243,19 +244,15 @@ public final class LoadedApk { mApplicationInfo = info; mDefaultClassLoader = classLoader; mAppComponentFactory = createAppFactory(info, mDefaultClassLoader); - mClassLoader = mAppComponentFactory.instantiateClassLoader(mDefaultClassLoader); + mClassLoader = mAppComponentFactory.instantiateClassLoader(mDefaultClassLoader, + new ApplicationInfo(mApplicationInfo)); } private AppComponentFactory createAppFactory(ApplicationInfo appInfo, ClassLoader cl) { if (appInfo.appComponentFactory != null && cl != null) { try { - AppComponentFactory factory = (AppComponentFactory) cl.loadClass( - appInfo.appComponentFactory).newInstance(); - // Pass a copy of ApplicationInfo to the factory. Copying protects the framework - // from apps which would override the factory and change ApplicationInfo contents. - // ApplicationInfo is used to set up the default class loader. - factory.setApplicationInfo(new ApplicationInfo(appInfo)); - return factory; + return (AppComponentFactory) + cl.loadClass(appInfo.appComponentFactory).newInstance(); } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) { Slog.e(TAG, "Unable to instantiate appComponentFactory", e); } @@ -712,8 +709,8 @@ public final class LoadedApk { mDefaultClassLoader = ClassLoader.getSystemClassLoader(); } mAppComponentFactory = createAppFactory(mApplicationInfo, mDefaultClassLoader); - mClassLoader = mAppComponentFactory.instantiateClassLoader(mDefaultClassLoader); - + mClassLoader = mAppComponentFactory.instantiateClassLoader(mDefaultClassLoader, + new ApplicationInfo(mApplicationInfo)); return; } @@ -801,7 +798,8 @@ public final class LoadedApk { } if (mClassLoader == null) { - mClassLoader = mAppComponentFactory.instantiateClassLoader(mDefaultClassLoader); + mClassLoader = mAppComponentFactory.instantiateClassLoader(mDefaultClassLoader, + new ApplicationInfo(mApplicationInfo)); } return; @@ -915,8 +913,10 @@ public final class LoadedApk { // Call AppComponentFactory to select/create the main class loader of this app. // Since this may call code in the app, mDefaultClassLoader must be fully set up // before invoking the factory. + // Invoke with a copy of ApplicationInfo to protect against the app changing it. if (mClassLoader == null) { - mClassLoader = mAppComponentFactory.instantiateClassLoader(mDefaultClassLoader); + mClassLoader = mAppComponentFactory.instantiateClassLoader(mDefaultClassLoader, + new ApplicationInfo(mApplicationInfo)); } } diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java index 92b30a440d69..63ba00bc9d4e 100644 --- a/core/java/android/net/ConnectivityManager.java +++ b/core/java/android/net/ConnectivityManager.java @@ -3668,7 +3668,8 @@ public class ConnectivityManager { /** * Registers to receive notifications about all networks which satisfy the given * {@link NetworkRequest}. The callbacks will continue to be called until - * either the application exits or link #unregisterNetworkCallback(NetworkCallback)} is called. + * either the application exits or {@link #unregisterNetworkCallback(NetworkCallback)} is + * called. * * @param request {@link NetworkRequest} describing this request. * @param networkCallback The {@link NetworkCallback} that the system will call as suitable @@ -3684,7 +3685,8 @@ public class ConnectivityManager { /** * Registers to receive notifications about all networks which satisfy the given * {@link NetworkRequest}. The callbacks will continue to be called until - * either the application exits or link #unregisterNetworkCallback(NetworkCallback)} is called. + * either the application exits or {@link #unregisterNetworkCallback(NetworkCallback)} is + * called. * * @param request {@link NetworkRequest} describing this request. * @param networkCallback The {@link NetworkCallback} that the system will call as suitable @@ -4275,6 +4277,8 @@ public class ConnectivityManager { * @return {@code uid} if the connection is found and the app has permission to observe it * (e.g., if it is associated with the calling VPN app's tunnel) or * {@link android.os.Process#INVALID_UID} if the connection is not found. + * Throws {@link SecurityException} if the caller is not the active VPN for the current user. + * Throws {@link IllegalArgumentException} if an unsupported protocol is requested. */ public int getConnectionOwnerUid(int protocol, @NonNull InetSocketAddress local, @NonNull InetSocketAddress remote) { diff --git a/core/java/android/net/IConnectivityManager.aidl b/core/java/android/net/IConnectivityManager.aidl index 83bb3a0c8c15..84036ca7178c 100644 --- a/core/java/android/net/IConnectivityManager.aidl +++ b/core/java/android/net/IConnectivityManager.aidl @@ -122,8 +122,6 @@ interface IConnectivityManager LegacyVpnInfo getLegacyVpnInfo(int userId); - VpnInfo[] getAllVpnInfo(); - boolean updateLockdownVpn(); boolean isAlwaysOnVpnPackageSupported(int userId, String packageName); boolean setAlwaysOnVpnPackage(int userId, String packageName, boolean lockdown, diff --git a/core/java/android/net/INetworkStatsService.aidl b/core/java/android/net/INetworkStatsService.aidl index 8e6f27238846..148b25dfa86f 100644 --- a/core/java/android/net/INetworkStatsService.aidl +++ b/core/java/android/net/INetworkStatsService.aidl @@ -19,11 +19,13 @@ package android.net; import android.net.DataUsageRequest; import android.net.INetworkStatsSession; import android.net.Network; +import android.net.NetworkState; import android.net.NetworkStats; import android.net.NetworkStatsHistory; import android.net.NetworkTemplate; import android.os.IBinder; import android.os.Messenger; +import com.android.internal.net.VpnInfo; /** {@hide} */ interface INetworkStatsService { @@ -58,7 +60,11 @@ interface INetworkStatsService { void incrementOperationCount(int uid, int tag, int operationCount); /** Force update of ifaces. */ - void forceUpdateIfaces(in Network[] defaultNetworks); + void forceUpdateIfaces( + in Network[] defaultNetworks, + in VpnInfo[] vpnArray, + in NetworkState[] networkStates, + in String activeIface); /** Force update of statistics. */ void forceUpdate(); diff --git a/core/java/android/net/InetAddresses.java b/core/java/android/net/InetAddresses.java index 8e6c69a97edb..01b795e456fa 100644 --- a/core/java/android/net/InetAddresses.java +++ b/core/java/android/net/InetAddresses.java @@ -16,6 +16,8 @@ package android.net; +import android.annotation.NonNull; + import libcore.net.InetAddressUtils; import java.net.InetAddress; @@ -40,7 +42,7 @@ public class InetAddresses { * @param address the address to parse. * @return true if the supplied address is numeric, false otherwise. */ - public static boolean isNumericAddress(String address) { + public static boolean isNumericAddress(@NonNull String address) { return InetAddressUtils.isNumericAddress(address); } @@ -57,7 +59,7 @@ public class InetAddresses { * @return an {@link InetAddress} instance corresponding to the address. * @throws IllegalArgumentException if {@code address} is not a numeric address. */ - public static InetAddress parseNumericAddress(String address) { + public static @NonNull InetAddress parseNumericAddress(@NonNull String address) { return InetAddressUtils.parseNumericAddress(address); } } diff --git a/core/java/android/net/LinkAddress.java b/core/java/android/net/LinkAddress.java index 8d779aaa2312..8b0196088021 100644 --- a/core/java/android/net/LinkAddress.java +++ b/core/java/android/net/LinkAddress.java @@ -25,6 +25,7 @@ import static android.system.OsConstants.RT_SCOPE_LINK; import static android.system.OsConstants.RT_SCOPE_SITE; import static android.system.OsConstants.RT_SCOPE_UNIVERSE; +import android.annotation.NonNull; import android.annotation.SystemApi; import android.annotation.TestApi; import android.annotation.UnsupportedAppUsage; @@ -177,7 +178,7 @@ public class LinkAddress implements Parcelable { */ @SystemApi @TestApi - public LinkAddress(InetAddress address, int prefixLength) { + public LinkAddress(@NonNull InetAddress address, int prefixLength) { this(address, prefixLength, 0, 0); this.scope = scopeForUnicastAddress(address); } @@ -196,12 +197,12 @@ public class LinkAddress implements Parcelable { /** * Constructs a new {@code LinkAddress} from a string such as "192.0.2.5/24" or * "2001:db8::1/64". The flags are set to zero and the scope is determined from the address. - * @param string The string to parse. + * @param address The string to parse. * @hide */ @SystemApi @TestApi - public LinkAddress(String address) { + public LinkAddress(@NonNull String address) { this(address, 0, 0); this.scope = scopeForUnicastAddress(this.address); } @@ -209,7 +210,7 @@ public class LinkAddress implements Parcelable { /** * Constructs a new {@code LinkAddress} from a string such as "192.0.2.5/24" or * "2001:db8::1/64", with the specified flags and scope. - * @param string The string to parse. + * @param address The string to parse. * @param flags The address flags. * @param scope The address scope. * @hide diff --git a/core/java/android/net/NetworkCapabilities.java b/core/java/android/net/NetworkCapabilities.java index 1d2d81dc4fbe..0a63e75d1a31 100644 --- a/core/java/android/net/NetworkCapabilities.java +++ b/core/java/android/net/NetworkCapabilities.java @@ -143,6 +143,7 @@ public final class NetworkCapabilities implements Parcelable { NET_CAPABILITY_NOT_CONGESTED, NET_CAPABILITY_NOT_SUSPENDED, NET_CAPABILITY_OEM_PAID, + NET_CAPABILITY_MCX }) public @interface NetCapability { } @@ -297,8 +298,14 @@ public final class NetworkCapabilities implements Parcelable { @SystemApi public static final int NET_CAPABILITY_OEM_PAID = 22; + /** + * Indicates this is a network that has the ability to reach a carrier's Mission Critical + * servers. + */ + public static final int NET_CAPABILITY_MCX = 23; + private static final int MIN_NET_CAPABILITY = NET_CAPABILITY_MMS; - private static final int MAX_NET_CAPABILITY = NET_CAPABILITY_OEM_PAID; + private static final int MAX_NET_CAPABILITY = NET_CAPABILITY_MCX; /** * Network capabilities that are expected to be mutable, i.e., can change while a particular @@ -346,7 +353,8 @@ public final class NetworkCapabilities implements Parcelable { (1 << NET_CAPABILITY_IA) | (1 << NET_CAPABILITY_IMS) | (1 << NET_CAPABILITY_RCS) | - (1 << NET_CAPABILITY_XCAP); + (1 << NET_CAPABILITY_XCAP) | + (1 << NET_CAPABILITY_MCX); /** * Capabilities that force network to be restricted. @@ -1614,6 +1622,7 @@ public final class NetworkCapabilities implements Parcelable { case NET_CAPABILITY_NOT_CONGESTED: return "NOT_CONGESTED"; case NET_CAPABILITY_NOT_SUSPENDED: return "NOT_SUSPENDED"; case NET_CAPABILITY_OEM_PAID: return "OEM_PAID"; + case NET_CAPABILITY_MCX: return "MCX"; default: return Integer.toString(capability); } } diff --git a/core/java/android/net/Uri.java b/core/java/android/net/Uri.java index af3ee0911d2f..28b2707bc02d 100644 --- a/core/java/android/net/Uri.java +++ b/core/java/android/net/Uri.java @@ -402,7 +402,7 @@ public abstract class Uri implements Parcelable, Comparable<Uri> { } return builder.toString(); } else if (scheme.equalsIgnoreCase("http") || scheme.equalsIgnoreCase("https") - || scheme.equalsIgnoreCase("ftp")) { + || scheme.equalsIgnoreCase("ftp") || scheme.equalsIgnoreCase("rtsp")) { ssp = "//" + ((getHost() != null) ? getHost() : "") + ((getPort() != -1) ? (":" + getPort()) : "") + "/..."; diff --git a/core/java/android/net/VpnService.java b/core/java/android/net/VpnService.java index ebb1ae4bb795..870d8b1b7c22 100644 --- a/core/java/android/net/VpnService.java +++ b/core/java/android/net/VpnService.java @@ -20,6 +20,7 @@ import static android.system.OsConstants.AF_INET; import static android.system.OsConstants.AF_INET6; import android.annotation.NonNull; +import android.annotation.Nullable; import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.annotation.UnsupportedAppUsage; @@ -479,7 +480,8 @@ public class VpnService extends Service { * system-managed dialogs and notifications. This is recommended * not required. */ - public Builder setSession(String session) { + @NonNull + public Builder setSession(@NonNull String session) { mConfig.session = session; return this; } @@ -489,7 +491,8 @@ public class VpnService extends Service { * configure the VPN connection. If it is not set, the button * to configure will not be shown in system-managed dialogs. */ - public Builder setConfigureIntent(PendingIntent intent) { + @NonNull + public Builder setConfigureIntent(@NonNull PendingIntent intent) { mConfig.configureIntent = intent; return this; } @@ -501,6 +504,7 @@ public class VpnService extends Service { * * @throws IllegalArgumentException if the value is not positive. */ + @NonNull public Builder setMtu(int mtu) { if (mtu <= 0) { throw new IllegalArgumentException("Bad mtu"); @@ -513,6 +517,7 @@ public class VpnService extends Service { * Sets an HTTP proxy for the VPN network. This proxy is only a recommendation * and it is possible that some apps will ignore it. */ + @NonNull public Builder setHttpProxy(@NonNull ProxyInfo proxyInfo) { mConfig.proxyInfo = proxyInfo; return this; @@ -528,7 +533,8 @@ public class VpnService extends Service { * * @throws IllegalArgumentException if the address is invalid. */ - public Builder addAddress(InetAddress address, int prefixLength) { + @NonNull + public Builder addAddress(@NonNull InetAddress address, int prefixLength) { check(address, prefixLength); if (address.isAnyLocalAddress()) { @@ -550,7 +556,8 @@ public class VpnService extends Service { * @throws IllegalArgumentException if the address is invalid. * @see #addAddress(InetAddress, int) */ - public Builder addAddress(String address, int prefixLength) { + @NonNull + public Builder addAddress(@NonNull String address, int prefixLength) { return addAddress(InetAddress.parseNumericAddress(address), prefixLength); } @@ -563,7 +570,8 @@ public class VpnService extends Service { * * @throws IllegalArgumentException if the route is invalid. */ - public Builder addRoute(InetAddress address, int prefixLength) { + @NonNull + public Builder addRoute(@NonNull InetAddress address, int prefixLength) { check(address, prefixLength); int offset = prefixLength / 8; @@ -591,7 +599,8 @@ public class VpnService extends Service { * @throws IllegalArgumentException if the route is invalid. * @see #addRoute(InetAddress, int) */ - public Builder addRoute(String address, int prefixLength) { + @NonNull + public Builder addRoute(@NonNull String address, int prefixLength) { return addRoute(InetAddress.parseNumericAddress(address), prefixLength); } @@ -605,7 +614,8 @@ public class VpnService extends Service { * * @throws IllegalArgumentException if the address is invalid. */ - public Builder addDnsServer(InetAddress address) { + @NonNull + public Builder addDnsServer(@NonNull InetAddress address) { if (address.isLoopbackAddress() || address.isAnyLocalAddress()) { throw new IllegalArgumentException("Bad address"); } @@ -627,14 +637,16 @@ public class VpnService extends Service { * @throws IllegalArgumentException if the address is invalid. * @see #addDnsServer(InetAddress) */ - public Builder addDnsServer(String address) { + @NonNull + public Builder addDnsServer(@NonNull String address) { return addDnsServer(InetAddress.parseNumericAddress(address)); } /** * Add a search domain to the DNS resolver. */ - public Builder addSearchDomain(String domain) { + @NonNull + public Builder addSearchDomain(@NonNull String domain) { if (mConfig.searchDomains == null) { mConfig.searchDomains = new ArrayList<String>(); } @@ -660,6 +672,7 @@ public class VpnService extends Service { * * @return this {@link Builder} object to facilitate chaining of method calls. */ + @NonNull public Builder allowFamily(int family) { if (family == AF_INET) { mConfig.allowIPv4 = true; @@ -703,7 +716,8 @@ public class VpnService extends Service { * * @return this {@link Builder} object to facilitate chaining method calls. */ - public Builder addAllowedApplication(String packageName) + @NonNull + public Builder addAllowedApplication(@NonNull String packageName) throws PackageManager.NameNotFoundException { if (mConfig.disallowedApplications != null) { throw new UnsupportedOperationException("addDisallowedApplication already called"); @@ -735,7 +749,8 @@ public class VpnService extends Service { * * @return this {@link Builder} object to facilitate chaining method calls. */ - public Builder addDisallowedApplication(String packageName) + @NonNull + public Builder addDisallowedApplication(@NonNull String packageName) throws PackageManager.NameNotFoundException { if (mConfig.allowedApplications != null) { throw new UnsupportedOperationException("addAllowedApplication already called"); @@ -758,6 +773,7 @@ public class VpnService extends Service { * * @return this {@link Builder} object to facilitate chaining of method calls. */ + @NonNull public Builder allowBypass() { mConfig.allowBypass = true; return this; @@ -772,6 +788,7 @@ public class VpnService extends Service { * * @return this {@link Builder} object to facilitate chaining method calls. */ + @NonNull public Builder setBlocking(boolean blocking) { mConfig.blocking = blocking; return this; @@ -786,7 +803,8 @@ public class VpnService extends Service { * * @return this {@link Builder} object to facilitate chaining method calls. */ - public Builder setUnderlyingNetworks(Network[] networks) { + @NonNull + public Builder setUnderlyingNetworks(@Nullable Network[] networks) { mConfig.underlyingNetworks = networks != null ? networks.clone() : null; return this; } @@ -807,6 +825,7 @@ public class VpnService extends Service { * @see #setUnderlyingNetworks(Networks[]) * @see ConnectivityManager#isActiveNetworkMetered() */ + @NonNull public Builder setMetered(boolean isMetered) { mConfig.isMetered = isMetered; return this; @@ -855,6 +874,7 @@ public class VpnService extends Service { * in {@code AndroidManifest.xml}. * @see VpnService */ + @Nullable public ParcelFileDescriptor establish() { mConfig.addresses = mAddresses; mConfig.routes = mRoutes; diff --git a/core/java/android/net/http/SslCertificate.java b/core/java/android/net/http/SslCertificate.java index 6fcd6ebe148a..01dd08f4ad9c 100644 --- a/core/java/android/net/http/SslCertificate.java +++ b/core/java/android/net/http/SslCertificate.java @@ -16,6 +16,7 @@ package android.net.http; +import android.annotation.Nullable; import android.annotation.UnsupportedAppUsage; import android.content.Context; import android.os.Bundle; @@ -252,7 +253,7 @@ public class SslCertificate { * @return The {@code X509Certificate} used to create this {@code SslCertificate} or * {@code null} if no certificate was provided. */ - public X509Certificate getX509Certificate() { + public @Nullable X509Certificate getX509Certificate() { return mX509Certificate; } diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index e945c5fb12fb..946d38667fea 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -10475,8 +10475,9 @@ public final class Settings { /** * The threshold value for the number of consecutive dns timeout events received to be a - * signal of data stall. Set the value to 0 or less than 0 to disable. Note that the value - * should be larger than 0 if the DNS data stall detection is enabled. + * signal of data stall. The number of consecutive timeouts needs to be {@code >=} this + * threshold to be considered a data stall. Set the value to {@code <= 0} to disable. Note + * that the value should be {@code > 0} if the DNS data stall detection is enabled. * * @hide */ @@ -10507,9 +10508,12 @@ public final class Settings { "data_stall_valid_dns_time_threshold"; /** - * Which data stall detection signal to use. Possible values are a union of the powers of 2 - * of DATA_STALL_EVALUATION_TYPE_*. + * Which data stall detection signal to use. This is a bitmask constructed by bitwise-or-ing + * (i.e. {@code |}) the DATA_STALL_EVALUATION_TYPE_* values. * + * Type: int + * Valid values: + * {@link #DATA_STALL_EVALUATION_TYPE_DNS} : Use dns as a signal. * @hide */ @SystemApi @@ -10517,6 +10521,15 @@ public final class Settings { public static final String DATA_STALL_EVALUATION_TYPE = "data_stall_evaluation_type"; /** + * Use dns timeout counts to detect data stall. + * + * @hide + */ + @SystemApi + @TestApi + public static final int DATA_STALL_EVALUATION_TYPE_DNS = 1; + + /** * Whether to try cellular data recovery when a bad network is reported. * * @hide diff --git a/core/java/android/service/carrier/ApnService.java b/core/java/android/service/carrier/ApnService.java index d53eb37ca786..57e4b1b40748 100644 --- a/core/java/android/service/carrier/ApnService.java +++ b/core/java/android/service/carrier/ApnService.java @@ -16,6 +16,8 @@ package android.service.carrier; +import android.annotation.NonNull; +import android.annotation.Nullable; import android.annotation.SystemApi; import android.annotation.WorkerThread; import android.app.Service; @@ -60,7 +62,8 @@ public abstract class ApnService extends Service { }; @Override - public IBinder onBind(Intent intent) { + @NonNull + public IBinder onBind(@Nullable Intent intent) { return mBinder; } @@ -73,5 +76,6 @@ public abstract class ApnService extends Service { * subId. */ @WorkerThread + @NonNull public abstract List<ContentValues> onRestoreApns(int subId); } diff --git a/core/java/android/service/carrier/CarrierIdentifier.java b/core/java/android/service/carrier/CarrierIdentifier.java index 568ca0f6b56e..8c73a87e2132 100644 --- a/core/java/android/service/carrier/CarrierIdentifier.java +++ b/core/java/android/service/carrier/CarrierIdentifier.java @@ -16,6 +16,7 @@ package android.service.carrier; +import android.annotation.NonNull; import android.annotation.Nullable; import android.os.Parcel; import android.os.Parcelable; @@ -74,7 +75,7 @@ public class CarrierIdentifier implements Parcelable { * @param preciseCarrierId precise carrier identifier * {@link TelephonyManager#getSimPreciseCarrierId()} */ - public CarrierIdentifier(String mcc, String mnc, @Nullable String spn, + public CarrierIdentifier(@NonNull String mcc, @NonNull String mnc, @Nullable String spn, @Nullable String imsi, @Nullable String gid1, @Nullable String gid2, int carrierid, int preciseCarrierId) { mMcc = mcc; diff --git a/core/java/android/service/euicc/EuiccService.java b/core/java/android/service/euicc/EuiccService.java index 53cc25b14285..4f321dc07c2f 100644 --- a/core/java/android/service/euicc/EuiccService.java +++ b/core/java/android/service/euicc/EuiccService.java @@ -101,10 +101,23 @@ public abstract class EuiccService extends Service { */ public static final String ACTION_MANAGE_EMBEDDED_SUBSCRIPTIONS = "android.service.euicc.action.MANAGE_EMBEDDED_SUBSCRIPTIONS"; + /** @see android.telephony.euicc.EuiccManager#ACTION_PROVISION_EMBEDDED_SUBSCRIPTION */ public static final String ACTION_PROVISION_EMBEDDED_SUBSCRIPTION = "android.service.euicc.action.PROVISION_EMBEDDED_SUBSCRIPTION"; + /** @see android.telephony.euicc.EuiccManager#ACTION_TOGGLE_SUBSCRIPTION_PRIVILEGED */ + public static final String ACTION_TOGGLE_SUBSCRIPTION_PRIVILEGED = + "android.service.euicc.action.TOGGLE_SUBSCRIPTION_PRIVILEGED"; + + /** @see android.telephony.euicc.EuiccManager#ACTION_DELETE_SUBSCRIPTION_PRIVILEGED */ + public static final String ACTION_DELETE_SUBSCRIPTION_PRIVILEGED = + "android.service.euicc.action.DELETE_SUBSCRIPTION_PRIVILEGED"; + + /** @see android.telephony.euicc.EuiccManager#ACTION_RENAME_SUBSCRIPTION_PRIVILEGED */ + public static final String ACTION_RENAME_SUBSCRIPTION_PRIVILEGED = + "android.service.euicc.action.RENAME_SUBSCRIPTION_PRIVILEGED"; + // LUI resolution actions. These are called by the platform to resolve errors in situations that // require user interaction. // TODO(b/33075886): Define extras for any input parameters to these dialogs once they are diff --git a/core/java/android/util/LocalLog.java b/core/java/android/util/LocalLog.java index adfa4fc55567..8b5659b3fa31 100644 --- a/core/java/android/util/LocalLog.java +++ b/core/java/android/util/LocalLog.java @@ -17,6 +17,7 @@ package android.util; import android.annotation.UnsupportedAppUsage; + import java.io.FileDescriptor; import java.io.PrintWriter; import java.time.LocalDateTime; @@ -55,6 +56,10 @@ public final class LocalLog { @UnsupportedAppUsage public synchronized void dump(FileDescriptor fd, PrintWriter pw, String[] args) { + dump(pw); + } + + public synchronized void dump(PrintWriter pw) { Iterator<String> itr = mLog.iterator(); while (itr.hasNext()) { pw.println(itr.next()); @@ -62,6 +67,10 @@ public final class LocalLog { } public synchronized void reverseDump(FileDescriptor fd, PrintWriter pw, String[] args) { + reverseDump(pw); + } + + public synchronized void reverseDump(PrintWriter pw) { Iterator<String> itr = mLog.descendingIterator(); while (itr.hasNext()) { pw.println(itr.next()); @@ -75,10 +84,16 @@ public final class LocalLog { } @UnsupportedAppUsage public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { - mLog.dump(fd, pw, args); + mLog.dump(pw); + } + public void dump(PrintWriter pw) { + mLog.dump(pw); } public void reverseDump(FileDescriptor fd, PrintWriter pw, String[] args) { - mLog.reverseDump(fd, pw, args); + mLog.reverseDump(pw); + } + public void reverseDump(PrintWriter pw) { + mLog.reverseDump(pw); } } diff --git a/core/java/android/util/apk/ApkSignatureVerifier.java b/core/java/android/util/apk/ApkSignatureVerifier.java index de9f55b09200..544cc1c76d4e 100644 --- a/core/java/android/util/apk/ApkSignatureVerifier.java +++ b/core/java/android/util/apk/ApkSignatureVerifier.java @@ -397,15 +397,18 @@ public class ApkSignatureVerifier { /** * @return the verity root hash in the Signing Block. */ - public static byte[] getVerityRootHash(String apkPath) - throws IOException, SignatureNotFoundException, SecurityException { + public static byte[] getVerityRootHash(String apkPath) throws IOException, SecurityException { // first try v3 try { return ApkSignatureSchemeV3Verifier.getVerityRootHash(apkPath); } catch (SignatureNotFoundException e) { // try older version } - return ApkSignatureSchemeV2Verifier.getVerityRootHash(apkPath); + try { + return ApkSignatureSchemeV2Verifier.getVerityRootHash(apkPath); + } catch (SignatureNotFoundException e) { + return null; + } } /** diff --git a/core/jni/android_view_Surface.cpp b/core/jni/android_view_Surface.cpp index f70cf07b9535..6302aa725fc4 100644 --- a/core/jni/android_view_Surface.cpp +++ b/core/jni/android_view_Surface.cpp @@ -127,113 +127,17 @@ jobject android_view_Surface_createFromIGraphicBufferProducer(JNIEnv* env, } int android_view_Surface_mapPublicFormatToHalFormat(PublicFormat f) { - - switch(f) { - case PublicFormat::JPEG: - case PublicFormat::DEPTH_POINT_CLOUD: - return HAL_PIXEL_FORMAT_BLOB; - case PublicFormat::DEPTH16: - return HAL_PIXEL_FORMAT_Y16; - case PublicFormat::RAW_SENSOR: - case PublicFormat::RAW_DEPTH: - return HAL_PIXEL_FORMAT_RAW16; - default: - // Most formats map 1:1 - return static_cast<int>(f); - } + return mapPublicFormatToHalFormat(f); } android_dataspace android_view_Surface_mapPublicFormatToHalDataspace( PublicFormat f) { - switch(f) { - case PublicFormat::JPEG: - return HAL_DATASPACE_V0_JFIF; - case PublicFormat::DEPTH_POINT_CLOUD: - case PublicFormat::DEPTH16: - case PublicFormat::RAW_DEPTH: - return HAL_DATASPACE_DEPTH; - case PublicFormat::RAW_SENSOR: - case PublicFormat::RAW_PRIVATE: - case PublicFormat::RAW10: - case PublicFormat::RAW12: - return HAL_DATASPACE_ARBITRARY; - case PublicFormat::YUV_420_888: - case PublicFormat::NV21: - case PublicFormat::YV12: - return HAL_DATASPACE_V0_JFIF; - default: - // Most formats map to UNKNOWN - return HAL_DATASPACE_UNKNOWN; - } + return mapPublicFormatToHalDataspace(f); } PublicFormat android_view_Surface_mapHalFormatDataspaceToPublicFormat( int format, android_dataspace dataSpace) { - switch(format) { - case HAL_PIXEL_FORMAT_RGBA_8888: - case HAL_PIXEL_FORMAT_RGBX_8888: - case HAL_PIXEL_FORMAT_RGBA_FP16: - case HAL_PIXEL_FORMAT_RGBA_1010102: - case HAL_PIXEL_FORMAT_RGB_888: - case HAL_PIXEL_FORMAT_RGB_565: - case HAL_PIXEL_FORMAT_Y8: - case HAL_PIXEL_FORMAT_RAW10: - case HAL_PIXEL_FORMAT_RAW12: - case HAL_PIXEL_FORMAT_YCbCr_420_888: - case HAL_PIXEL_FORMAT_YV12: - // Enums overlap in both name and value - return static_cast<PublicFormat>(format); - case HAL_PIXEL_FORMAT_RAW16: - switch (dataSpace) { - case HAL_DATASPACE_DEPTH: - return PublicFormat::RAW_DEPTH; - default: - return PublicFormat::RAW_SENSOR; - } - case HAL_PIXEL_FORMAT_RAW_OPAQUE: - // Name differs, though value is the same - return PublicFormat::RAW_PRIVATE; - case HAL_PIXEL_FORMAT_YCbCr_422_SP: - // Name differs, though the value is the same - return PublicFormat::NV16; - case HAL_PIXEL_FORMAT_YCrCb_420_SP: - // Name differs, though the value is the same - return PublicFormat::NV21; - case HAL_PIXEL_FORMAT_YCbCr_422_I: - // Name differs, though the value is the same - return PublicFormat::YUY2; - case HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED: - // Name differs, though the value is the same - return PublicFormat::PRIVATE; - case HAL_PIXEL_FORMAT_Y16: - // Dataspace-dependent - switch (dataSpace) { - case HAL_DATASPACE_DEPTH: - return PublicFormat::DEPTH16; - default: - // Assume non-depth Y16 is just Y16. - return PublicFormat::Y16; - } - break; - case HAL_PIXEL_FORMAT_BLOB: - // Dataspace-dependent - switch (dataSpace) { - case HAL_DATASPACE_DEPTH: - return PublicFormat::DEPTH_POINT_CLOUD; - case HAL_DATASPACE_V0_JFIF: - return PublicFormat::JPEG; - default: - // Assume otherwise-marked blobs are also JPEG - return PublicFormat::JPEG; - } - break; - case HAL_PIXEL_FORMAT_BGRA_8888: - // Not defined in public API - return PublicFormat::UNKNOWN; - - default: - return PublicFormat::UNKNOWN; - } + return mapHalFormatDataspaceToPublicFormat(format, dataSpace); } // ---------------------------------------------------------------------------- diff --git a/core/jni/include/android_runtime/android_view_Surface.h b/core/jni/include/android_runtime/android_view_Surface.h index 36487b3b40b3..04718cd981ff 100644 --- a/core/jni/include/android_runtime/android_view_Surface.h +++ b/core/jni/include/android_runtime/android_view_Surface.h @@ -19,6 +19,7 @@ #include <android/native_window.h> #include <system/graphics.h> +#include <ui/PublicFormat.h> #include "jni.h" @@ -27,39 +28,6 @@ namespace android { class Surface; class IGraphicBufferProducer; -/** - * Enum mirroring the public API definitions for image and pixel formats. - * Some of these are hidden in the public API - * - * Keep up to date with android.graphics.ImageFormat and - * android.graphics.PixelFormat - */ -enum class PublicFormat { - UNKNOWN = 0x0, - RGBA_8888 = 0x1, - RGBX_8888 = 0x2, - RGB_888 = 0x3, - RGB_565 = 0x4, - NV16 = 0x10, - NV21 = 0x11, - YUY2 = 0x14, - RGBA_FP16 = 0x16, - RAW_SENSOR = 0x20, - PRIVATE = 0x22, - YUV_420_888 = 0x23, - RAW_PRIVATE = 0x24, - RAW10 = 0x25, - RAW12 = 0x26, - RGBA_1010102 = 0x2b, - JPEG = 0x100, - DEPTH_POINT_CLOUD = 0x101, - RAW_DEPTH = 0x1002, // @hide - YV12 = 0x32315659, - Y8 = 0x20203859, // @hide - Y16 = 0x20363159, // @hide - DEPTH16 = 0x44363159 -}; - /* Gets the underlying ANativeWindow for a Surface. */ extern sp<ANativeWindow> android_view_Surface_getNativeWindow( JNIEnv* env, jobject surfaceObj); diff --git a/core/jni/runtime_native_boot-flags-test.sh b/core/jni/runtime_native_boot-flags-test.sh index 01f37f07e5ca..cdfeffcc7bbb 100755 --- a/core/jni/runtime_native_boot-flags-test.sh +++ b/core/jni/runtime_native_boot-flags-test.sh @@ -139,47 +139,73 @@ function find_zygote_runtime_option { adb logcat -d -s "$zygote" | grep -q -e "option\[[0-9]\+\]=$runtime_option" } -# check_zygote_gc_runtime_option CONTEXT VALUE -# -------------------------------------------- -# Check that all zygote processes are passed device configuration flag VALUE as -# GC runtime option. Use CONTEXT in logging. -function check_zygote_gc_runtime_option { +# check_zygote_runtime_option CONTEXT RUNTIME_OPTION +# -------------------------------------------------- +# Check that all zygote processes are passed RUNTIME_OPTION as runtime option. Use +# CONTEXT in logging. +function check_zygote_runtime_option { local context=$1 - local value=$2 + local runtime_option=$2 say \ - "[$context] Check that all zygote processes are passed the flag value as a GC runtime option..." - local runtime_option="-Xgc:$value" + "[$context] Check that all zygote processes are passed \`$runtime_option\` as runtime option..." for zygote in $zygotes; do - find_zygote_runtime_option "$zygote" "$runtime_option"\ + find_zygote_runtime_option "$zygote" "$runtime_option" \ || fail "Found no \`$runtime_option\` among runtime options passed to \`$zygote\`" done } -# check_no_zygote_gc_runtime_option CONTEXT VALUE -# ----------------------------------------------- -# Check that no zygote process is passed device configuration flag VALUE as GC -# runtime option. Use CONTEXT in logging. -function check_no_zygote_gc_runtime_option { +# check_no_zygote_runtime_option CONTEXT RUNTIME_OPTION +# ----------------------------------------------------- +# Check that no zygote process is passed RUNTIME_OPTION as runtime option. Use +# CONTEXT in logging. +function check_no_zygote_runtime_option { local context=$1 - local value=$2 + local runtime_option=$2 - say "[$context] Check no zygote process is passed the flag value as a GC runtime option..." - local runtime_option="-Xgc:$value" + say "[$context] Check that no zygote process is passed \`$runtime_option\` as runtime option..." for zygote in $zygotes; do - find_zygote_runtime_option "$zygote" "$runtime_option"\ + find_zygote_runtime_option "$zygote" "$runtime_option" \ && fail "Found \`$runtime_option\` among runtime options passed to \`$zygote\`" done } -# test_android_runtime_flag FLAG VALUE GC_RUNTIME_OPTION -# ------------------------------------------------------ -# Test device configuration FLAG with VALUE. Check that GC_RUNTIME_OPTION is -# passed as GC Runtime option by the zygote. +# check_android_runtime_message CONTEXT MESSAGE +# --------------------------------------------- +# Return whether AndroidRuntime generated MESSAGE in logcat. Use CONTEXT in +# logging. +function check_android_runtime_message { + local context=$1 + local message=$2 + + say "[$context] Check that AndroidRuntime generated expected message in logcat..." + adb logcat -d -s AndroidRuntime | grep -F -q "$message" \ + || fail "Found no message \"$message\" generated by AndroidRuntime" +} + +# check_no_android_runtime_message CONTEXT MESSAGE +# ------------------------------------------------ +# Return whether AndroidRuntime did not generate MESSAGE in logcat. Use CONTEXT +# in logging. +function check_no_android_runtime_message { + local context=$1 + local message=$2 + + say "[$context] Check that AndroidRuntime did not generate unexpected message in logcat..." + adb logcat -d -s AndroidRuntime | grep -F -q -v "$message" \ + || fail "Found message \"$message\" generated by AndroidRuntime" +} + +# test_android_runtime_flag FLAG VALUE CHECK_EFFECT CHECK_NO_EFFECT +# ----------------------------------------------------------------- +# Test device configuration FLAG with VALUE. CHECK_EFFECT and CHECK_NO_EFFECT +# are functions that are passed a context as sole argument and that respectively +# check the effect or the absence of effect of the flag. function test_android_runtime_flag { local flag=$1 local value=$2 - local gc_runtime_option=$3 + local check_effect=$3 + local check_no_effect=$4 # Persistent system property (set after a reboot) associated with the device # configuration flag. @@ -193,26 +219,26 @@ function test_android_runtime_flag { sleep 3 # Check that both the device configuration flag and the associated system - # property are set, but that the zygote hasn't had the flag passed to it as a - # GC runtime option (as we haven't rebooted yet). + # property are set, but that flag has not produced an effect on the system (as + # we haven't rebooted yet). local context="Flag set, before reboot" check_device_config_flag "$context" "$flag" "$value" check_system_property "$context" "$prop" "$value" - check_no_zygote_gc_runtime_option "$context" "$gc_runtime_option" + $check_no_effect "$context" # Reboot device for the flag value to take effect. reboot_and_wait_for_device context="Flag set, after 1st reboot" check_device_config_flag "$context" "$flag" "$value" check_system_property "$context" "$prop" "$value" - check_zygote_gc_runtime_option "$context" "$gc_runtime_option" + $check_effect "$context" # Reboot device a second time and check that the state has persisted. reboot_and_wait_for_device context="Flag set, after 2nd reboot" check_device_config_flag "$context" "$flag" "$value" check_system_property "$context" "$prop" "$value" - check_zygote_gc_runtime_option "$context" "$gc_runtime_option" + $check_effect "$context" say "Unsetting device configuration flag..." adb shell device_config delete "$namespace" "$flag" >/dev/null @@ -224,9 +250,13 @@ function test_android_runtime_flag { context="Flag unset, after 3rd reboot" check_no_device_config_flag "$context" "$flag" check_no_system_property "$context" "$prop" - check_no_zygote_gc_runtime_option "$context" "$gc_runtime_option" + $check_no_effect "$context" } + +# Pre-test actions. +# ================= + # Enumerate Zygote processes. case $(adb shell getprop ro.zygote) in (zygote32) zygotes="zygote";; @@ -235,8 +265,56 @@ case $(adb shell getprop ro.zygote) in esac # Test "enable_generational_cc" flag values. -test_android_runtime_flag enable_generational_cc false nogenerational_cc -test_android_runtime_flag enable_generational_cc true generational_cc +# ========================================== + +function check_nogenerational_cc { + check_zygote_runtime_option "$1" "-Xgc:nogenerational_cc" +} +function check_no_nogenerational_cc { + check_no_zygote_runtime_option "$1" "-Xgc:nogenerational_cc" +} + +function check_generational_cc { + check_zygote_runtime_option "$1" "-Xgc:generational_cc" +} +function check_no_generational_cc { + check_no_zygote_runtime_option "$1" "-Xgc:generational_cc" +} + +test_android_runtime_flag \ + enable_generational_cc false check_nogenerational_cc check_no_nogenerational_cc +test_android_runtime_flag \ + enable_generational_cc true check_generational_cc check_no_generational_cc + +# Test "enable_apex_image" flag values. +# ===================================== + +default_boot_image_message="Using default boot image" +function check_default_boot_image { + check_android_runtime_message "$1" "$default_boot_image_message" +} +function check_no_default_boot_image { + check_no_android_runtime_message "$1" "$default_boot_image_message" +} + +apex_boot_image_option="-Ximage:/system/framework/apex.art" +apex_boot_image_message="Using Apex boot image: '$apex_boot_image_option'" +function check_apex_boot_image { + check_zygote_runtime_option "$1" "$apex_boot_image_option" + check_android_runtime_message "$1" "$apex_boot_image_message" +} +function check_no_apex_boot_image { + check_no_zygote_runtime_option "$1" "$apex_boot_image_option" + check_no_android_runtime_message "$1" "$apex_boot_image_message" +} + +test_android_runtime_flag \ + enable_apex_image false check_default_boot_image check_no_default_boot_image +test_android_runtime_flag \ + enable_apex_image true check_apex_boot_image check_no_apex_boot_image + +# Post-test actions. +# ================== if [[ "$exit_status" -eq 0 ]]; then banner "All tests passed." diff --git a/core/res/res/values-mcc311-mnc480/config.xml b/core/res/res/values-mcc311-mnc480/config.xml index cc7daa8efec6..db2f8d01f93a 100755 --- a/core/res/res/values-mcc311-mnc480/config.xml +++ b/core/res/res/values-mcc311-mnc480/config.xml @@ -19,21 +19,6 @@ <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- CDMA home system id for Verizon --> - <string-array translatable="false" name="config_cdma_home_system"> - <item>64</item> - <item>65</item> - <item>66</item> - <item>76</item> - <item>77</item> - <item>78</item> - <item>79</item> - <item>80</item> - <item>81</item> - <item>82</item> - <item>83</item> - </string-array> - <!-- Flag indicating whether the IMS service can be turned off. If false then the service will not be turned-off completely (the ImsManager.turnOffIms() will be disabled) but individual Features can be disabled using ImsConfig.setFeatureValue() --> diff --git a/core/res/res/values/colors_device_defaults.xml b/core/res/res/values/colors_device_defaults.xml index 0fe80a154f7a..256c53133096 100644 --- a/core/res/res/values/colors_device_defaults.xml +++ b/core/res/res/values/colors_device_defaults.xml @@ -26,6 +26,8 @@ <color name="primary_dark_device_default_settings">@color/primary_dark_material_settings</color> <color name="primary_dark_device_default_settings_light">@color/primary_dark_material_settings_light</color> + <color name="navigation_bar_divider_device_default_settings">#1f000000</color> + <color name="secondary_device_default_settings">@color/secondary_material_settings</color> <color name="secondary_device_default_settings_light">@color/secondary_material_settings_light</color> <color name="tertiary_device_default_settings">@color/tertiary_material_settings</color> diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index de07b86819c3..97ae8e5215fe 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -477,22 +477,16 @@ - the return value of TelephonyManager.getTetherApnRequired() determines how the array is further modified: - * DUN_REQUIRED - TYPE_MOBILE is removed (if present) - TYPE_MOBILE_HIPRI is removed (if present) - TYPE_MOBILE_DUN is appended (if not already present) - - * DUN_NOT_REQUIRED - TYPE_MOBILE_DUN is removed (if present) - TYPE_MOBILE is appended (if not already present) - TYPE_MOBILE_HIPRI is appended (if not already present) - - * DUN_UNSPECIFIED - if any of TYPE_MOBILE{,_DUN,_HIPRI} are present: - change nothing - else: - TYPE_MOBILE is appended - TYPE_MOBILE_HIPRI is appended + * TRUE (DUN REQUIRED). + TYPE_MOBILE is removed (if present). + TYPE_MOBILE_HIPRI is removed (if present). + TYPE_MOBILE_DUN is appended (if not already present). + + * FALSE (DUN NOT REQUIRED). + TYPE_MOBILE_DUN is removed (if present). + If both of TYPE_MOBILE{,_HIPRI} are not present: + TYPE_MOBILE is appended. + TYPE_MOBILE_HIPRI is appended. For other changes applied to this list, now and in the future, see com.android.server.connectivity.tethering.TetheringConfiguration. @@ -659,7 +653,7 @@ <bool translatable="false" name="config_wifi_framework_enable_associated_network_selection">true</bool> <!-- Boolean indicating whether single radio chain scan results are to be used for network selection --> - <bool translatable="false" name="config_wifi_framework_use_single_radio_chain_scan_results_network_selection">false</bool> + <bool translatable="false" name="config_wifi_framework_use_single_radio_chain_scan_results_network_selection">true</bool> <!-- Boolean indicating that wifi only link configuratios that have exact same credentials (i.e PSK) --> <bool translatable="false" name="config_wifi_only_link_same_credential_configurations">true</bool> @@ -2754,14 +2748,6 @@ <bool name="config_networkSamplingWakesDevice">true</bool> - <!-- Home (non-roaming) values for CDMA roaming indicator. - Carriers can override this table by resource overlay. If not, - the default values come from 3GPP2 C.R1001 table - 8.1-1. Enhanced Roaming Indicator Number Assignments --> - <string-array translatable="false" name="config_cdma_home_system"> - <item>1</item> - </string-array> - <!--From SmsMessage--> <!--Support decoding the user data payload as pack GSM 8-bit (a GSM alphabet string that's stored in 8-bit unpacked format) characters.--> diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index a69914bafabb..4689caa73a38 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -2482,7 +2482,6 @@ <java-symbol type="attr" name="lightRadius" /> <java-symbol type="attr" name="ambientShadowAlpha" /> <java-symbol type="attr" name="spotShadowAlpha" /> - <java-symbol type="array" name="config_cdma_home_system" /> <java-symbol type="bool" name="config_sms_decode_gsm_8bit_data" /> <java-symbol type="dimen" name="text_size_small_material" /> <java-symbol type="attr" name="checkMarkGravity" /> diff --git a/core/res/res/values/themes_device_defaults.xml b/core/res/res/values/themes_device_defaults.xml index 14e5082bdebb..83edeac00b33 100644 --- a/core/res/res/values/themes_device_defaults.xml +++ b/core/res/res/values/themes_device_defaults.xml @@ -1447,7 +1447,7 @@ easier. <item name="colorEdgeEffect">@android:color/black</item> <!-- Add white nav bar with divider that matches material --> - <item name="navigationBarDividerColor">#1f000000</item> + <item name="navigationBarDividerColor">@color/navigation_bar_divider_device_default_settings</item> <item name="navigationBarColor">@android:color/white</item> <item name="windowLightNavigationBar">true</item> diff --git a/core/xsd/Android.bp b/core/xsd/Android.bp new file mode 100644 index 000000000000..81669eb290db --- /dev/null +++ b/core/xsd/Android.bp @@ -0,0 +1,6 @@ +xsd_config { + name: "permission", + srcs: ["permission.xsd"], + api_dir: "schema", + package_name: "com.android.xml.permission", +} diff --git a/core/xsd/permission.xsd b/core/xsd/permission.xsd new file mode 100644 index 000000000000..d90863b2c716 --- /dev/null +++ b/core/xsd/permission.xsd @@ -0,0 +1,166 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Copyright (C) 2019 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<!-- TODO: define a targetNamespace. Note that it will break retrocompatibility --> +<xs:schema version="2.0" + elementFormDefault="qualified" + attributeFormDefault="unqualified" + xmlns:xs="http://www.w3.org/2001/XMLSchema"> + <xs:element name="permissions"> + <xs:complexType> + <xs:sequence> + <xs:element name="group" type="group" maxOccurs="unbounded"/> + <xs:element name="permission" type="permission" maxOccurs="unbounded"/> + <xs:element name="assign-permission" type="assign-permission" maxOccurs="unbounded"/> + <xs:element name="split-permission" type="split-permission" maxOccurs="unbounded"/> + <xs:element name="library" type="library" maxOccurs="unbounded"/> + <xs:element name="feature" type="feature" maxOccurs="unbounded"/> + <xs:element name="unavailable-feature" type="unavailable-feature" maxOccurs="unbounded"/> + <xs:element name="allow-in-power-save-except-idle" type="allow-in-power-save-except-idle" maxOccurs="unbounded"/> + <xs:element name="allow-in-power-save" type="allow-in-power-save" maxOccurs="unbounded"/> + <xs:element name="allow-in-data-usage-save" type="allow-in-data-usage-save" maxOccurs="unbounded"/> + <xs:element name="allow-unthrottled-location" type="allow-unthrottled-location" maxOccurs="unbounded"/> + <xs:element name="allow-ignore-location-settings" type="allow-ignore-location-settings" maxOccurs="unbounded"/> + <xs:element name="allow-implicit-broadcast" type="allow-implicit-broadcast" maxOccurs="unbounded"/> + <xs:element name="app-link" type="app-link" maxOccurs="unbounded"/> + <xs:element name="system-user-whitelisted-app" type="system-user-whitelisted-app" maxOccurs="unbounded"/> + <xs:element name="system-user-blacklisted-app" type="system-user-blacklisted-app" maxOccurs="unbounded"/> + <xs:element name="default-enabled-vr-app" type="default-enabled-vr-app" maxOccurs="unbounded"/> + <xs:element name="backup-transport-whitelisted-service" type="backup-transport-whitelisted-service" maxOccurs="unbounded"/> + <xs:element name="disabled-until-used-preinstalled-carrier-associated-app" type="disabled-until-used-preinstalled-carrier-associated-app" maxOccurs="unbounded"/> + <xs:element name="disabled-until-used-preinstalled-carrier-app" type="disabled-until-used-preinstalled-carrier-app" maxOccurs="unbounded"/> + <xs:element name="privapp-permissions" type="privapp-permissions" maxOccurs="unbounded"/> + <xs:element name="oem-permissions" type="oem-permissions" maxOccurs="unbounded"/> + <xs:element name="hidden-api-whitelisted-app" type="hidden-api-whitelisted-app" maxOccurs="unbounded"/> + <xs:element name="allow-association" type="allow-association" maxOccurs="unbounded"/> + <xs:element name="bugreport-whitelisted" type="bugreport-whitelisted" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:complexType name="group"> + <xs:attribute name="gid" type="xs:int"/> + </xs:complexType> + <xs:complexType name="permission"> + <xs:attribute name="name" type="xs:string"/> + </xs:complexType> + <xs:complexType name="assign-permission"> + <xs:attribute name="name" type="xs:string"/> + <xs:attribute name="uid" type="xs:int"/> + </xs:complexType> + <xs:complexType name="split-permission"> + <xs:attribute name="name" type="xs:string"/> + <xs:attribute name="targetSdk" type="xs:int"/> + <xs:sequence> + <xs:element name="library" maxOccurs="unbounded"> + <xs:complexType> + <xs:attribute name="name" type="xs:string"/> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:complexType name="library"> + <xs:attribute name="name" type="xs:string"/> + <xs:attribute name="file" type="xs:string"/> + <xs:attribute name="dependency" type="xs:string"/> + </xs:complexType> + <xs:complexType name="feature"> + <xs:attribute name="name" type="xs:string"/> + <xs:attribute name="notLowRam" type="xs:string"/> + </xs:complexType> + <xs:complexType name="unavailable-feature"> + <xs:attribute name="name" type="xs:string"/> + </xs:complexType> + <xs:complexType name="allow-in-power-save-except-idle"> + <xs:attribute name="package" type="xs:string"/> + </xs:complexType> + <xs:complexType name="allow-in-power-save"> + <xs:attribute name="package" type="xs:string"/> + </xs:complexType> + <xs:complexType name="allow-in-data-usage-save"> + <xs:attribute name="package" type="xs:string"/> + </xs:complexType> + <xs:complexType name="allow-unthrottled-location"> + <xs:attribute name="package" type="xs:string"/> + </xs:complexType> + <xs:complexType name="allow-ignore-location-settings"> + <xs:attribute name="package" type="xs:string"/> + </xs:complexType> + <xs:complexType name="allow-implicit-broadcast"> + <xs:attribute name="action" type="xs:string"/> + </xs:complexType> + <xs:complexType name="app-link"> + <xs:attribute name="package" type="xs:string"/> + </xs:complexType> + <xs:complexType name="system-user-whitelisted-app"> + <xs:attribute name="package" type="xs:string"/> + </xs:complexType> + <xs:complexType name="system-user-blacklisted-app"> + <xs:attribute name="package" type="xs:string"/> + </xs:complexType> + <xs:complexType name="default-enabled-vr-app"> + <xs:attribute name="package" type="xs:string"/> + <xs:attribute name="class" type="xs:string"/> + </xs:complexType> + <xs:complexType name="backup-transport-whitelisted-service"> + <xs:attribute name="service" type="xs:string"/> + </xs:complexType> + <xs:complexType name="disabled-until-used-preinstalled-carrier-associated-app"> + <xs:attribute name="package" type="xs:string"/> + <xs:attribute name="carrierAppPackage" type="xs:string"/> + </xs:complexType> + <xs:complexType name="disabled-until-used-preinstalled-carrier-app"> + <xs:attribute name="package" type="xs:string"/> + </xs:complexType> + <xs:complexType name="privapp-permissions"> + <xs:attribute name="package" type="xs:string"/> + <xs:sequence> + <xs:element name="permission" maxOccurs="unbounded"> + <xs:complexType> + <xs:attribute name="name" type="xs:string"/> + </xs:complexType> + </xs:element> + <xs:element name="deny-permission" maxOccurs="unbounded"> + <xs:complexType> + <xs:attribute name="name" type="xs:string"/> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:complexType name="oem-permissions"> + <xs:attribute name="package" type="xs:string"/> + <xs:sequence> + <xs:element name="permission" maxOccurs="unbounded"> + <xs:complexType> + <xs:attribute name="name" type="xs:string"/> + </xs:complexType> + </xs:element> + <xs:element name="deny-permission" maxOccurs="unbounded"> + <xs:complexType> + <xs:attribute name="name" type="xs:string"/> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:complexType name="hidden-api-whitelisted-app"> + <xs:attribute name="package" type="xs:string"/> + </xs:complexType> + <xs:complexType name="allow-association"> + <xs:attribute name="target" type="xs:string"/> + <xs:attribute name="allowed" type="xs:string"/> + </xs:complexType> + <xs:complexType name="bugreport-whitelisted"> + <xs:attribute name="package" type="xs:string"/> + </xs:complexType> +</xs:schema> diff --git a/core/xsd/schema/README.md b/core/xsd/schema/README.md new file mode 100644 index 000000000000..f52d93d2b65a --- /dev/null +++ b/core/xsd/schema/README.md @@ -0,0 +1 @@ +Please see the [README](https://android.googlesource.com/platform/system/tools/xsdc/+/refs/heads/master/README.md) for details regarding the Configfile as API. diff --git a/core/xsd/schema/current.txt b/core/xsd/schema/current.txt new file mode 100644 index 000000000000..82bb0feac089 --- /dev/null +++ b/core/xsd/schema/current.txt @@ -0,0 +1,242 @@ +// Signature format: 2.0 +package com.android.xml.permission { + + public class AllowAssociation { + ctor public AllowAssociation(); + method public String getAllowed(); + method public String getTarget(); + method public void setAllowed(String); + method public void setTarget(String); + } + + public class AllowIgnoreLocationSettings { + ctor public AllowIgnoreLocationSettings(); + method public String get_package(); + method public void set_package(String); + } + + public class AllowImplicitBroadcast { + ctor public AllowImplicitBroadcast(); + method public String getAction(); + method public void setAction(String); + } + + public class AllowInDataUsageSave { + ctor public AllowInDataUsageSave(); + method public String get_package(); + method public void set_package(String); + } + + public class AllowInPowerSave { + ctor public AllowInPowerSave(); + method public String get_package(); + method public void set_package(String); + } + + public class AllowInPowerSaveExceptIdle { + ctor public AllowInPowerSaveExceptIdle(); + method public String get_package(); + method public void set_package(String); + } + + public class AllowUnthrottledLocation { + ctor public AllowUnthrottledLocation(); + method public String get_package(); + method public void set_package(String); + } + + public class AppLink { + ctor public AppLink(); + method public String get_package(); + method public void set_package(String); + } + + public class AssignPermission { + ctor public AssignPermission(); + method public String getName(); + method public int getUid(); + method public void setName(String); + method public void setUid(int); + } + + public class BackupTransportWhitelistedService { + ctor public BackupTransportWhitelistedService(); + method public String getService(); + method public void setService(String); + } + + public class BugreportWhitelisted { + ctor public BugreportWhitelisted(); + method public String get_package(); + method public void set_package(String); + } + + public class DefaultEnabledVrApp { + ctor public DefaultEnabledVrApp(); + method public String get_class(); + method public String get_package(); + method public void set_class(String); + method public void set_package(String); + } + + public class DisabledUntilUsedPreinstalledCarrierApp { + ctor public DisabledUntilUsedPreinstalledCarrierApp(); + method public String get_package(); + method public void set_package(String); + } + + public class DisabledUntilUsedPreinstalledCarrierAssociatedApp { + ctor public DisabledUntilUsedPreinstalledCarrierAssociatedApp(); + method public String getCarrierAppPackage(); + method public String get_package(); + method public void setCarrierAppPackage(String); + method public void set_package(String); + } + + public class Feature { + ctor public Feature(); + method public String getName(); + method public String getNotLowRam(); + method public void setName(String); + method public void setNotLowRam(String); + } + + public class Group { + ctor public Group(); + method public int getGid(); + method public void setGid(int); + } + + public class HiddenApiWhitelistedApp { + ctor public HiddenApiWhitelistedApp(); + method public String get_package(); + method public void set_package(String); + } + + public class Library { + ctor public Library(); + method public String getDependency(); + method public String getFile(); + method public String getName(); + method public void setDependency(String); + method public void setFile(String); + method public void setName(String); + } + + public class OemPermissions { + ctor public OemPermissions(); + method public java.util.List<com.android.xml.permission.OemPermissions.DenyPermission> getDenyPermission(); + method public java.util.List<com.android.xml.permission.OemPermissions.Permission> getPermission(); + method public String get_package(); + method public void set_package(String); + } + + public static class OemPermissions.DenyPermission { + ctor public OemPermissions.DenyPermission(); + method public String getName(); + method public void setName(String); + } + + public static class OemPermissions.Permission { + ctor public OemPermissions.Permission(); + method public String getName(); + method public void setName(String); + } + + public class Permission { + ctor public Permission(); + method public String getName(); + method public void setName(String); + } + + public class Permissions { + ctor public Permissions(); + method public java.util.List<com.android.xml.permission.AllowAssociation> getAllowAssociation(); + method public java.util.List<com.android.xml.permission.AllowIgnoreLocationSettings> getAllowIgnoreLocationSettings(); + method public java.util.List<com.android.xml.permission.AllowImplicitBroadcast> getAllowImplicitBroadcast(); + method public java.util.List<com.android.xml.permission.AllowInDataUsageSave> getAllowInDataUsageSave(); + method public java.util.List<com.android.xml.permission.AllowInPowerSave> getAllowInPowerSave(); + method public java.util.List<com.android.xml.permission.AllowInPowerSaveExceptIdle> getAllowInPowerSaveExceptIdle(); + method public java.util.List<com.android.xml.permission.AllowUnthrottledLocation> getAllowUnthrottledLocation(); + method public java.util.List<com.android.xml.permission.AppLink> getAppLink(); + method public java.util.List<com.android.xml.permission.AssignPermission> getAssignPermission(); + method public java.util.List<com.android.xml.permission.BackupTransportWhitelistedService> getBackupTransportWhitelistedService(); + method public java.util.List<com.android.xml.permission.BugreportWhitelisted> getBugreportWhitelisted(); + method public java.util.List<com.android.xml.permission.DefaultEnabledVrApp> getDefaultEnabledVrApp(); + method public java.util.List<com.android.xml.permission.DisabledUntilUsedPreinstalledCarrierApp> getDisabledUntilUsedPreinstalledCarrierApp(); + method public java.util.List<com.android.xml.permission.DisabledUntilUsedPreinstalledCarrierAssociatedApp> getDisabledUntilUsedPreinstalledCarrierAssociatedApp(); + method public java.util.List<com.android.xml.permission.Feature> getFeature(); + method public java.util.List<com.android.xml.permission.Group> getGroup(); + method public java.util.List<com.android.xml.permission.HiddenApiWhitelistedApp> getHiddenApiWhitelistedApp(); + method public java.util.List<com.android.xml.permission.Library> getLibrary(); + method public java.util.List<com.android.xml.permission.OemPermissions> getOemPermissions(); + method public java.util.List<com.android.xml.permission.Permission> getPermission(); + method public java.util.List<com.android.xml.permission.PrivappPermissions> getPrivappPermissions(); + method public java.util.List<com.android.xml.permission.SplitPermission> getSplitPermission(); + method public java.util.List<com.android.xml.permission.SystemUserBlacklistedApp> getSystemUserBlacklistedApp(); + method public java.util.List<com.android.xml.permission.SystemUserWhitelistedApp> getSystemUserWhitelistedApp(); + method public java.util.List<com.android.xml.permission.UnavailableFeature> getUnavailableFeature(); + } + + public class PrivappPermissions { + ctor public PrivappPermissions(); + method public java.util.List<com.android.xml.permission.PrivappPermissions.DenyPermission> getDenyPermission(); + method public java.util.List<com.android.xml.permission.PrivappPermissions.Permission> getPermission(); + method public String get_package(); + method public void set_package(String); + } + + public static class PrivappPermissions.DenyPermission { + ctor public PrivappPermissions.DenyPermission(); + method public String getName(); + method public void setName(String); + } + + public static class PrivappPermissions.Permission { + ctor public PrivappPermissions.Permission(); + method public String getName(); + method public void setName(String); + } + + public class SplitPermission { + ctor public SplitPermission(); + method public java.util.List<com.android.xml.permission.SplitPermission.Library> getLibrary(); + method public String getName(); + method public int getTargetSdk(); + method public void setName(String); + method public void setTargetSdk(int); + } + + public static class SplitPermission.Library { + ctor public SplitPermission.Library(); + method public String getName(); + method public void setName(String); + } + + public class SystemUserBlacklistedApp { + ctor public SystemUserBlacklistedApp(); + method public String get_package(); + method public void set_package(String); + } + + public class SystemUserWhitelistedApp { + ctor public SystemUserWhitelistedApp(); + method public String get_package(); + method public void set_package(String); + } + + public class UnavailableFeature { + ctor public UnavailableFeature(); + method public String getName(); + method public void setName(String); + } + + public class XmlParser { + ctor public XmlParser(); + method public static com.android.xml.permission.Permissions read(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException; + method public static String readText(org.xmlpull.v1.XmlPullParser) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException; + method public static void skip(org.xmlpull.v1.XmlPullParser) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException; + } + +} + diff --git a/core/xsd/schema/last_current.txt b/core/xsd/schema/last_current.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/core/xsd/schema/last_current.txt diff --git a/core/xsd/schema/last_removed.txt b/core/xsd/schema/last_removed.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/core/xsd/schema/last_removed.txt diff --git a/core/xsd/schema/removed.txt b/core/xsd/schema/removed.txt new file mode 100644 index 000000000000..d802177e249b --- /dev/null +++ b/core/xsd/schema/removed.txt @@ -0,0 +1 @@ +// Signature format: 2.0 diff --git a/graphics/java/android/graphics/drawable/GradientDrawable.java b/graphics/java/android/graphics/drawable/GradientDrawable.java index d34d461e8a87..2a286afd7b63 100644 --- a/graphics/java/android/graphics/drawable/GradientDrawable.java +++ b/graphics/java/android/graphics/drawable/GradientDrawable.java @@ -579,9 +579,9 @@ public class GradientDrawable extends Drawable { * The default value for this property is {@code false}. * <p> * <strong>Note</strong>: This property corresponds to the - * {@code android:useLevel} attribute on the inner {@code <gradient>} + * {@code android:useLevel} attribute on the inner {@code <gradient>} * tag, NOT the {@code android:useLevel} attribute on the outer - * {@code <shape>} tag. For example, + * {@code <shape>} tag. For example, * <pre>{@code * <shape ...> * <gradient diff --git a/media/java/android/media/MediaHTTPConnection.java b/media/java/android/media/MediaHTTPConnection.java index 5f324f7f97ed..d72476269e18 100644 --- a/media/java/android/media/MediaHTTPConnection.java +++ b/media/java/android/media/MediaHTTPConnection.java @@ -37,7 +37,6 @@ import java.net.URL; import java.net.UnknownServiceException; import java.util.HashMap; import java.util.Map; -import java.util.concurrent.atomic.AtomicBoolean; /** @hide */ public class MediaHTTPConnection extends IMediaHTTPConnection.Stub { @@ -67,7 +66,6 @@ public class MediaHTTPConnection extends IMediaHTTPConnection.Stub { // from com.squareup.okhttp.internal.http private final static int HTTP_TEMP_REDIRECT = 307; private final static int MAX_REDIRECTS = 20; - private AtomicBoolean mIsConnected = new AtomicBoolean(false); @UnsupportedAppUsage public MediaHTTPConnection() { @@ -91,7 +89,6 @@ public class MediaHTTPConnection extends IMediaHTTPConnection.Stub { mAllowCrossDomainRedirect = true; mURL = new URL(uri); mHeaders = convertHeaderStringToMap(headers); - mIsConnected.set(true); } catch (MalformedURLException e) { return null; } @@ -142,14 +139,7 @@ public class MediaHTTPConnection extends IMediaHTTPConnection.Stub { @Override @UnsupportedAppUsage public void disconnect() { - if (mIsConnected.getAndSet(false)) { - (new Thread() { - @Override - public void run() { - teardownConnection(); - } - }).start(); - } + teardownConnection(); mHeaders = null; mURL = null; } @@ -334,14 +324,7 @@ public class MediaHTTPConnection extends IMediaHTTPConnection.Stub { @Override @UnsupportedAppUsage public int readAt(long offset, int size) { - if (!mIsConnected.get()) { - return -1; - } - int result = native_readAt(offset, size); - if (!mIsConnected.get()) { - return -1; - } - return result; + return native_readAt(offset, size); } private int readAt(long offset, byte[] data, int size) { diff --git a/media/jni/Android.bp b/media/jni/Android.bp index 25c7b5cc5cd6..5966192707f7 100644 --- a/media/jni/Android.bp +++ b/media/jni/Android.bp @@ -20,8 +20,8 @@ cc_library_shared { "android_media_MediaScanner.cpp", "android_media_MediaSync.cpp", "android_media_ResampleInputStream.cpp", + "android_media_Streams.cpp", "android_media_SyncParams.cpp", - "android_media_Utils.cpp", "android_mtp_MtpDatabase.cpp", "android_mtp_MtpDevice.cpp", "android_mtp_MtpServer.cpp", @@ -36,6 +36,7 @@ cc_library_shared { "libbinder", "libmedia", "libmediaextractor", + "libmedia_jni_utils", "libmedia_omx", "libmediametrics", "libmediadrm", @@ -91,6 +92,36 @@ cc_library_shared { } cc_library_shared { + name: "libmedia_jni_utils", + srcs: [ + "android_media_Utils.cpp", + ], + + shared_libs: [ + "liblog", + "libmedia_omx", + "libnativewindow", + "libui", + "libutils", + "android.hidl.token@1.0-utils", + ], + + include_dirs: [ + "system/media/camera/include", + ], + + export_include_dirs: ["."], + + cflags: [ + "-Wall", + "-Werror", + "-Wno-error=deprecated-declarations", + "-Wunused", + "-Wunreachable-code", + ], +} + +cc_library_shared { name: "libmedia2_jni", srcs: [ diff --git a/media/jni/android_media_MediaCodec.cpp b/media/jni/android_media_MediaCodec.cpp index 3490ff8fcf43..cf73b21c3300 100644 --- a/media/jni/android_media_MediaCodec.cpp +++ b/media/jni/android_media_MediaCodec.cpp @@ -23,7 +23,7 @@ #include "android_media_MediaCrypto.h" #include "android_media_MediaDescrambler.h" #include "android_media_MediaMetricsJNI.h" -#include "android_media_Utils.h" +#include "android_media_Streams.h" #include "android_runtime/AndroidRuntime.h" #include "android_runtime/android_view_Surface.h" #include "android_util_Binder.h" diff --git a/media/jni/android_media_MediaCodecList.cpp b/media/jni/android_media_MediaCodecList.cpp index 8de11caf7d7a..878910ab1c87 100644 --- a/media/jni/android_media_MediaCodecList.cpp +++ b/media/jni/android_media_MediaCodecList.cpp @@ -27,7 +27,7 @@ #include "android_runtime/AndroidRuntime.h" #include "jni.h" #include <nativehelper/JNIHelp.h> -#include "android_media_Utils.h" +#include "android_media_Streams.h" using namespace android; diff --git a/media/jni/android_media_MediaExtractor.cpp b/media/jni/android_media_MediaExtractor.cpp index dad0e53963b0..3edac443ab8c 100644 --- a/media/jni/android_media_MediaExtractor.cpp +++ b/media/jni/android_media_MediaExtractor.cpp @@ -21,7 +21,7 @@ #include "android_media_MediaDataSource.h" #include "android_media_MediaExtractor.h" #include "android_media_MediaMetricsJNI.h" -#include "android_media_Utils.h" +#include "android_media_Streams.h" #include "android_os_HwRemoteBinder.h" #include "android_runtime/AndroidRuntime.h" #include "android_runtime/Log.h" diff --git a/media/jni/android_media_MediaMetadataRetriever.cpp b/media/jni/android_media_MediaMetadataRetriever.cpp index c1226fa89fe4..a4807843d7d8 100644 --- a/media/jni/android_media_MediaMetadataRetriever.cpp +++ b/media/jni/android_media_MediaMetadataRetriever.cpp @@ -18,6 +18,7 @@ //#define LOG_NDEBUG 0 #define LOG_TAG "MediaMetadataRetrieverJNI" +#include <cmath> #include <assert.h> #include <utils/Log.h> #include <utils/threads.h> @@ -32,7 +33,7 @@ #include <nativehelper/JNIHelp.h> #include "android_runtime/AndroidRuntime.h" #include "android_media_MediaDataSource.h" -#include "android_media_Utils.h" +#include "android_media_Streams.h" #include "android_util_Binder.h" #include "android/graphics/GraphicsJNI.h" diff --git a/media/jni/android_media_MediaMuxer.cpp b/media/jni/android_media_MediaMuxer.cpp index f11452a9d80d..f0aa4c3f1ab6 100644 --- a/media/jni/android_media_MediaMuxer.cpp +++ b/media/jni/android_media_MediaMuxer.cpp @@ -18,7 +18,7 @@ #define LOG_TAG "MediaMuxer-JNI" #include <utils/Log.h> -#include "android_media_Utils.h" +#include "android_media_Streams.h" #include "android_runtime/AndroidRuntime.h" #include "jni.h" #include <nativehelper/JNIHelp.h> diff --git a/media/jni/android_media_MediaPlayer.cpp b/media/jni/android_media_MediaPlayer.cpp index 5dd01b03274a..2acb0e5818fa 100644 --- a/media/jni/android_media_MediaPlayer.cpp +++ b/media/jni/android_media_MediaPlayer.cpp @@ -45,7 +45,7 @@ #include "android_media_PlaybackParams.h" #include "android_media_SyncParams.h" #include "android_media_VolumeShaper.h" -#include "android_media_Utils.h" +#include "android_media_Streams.h" #include "android_os_Parcel.h" #include "android_util_Binder.h" diff --git a/media/jni/android_media_Streams.cpp b/media/jni/android_media_Streams.cpp new file mode 100644 index 000000000000..b7cbd97409a2 --- /dev/null +++ b/media/jni/android_media_Streams.cpp @@ -0,0 +1,559 @@ +/* + * Copyright 2019, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// #define LOG_NDEBUG 0 +#define LOG_TAG "AndroidMediaStreams" + +#include <utils/Log.h> +#include "android_media_Streams.h" + +#include <media/stagefright/foundation/ADebug.h> +#include <media/stagefright/foundation/ABuffer.h> +#include <media/stagefright/foundation/AMessage.h> + +#include <nativehelper/ScopedLocalRef.h> + +namespace android { + +AssetStream::AssetStream(SkStream* stream) + : mStream(stream), mPosition(0) { +} + +AssetStream::~AssetStream() { +} + +piex::Error AssetStream::GetData( + const size_t offset, const size_t length, std::uint8_t* data) { + // Seek first. + if (mPosition != offset) { + if (!mStream->seek(offset)) { + return piex::Error::kFail; + } + } + + // Read bytes. + size_t size = mStream->read((void*)data, length); + mPosition = offset + size; + + return size == length ? piex::Error::kOk : piex::Error::kFail; +} + +BufferedStream::BufferedStream(SkStream* stream) + : mStream(stream) { +} + +BufferedStream::~BufferedStream() { +} + +piex::Error BufferedStream::GetData( + const size_t offset, const size_t length, std::uint8_t* data) { + // Seek first. + if (offset + length > mStreamBuffer.bytesWritten()) { + size_t sizeToRead = offset + length - mStreamBuffer.bytesWritten(); + if (sizeToRead <= kMinSizeToRead) { + sizeToRead = kMinSizeToRead; + } + + void* tempBuffer = malloc(sizeToRead); + if (tempBuffer == NULL) { + return piex::Error::kFail; + } + + size_t bytesRead = mStream->read(tempBuffer, sizeToRead); + if (bytesRead != sizeToRead) { + free(tempBuffer); + return piex::Error::kFail; + } + mStreamBuffer.write(tempBuffer, bytesRead); + free(tempBuffer); + } + + // Read bytes. + if (mStreamBuffer.read((void*)data, offset, length)) { + return piex::Error::kOk; + } else { + return piex::Error::kFail; + } +} + +FileStream::FileStream(const int fd) + : mPosition(0) { + mFile = fdopen(fd, "r"); + if (mFile == NULL) { + return; + } +} + +FileStream::FileStream(const String8 filename) + : mPosition(0) { + mFile = fopen(filename.string(), "r"); + if (mFile == NULL) { + return; + } +} + +FileStream::~FileStream() { + if (mFile != NULL) { + fclose(mFile); + mFile = NULL; + } +} + +piex::Error FileStream::GetData( + const size_t offset, const size_t length, std::uint8_t* data) { + if (mFile == NULL) { + return piex::Error::kFail; + } + + // Seek first. + if (mPosition != offset) { + fseek(mFile, offset, SEEK_SET); + } + + // Read bytes. + size_t size = fread((void*)data, sizeof(std::uint8_t), length, mFile); + mPosition += size; + + // Handle errors and verify the size. + if (ferror(mFile) || size != length) { + ALOGV("GetData read failed: (offset: %zu, length: %zu)", offset, length); + return piex::Error::kFail; + } + return piex::Error::kOk; +} + +bool FileStream::exists() const { + return mFile != NULL; +} + +bool GetExifFromRawImage( + piex::StreamInterface* stream, const String8& filename, + piex::PreviewImageData& image_data) { + // Reset the PreviewImageData to its default. + image_data = piex::PreviewImageData(); + + if (!piex::IsRaw(stream)) { + // Format not supported. + ALOGV("Format not supported: %s", filename.string()); + return false; + } + + piex::Error err = piex::GetPreviewImageData(stream, &image_data); + + if (err != piex::Error::kOk) { + // The input data seems to be broken. + ALOGV("Raw image not detected: %s (piex error code: %d)", filename.string(), (int32_t)err); + return false; + } + + return true; +} + +bool ConvertKeyValueArraysToKeyedVector( + JNIEnv *env, jobjectArray keys, jobjectArray values, + KeyedVector<String8, String8>* keyedVector) { + + int nKeyValuePairs = 0; + bool failed = false; + if (keys != NULL && values != NULL) { + nKeyValuePairs = env->GetArrayLength(keys); + failed = (nKeyValuePairs != env->GetArrayLength(values)); + } + + if (!failed) { + failed = ((keys != NULL && values == NULL) || + (keys == NULL && values != NULL)); + } + + if (failed) { + ALOGE("keys and values arrays have different length"); + jniThrowException(env, "java/lang/IllegalArgumentException", NULL); + return false; + } + + for (int i = 0; i < nKeyValuePairs; ++i) { + // No need to check on the ArrayIndexOutOfBoundsException, since + // it won't happen here. + jstring key = (jstring) env->GetObjectArrayElement(keys, i); + jstring value = (jstring) env->GetObjectArrayElement(values, i); + + const char* keyStr = env->GetStringUTFChars(key, NULL); + if (!keyStr) { // OutOfMemoryError + return false; + } + + const char* valueStr = env->GetStringUTFChars(value, NULL); + if (!valueStr) { // OutOfMemoryError + env->ReleaseStringUTFChars(key, keyStr); + return false; + } + + keyedVector->add(String8(keyStr), String8(valueStr)); + + env->ReleaseStringUTFChars(key, keyStr); + env->ReleaseStringUTFChars(value, valueStr); + env->DeleteLocalRef(key); + env->DeleteLocalRef(value); + } + return true; +} + +static jobject makeIntegerObject(JNIEnv *env, int32_t value) { + ScopedLocalRef<jclass> clazz(env, env->FindClass("java/lang/Integer")); + CHECK(clazz.get() != NULL); + + jmethodID integerConstructID = + env->GetMethodID(clazz.get(), "<init>", "(I)V"); + CHECK(integerConstructID != NULL); + + return env->NewObject(clazz.get(), integerConstructID, value); +} + +static jobject makeLongObject(JNIEnv *env, int64_t value) { + ScopedLocalRef<jclass> clazz(env, env->FindClass("java/lang/Long")); + CHECK(clazz.get() != NULL); + + jmethodID longConstructID = env->GetMethodID(clazz.get(), "<init>", "(J)V"); + CHECK(longConstructID != NULL); + + return env->NewObject(clazz.get(), longConstructID, value); +} + +static jobject makeFloatObject(JNIEnv *env, float value) { + ScopedLocalRef<jclass> clazz(env, env->FindClass("java/lang/Float")); + CHECK(clazz.get() != NULL); + + jmethodID floatConstructID = + env->GetMethodID(clazz.get(), "<init>", "(F)V"); + CHECK(floatConstructID != NULL); + + return env->NewObject(clazz.get(), floatConstructID, value); +} + +static jobject makeByteBufferObject( + JNIEnv *env, const void *data, size_t size) { + jbyteArray byteArrayObj = env->NewByteArray(size); + env->SetByteArrayRegion(byteArrayObj, 0, size, (const jbyte *)data); + + ScopedLocalRef<jclass> clazz(env, env->FindClass("java/nio/ByteBuffer")); + CHECK(clazz.get() != NULL); + + jmethodID byteBufWrapID = + env->GetStaticMethodID( + clazz.get(), "wrap", "([B)Ljava/nio/ByteBuffer;"); + CHECK(byteBufWrapID != NULL); + + jobject byteBufObj = env->CallStaticObjectMethod( + clazz.get(), byteBufWrapID, byteArrayObj); + + env->DeleteLocalRef(byteArrayObj); byteArrayObj = NULL; + + return byteBufObj; +} + +static void SetMapInt32( + JNIEnv *env, jobject hashMapObj, jmethodID hashMapPutID, + const char *key, int32_t value) { + jstring keyObj = env->NewStringUTF(key); + jobject valueObj = makeIntegerObject(env, value); + + env->CallObjectMethod(hashMapObj, hashMapPutID, keyObj, valueObj); + + env->DeleteLocalRef(valueObj); valueObj = NULL; + env->DeleteLocalRef(keyObj); keyObj = NULL; +} + +status_t ConvertMessageToMap( + JNIEnv *env, const sp<AMessage> &msg, jobject *map) { + ScopedLocalRef<jclass> hashMapClazz( + env, env->FindClass("java/util/HashMap")); + + if (hashMapClazz.get() == NULL) { + return -EINVAL; + } + + jmethodID hashMapConstructID = + env->GetMethodID(hashMapClazz.get(), "<init>", "()V"); + + if (hashMapConstructID == NULL) { + return -EINVAL; + } + + jmethodID hashMapPutID = + env->GetMethodID( + hashMapClazz.get(), + "put", + "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); + + if (hashMapPutID == NULL) { + return -EINVAL; + } + + jobject hashMap = env->NewObject(hashMapClazz.get(), hashMapConstructID); + + for (size_t i = 0; i < msg->countEntries(); ++i) { + AMessage::Type valueType; + const char *key = msg->getEntryNameAt(i, &valueType); + + if (!strncmp(key, "android._", 9)) { + // don't expose private keys (starting with android._) + continue; + } + + jobject valueObj = NULL; + + switch (valueType) { + case AMessage::kTypeInt32: + { + int32_t val; + CHECK(msg->findInt32(key, &val)); + + valueObj = makeIntegerObject(env, val); + break; + } + + case AMessage::kTypeInt64: + { + int64_t val; + CHECK(msg->findInt64(key, &val)); + + valueObj = makeLongObject(env, val); + break; + } + + case AMessage::kTypeFloat: + { + float val; + CHECK(msg->findFloat(key, &val)); + + valueObj = makeFloatObject(env, val); + break; + } + + case AMessage::kTypeString: + { + AString val; + CHECK(msg->findString(key, &val)); + + valueObj = env->NewStringUTF(val.c_str()); + break; + } + + case AMessage::kTypeBuffer: + { + sp<ABuffer> buffer; + CHECK(msg->findBuffer(key, &buffer)); + + valueObj = makeByteBufferObject( + env, buffer->data(), buffer->size()); + break; + } + + case AMessage::kTypeRect: + { + int32_t left, top, right, bottom; + CHECK(msg->findRect(key, &left, &top, &right, &bottom)); + + SetMapInt32( + env, + hashMap, + hashMapPutID, + AStringPrintf("%s-left", key).c_str(), + left); + + SetMapInt32( + env, + hashMap, + hashMapPutID, + AStringPrintf("%s-top", key).c_str(), + top); + + SetMapInt32( + env, + hashMap, + hashMapPutID, + AStringPrintf("%s-right", key).c_str(), + right); + + SetMapInt32( + env, + hashMap, + hashMapPutID, + AStringPrintf("%s-bottom", key).c_str(), + bottom); + break; + } + + default: + break; + } + + if (valueObj != NULL) { + jstring keyObj = env->NewStringUTF(key); + + env->CallObjectMethod(hashMap, hashMapPutID, keyObj, valueObj); + + env->DeleteLocalRef(keyObj); keyObj = NULL; + env->DeleteLocalRef(valueObj); valueObj = NULL; + } + } + + *map = hashMap; + + return OK; +} + +status_t ConvertKeyValueArraysToMessage( + JNIEnv *env, jobjectArray keys, jobjectArray values, + sp<AMessage> *out) { + ScopedLocalRef<jclass> stringClass(env, env->FindClass("java/lang/String")); + CHECK(stringClass.get() != NULL); + ScopedLocalRef<jclass> integerClass(env, env->FindClass("java/lang/Integer")); + CHECK(integerClass.get() != NULL); + ScopedLocalRef<jclass> longClass(env, env->FindClass("java/lang/Long")); + CHECK(longClass.get() != NULL); + ScopedLocalRef<jclass> floatClass(env, env->FindClass("java/lang/Float")); + CHECK(floatClass.get() != NULL); + ScopedLocalRef<jclass> byteBufClass(env, env->FindClass("java/nio/ByteBuffer")); + CHECK(byteBufClass.get() != NULL); + + sp<AMessage> msg = new AMessage; + + jsize numEntries = 0; + + if (keys != NULL) { + if (values == NULL) { + return -EINVAL; + } + + numEntries = env->GetArrayLength(keys); + + if (numEntries != env->GetArrayLength(values)) { + return -EINVAL; + } + } else if (values != NULL) { + return -EINVAL; + } + + for (jsize i = 0; i < numEntries; ++i) { + jobject keyObj = env->GetObjectArrayElement(keys, i); + + if (!env->IsInstanceOf(keyObj, stringClass.get())) { + return -EINVAL; + } + + const char *tmp = env->GetStringUTFChars((jstring)keyObj, NULL); + + if (tmp == NULL) { + return -ENOMEM; + } + + AString key = tmp; + + env->ReleaseStringUTFChars((jstring)keyObj, tmp); + tmp = NULL; + + if (key.startsWith("android._")) { + // don't propagate private keys (starting with android._) + continue; + } + + jobject valueObj = env->GetObjectArrayElement(values, i); + + if (env->IsInstanceOf(valueObj, stringClass.get())) { + const char *value = env->GetStringUTFChars((jstring)valueObj, NULL); + + if (value == NULL) { + return -ENOMEM; + } + + msg->setString(key.c_str(), value); + + env->ReleaseStringUTFChars((jstring)valueObj, value); + value = NULL; + } else if (env->IsInstanceOf(valueObj, integerClass.get())) { + jmethodID intValueID = + env->GetMethodID(integerClass.get(), "intValue", "()I"); + CHECK(intValueID != NULL); + + jint value = env->CallIntMethod(valueObj, intValueID); + + msg->setInt32(key.c_str(), value); + } else if (env->IsInstanceOf(valueObj, longClass.get())) { + jmethodID longValueID = + env->GetMethodID(longClass.get(), "longValue", "()J"); + CHECK(longValueID != NULL); + + jlong value = env->CallLongMethod(valueObj, longValueID); + + msg->setInt64(key.c_str(), value); + } else if (env->IsInstanceOf(valueObj, floatClass.get())) { + jmethodID floatValueID = + env->GetMethodID(floatClass.get(), "floatValue", "()F"); + CHECK(floatValueID != NULL); + + jfloat value = env->CallFloatMethod(valueObj, floatValueID); + + msg->setFloat(key.c_str(), value); + } else if (env->IsInstanceOf(valueObj, byteBufClass.get())) { + jmethodID positionID = + env->GetMethodID(byteBufClass.get(), "position", "()I"); + CHECK(positionID != NULL); + + jmethodID limitID = + env->GetMethodID(byteBufClass.get(), "limit", "()I"); + CHECK(limitID != NULL); + + jint position = env->CallIntMethod(valueObj, positionID); + jint limit = env->CallIntMethod(valueObj, limitID); + + sp<ABuffer> buffer = new ABuffer(limit - position); + + void *data = env->GetDirectBufferAddress(valueObj); + + if (data != NULL) { + memcpy(buffer->data(), + (const uint8_t *)data + position, + buffer->size()); + } else { + jmethodID arrayID = + env->GetMethodID(byteBufClass.get(), "array", "()[B"); + CHECK(arrayID != NULL); + + jbyteArray byteArray = + (jbyteArray)env->CallObjectMethod(valueObj, arrayID); + CHECK(byteArray != NULL); + + env->GetByteArrayRegion( + byteArray, + position, + buffer->size(), + (jbyte *)buffer->data()); + + env->DeleteLocalRef(byteArray); byteArray = NULL; + } + + msg->setBuffer(key.c_str(), buffer); + } + } + + *out = msg; + + return OK; +} + +} // namespace android + diff --git a/media/jni/android_media_Streams.h b/media/jni/android_media_Streams.h new file mode 100644 index 000000000000..d174f9a6650c --- /dev/null +++ b/media/jni/android_media_Streams.h @@ -0,0 +1,116 @@ +/* + * Copyright 2019, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef _ANDROID_MEDIA_STREAMS_H_ +#define _ANDROID_MEDIA_STREAMS_H_ + +#include "src/piex_types.h" +#include "src/piex.h" + +#include <jni.h> +#include <nativehelper/JNIHelp.h> +#include <utils/KeyedVector.h> +#include <utils/String8.h> +#include <utils/StrongPointer.h> +#include <SkStream.h> + + +namespace android { + +class AssetStream : public piex::StreamInterface { +private: + SkStream *mStream; + size_t mPosition; + +public: + explicit AssetStream(SkStream* stream); + ~AssetStream(); + + // Reads 'length' amount of bytes from 'offset' to 'data'. The 'data' buffer + // provided by the caller, guaranteed to be at least "length" bytes long. + // On 'kOk' the 'data' pointer contains 'length' valid bytes beginning at + // 'offset' bytes from the start of the stream. + // Returns 'kFail' if 'offset' + 'length' exceeds the stream and does not + // change the contents of 'data'. + piex::Error GetData( + const size_t offset, const size_t length, std::uint8_t* data) override; +}; + +class BufferedStream : public piex::StreamInterface { +private: + SkStream *mStream; + // Growable memory stream + SkDynamicMemoryWStream mStreamBuffer; + + // Minimum size to read on filling the buffer. + const size_t kMinSizeToRead = 8192; + +public: + explicit BufferedStream(SkStream* stream); + ~BufferedStream(); + + // Reads 'length' amount of bytes from 'offset' to 'data'. The 'data' buffer + // provided by the caller, guaranteed to be at least "length" bytes long. + // On 'kOk' the 'data' pointer contains 'length' valid bytes beginning at + // 'offset' bytes from the start of the stream. + // Returns 'kFail' if 'offset' + 'length' exceeds the stream and does not + // change the contents of 'data'. + piex::Error GetData( + const size_t offset, const size_t length, std::uint8_t* data) override; +}; + +class FileStream : public piex::StreamInterface { +private: + FILE *mFile; + size_t mPosition; + +public: + explicit FileStream(const int fd); + explicit FileStream(const String8 filename); + ~FileStream(); + + // Reads 'length' amount of bytes from 'offset' to 'data'. The 'data' buffer + // provided by the caller, guaranteed to be at least "length" bytes long. + // On 'kOk' the 'data' pointer contains 'length' valid bytes beginning at + // 'offset' bytes from the start of the stream. + // Returns 'kFail' if 'offset' + 'length' exceeds the stream and does not + // change the contents of 'data'. + piex::Error GetData( + const size_t offset, const size_t length, std::uint8_t* data) override; + bool exists() const; +}; + +// Reads EXIF metadata from a given raw image via piex. +// And returns true if the operation is successful; otherwise, false. +bool GetExifFromRawImage( + piex::StreamInterface* stream, const String8& filename, piex::PreviewImageData& image_data); + +// Returns true if the conversion is successful; otherwise, false. +bool ConvertKeyValueArraysToKeyedVector( + JNIEnv *env, jobjectArray keys, jobjectArray values, + KeyedVector<String8, String8>* vector); + +struct AMessage; +status_t ConvertMessageToMap( + JNIEnv *env, const sp<AMessage> &msg, jobject *map); + +status_t ConvertKeyValueArraysToMessage( + JNIEnv *env, jobjectArray keys, jobjectArray values, + sp<AMessage> *msg); + +}; // namespace android + +#endif // _ANDROID_MEDIA_STREAMS_H_ diff --git a/media/jni/android_media_Utils.cpp b/media/jni/android_media_Utils.cpp index 458d8471dafd..8bdf53440edc 100644 --- a/media/jni/android_media_Utils.cpp +++ b/media/jni/android_media_Utils.cpp @@ -21,543 +21,10 @@ #include <utils/Log.h> #include "android_media_Utils.h" -#include <media/stagefright/foundation/ADebug.h> -#include <media/stagefright/foundation/ABuffer.h> -#include <media/stagefright/foundation/AMessage.h> - -#include <nativehelper/ScopedLocalRef.h> - #define ALIGN(x, mask) ( ((x) + (mask) - 1) & ~((mask) - 1) ) namespace android { -AssetStream::AssetStream(SkStream* stream) - : mStream(stream), mPosition(0) { -} - -AssetStream::~AssetStream() { -} - -piex::Error AssetStream::GetData( - const size_t offset, const size_t length, std::uint8_t* data) { - // Seek first. - if (mPosition != offset) { - if (!mStream->seek(offset)) { - return piex::Error::kFail; - } - } - - // Read bytes. - size_t size = mStream->read((void*)data, length); - mPosition = offset + size; - - return size == length ? piex::Error::kOk : piex::Error::kFail; -} - -BufferedStream::BufferedStream(SkStream* stream) - : mStream(stream) { -} - -BufferedStream::~BufferedStream() { -} - -piex::Error BufferedStream::GetData( - const size_t offset, const size_t length, std::uint8_t* data) { - // Seek first. - if (offset + length > mStreamBuffer.bytesWritten()) { - size_t sizeToRead = offset + length - mStreamBuffer.bytesWritten(); - if (sizeToRead <= kMinSizeToRead) { - sizeToRead = kMinSizeToRead; - } - - void* tempBuffer = malloc(sizeToRead); - if (tempBuffer == NULL) { - return piex::Error::kFail; - } - - size_t bytesRead = mStream->read(tempBuffer, sizeToRead); - if (bytesRead != sizeToRead) { - free(tempBuffer); - return piex::Error::kFail; - } - mStreamBuffer.write(tempBuffer, bytesRead); - free(tempBuffer); - } - - // Read bytes. - if (mStreamBuffer.read((void*)data, offset, length)) { - return piex::Error::kOk; - } else { - return piex::Error::kFail; - } -} - -FileStream::FileStream(const int fd) - : mPosition(0) { - mFile = fdopen(fd, "r"); - if (mFile == NULL) { - return; - } -} - -FileStream::FileStream(const String8 filename) - : mPosition(0) { - mFile = fopen(filename.string(), "r"); - if (mFile == NULL) { - return; - } -} - -FileStream::~FileStream() { - if (mFile != NULL) { - fclose(mFile); - mFile = NULL; - } -} - -piex::Error FileStream::GetData( - const size_t offset, const size_t length, std::uint8_t* data) { - if (mFile == NULL) { - return piex::Error::kFail; - } - - // Seek first. - if (mPosition != offset) { - fseek(mFile, offset, SEEK_SET); - } - - // Read bytes. - size_t size = fread((void*)data, sizeof(std::uint8_t), length, mFile); - mPosition += size; - - // Handle errors and verify the size. - if (ferror(mFile) || size != length) { - ALOGV("GetData read failed: (offset: %zu, length: %zu)", offset, length); - return piex::Error::kFail; - } - return piex::Error::kOk; -} - -bool FileStream::exists() const { - return mFile != NULL; -} - -bool GetExifFromRawImage( - piex::StreamInterface* stream, const String8& filename, - piex::PreviewImageData& image_data) { - // Reset the PreviewImageData to its default. - image_data = piex::PreviewImageData(); - - if (!piex::IsRaw(stream)) { - // Format not supported. - ALOGV("Format not supported: %s", filename.string()); - return false; - } - - piex::Error err = piex::GetPreviewImageData(stream, &image_data); - - if (err != piex::Error::kOk) { - // The input data seems to be broken. - ALOGV("Raw image not detected: %s (piex error code: %d)", filename.string(), (int32_t)err); - return false; - } - - return true; -} - -bool ConvertKeyValueArraysToKeyedVector( - JNIEnv *env, jobjectArray keys, jobjectArray values, - KeyedVector<String8, String8>* keyedVector) { - - int nKeyValuePairs = 0; - bool failed = false; - if (keys != NULL && values != NULL) { - nKeyValuePairs = env->GetArrayLength(keys); - failed = (nKeyValuePairs != env->GetArrayLength(values)); - } - - if (!failed) { - failed = ((keys != NULL && values == NULL) || - (keys == NULL && values != NULL)); - } - - if (failed) { - ALOGE("keys and values arrays have different length"); - jniThrowException(env, "java/lang/IllegalArgumentException", NULL); - return false; - } - - for (int i = 0; i < nKeyValuePairs; ++i) { - // No need to check on the ArrayIndexOutOfBoundsException, since - // it won't happen here. - jstring key = (jstring) env->GetObjectArrayElement(keys, i); - jstring value = (jstring) env->GetObjectArrayElement(values, i); - - const char* keyStr = env->GetStringUTFChars(key, NULL); - if (!keyStr) { // OutOfMemoryError - return false; - } - - const char* valueStr = env->GetStringUTFChars(value, NULL); - if (!valueStr) { // OutOfMemoryError - env->ReleaseStringUTFChars(key, keyStr); - return false; - } - - keyedVector->add(String8(keyStr), String8(valueStr)); - - env->ReleaseStringUTFChars(key, keyStr); - env->ReleaseStringUTFChars(value, valueStr); - env->DeleteLocalRef(key); - env->DeleteLocalRef(value); - } - return true; -} - -static jobject makeIntegerObject(JNIEnv *env, int32_t value) { - ScopedLocalRef<jclass> clazz(env, env->FindClass("java/lang/Integer")); - CHECK(clazz.get() != NULL); - - jmethodID integerConstructID = - env->GetMethodID(clazz.get(), "<init>", "(I)V"); - CHECK(integerConstructID != NULL); - - return env->NewObject(clazz.get(), integerConstructID, value); -} - -static jobject makeLongObject(JNIEnv *env, int64_t value) { - ScopedLocalRef<jclass> clazz(env, env->FindClass("java/lang/Long")); - CHECK(clazz.get() != NULL); - - jmethodID longConstructID = env->GetMethodID(clazz.get(), "<init>", "(J)V"); - CHECK(longConstructID != NULL); - - return env->NewObject(clazz.get(), longConstructID, value); -} - -static jobject makeFloatObject(JNIEnv *env, float value) { - ScopedLocalRef<jclass> clazz(env, env->FindClass("java/lang/Float")); - CHECK(clazz.get() != NULL); - - jmethodID floatConstructID = - env->GetMethodID(clazz.get(), "<init>", "(F)V"); - CHECK(floatConstructID != NULL); - - return env->NewObject(clazz.get(), floatConstructID, value); -} - -static jobject makeByteBufferObject( - JNIEnv *env, const void *data, size_t size) { - jbyteArray byteArrayObj = env->NewByteArray(size); - env->SetByteArrayRegion(byteArrayObj, 0, size, (const jbyte *)data); - - ScopedLocalRef<jclass> clazz(env, env->FindClass("java/nio/ByteBuffer")); - CHECK(clazz.get() != NULL); - - jmethodID byteBufWrapID = - env->GetStaticMethodID( - clazz.get(), "wrap", "([B)Ljava/nio/ByteBuffer;"); - CHECK(byteBufWrapID != NULL); - - jobject byteBufObj = env->CallStaticObjectMethod( - clazz.get(), byteBufWrapID, byteArrayObj); - - env->DeleteLocalRef(byteArrayObj); byteArrayObj = NULL; - - return byteBufObj; -} - -static void SetMapInt32( - JNIEnv *env, jobject hashMapObj, jmethodID hashMapPutID, - const char *key, int32_t value) { - jstring keyObj = env->NewStringUTF(key); - jobject valueObj = makeIntegerObject(env, value); - - env->CallObjectMethod(hashMapObj, hashMapPutID, keyObj, valueObj); - - env->DeleteLocalRef(valueObj); valueObj = NULL; - env->DeleteLocalRef(keyObj); keyObj = NULL; -} - -status_t ConvertMessageToMap( - JNIEnv *env, const sp<AMessage> &msg, jobject *map) { - ScopedLocalRef<jclass> hashMapClazz( - env, env->FindClass("java/util/HashMap")); - - if (hashMapClazz.get() == NULL) { - return -EINVAL; - } - - jmethodID hashMapConstructID = - env->GetMethodID(hashMapClazz.get(), "<init>", "()V"); - - if (hashMapConstructID == NULL) { - return -EINVAL; - } - - jmethodID hashMapPutID = - env->GetMethodID( - hashMapClazz.get(), - "put", - "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); - - if (hashMapPutID == NULL) { - return -EINVAL; - } - - jobject hashMap = env->NewObject(hashMapClazz.get(), hashMapConstructID); - - for (size_t i = 0; i < msg->countEntries(); ++i) { - AMessage::Type valueType; - const char *key = msg->getEntryNameAt(i, &valueType); - - if (!strncmp(key, "android._", 9)) { - // don't expose private keys (starting with android._) - continue; - } - - jobject valueObj = NULL; - - switch (valueType) { - case AMessage::kTypeInt32: - { - int32_t val; - CHECK(msg->findInt32(key, &val)); - - valueObj = makeIntegerObject(env, val); - break; - } - - case AMessage::kTypeInt64: - { - int64_t val; - CHECK(msg->findInt64(key, &val)); - - valueObj = makeLongObject(env, val); - break; - } - - case AMessage::kTypeFloat: - { - float val; - CHECK(msg->findFloat(key, &val)); - - valueObj = makeFloatObject(env, val); - break; - } - - case AMessage::kTypeString: - { - AString val; - CHECK(msg->findString(key, &val)); - - valueObj = env->NewStringUTF(val.c_str()); - break; - } - - case AMessage::kTypeBuffer: - { - sp<ABuffer> buffer; - CHECK(msg->findBuffer(key, &buffer)); - - valueObj = makeByteBufferObject( - env, buffer->data(), buffer->size()); - break; - } - - case AMessage::kTypeRect: - { - int32_t left, top, right, bottom; - CHECK(msg->findRect(key, &left, &top, &right, &bottom)); - - SetMapInt32( - env, - hashMap, - hashMapPutID, - AStringPrintf("%s-left", key).c_str(), - left); - - SetMapInt32( - env, - hashMap, - hashMapPutID, - AStringPrintf("%s-top", key).c_str(), - top); - - SetMapInt32( - env, - hashMap, - hashMapPutID, - AStringPrintf("%s-right", key).c_str(), - right); - - SetMapInt32( - env, - hashMap, - hashMapPutID, - AStringPrintf("%s-bottom", key).c_str(), - bottom); - break; - } - - default: - break; - } - - if (valueObj != NULL) { - jstring keyObj = env->NewStringUTF(key); - - env->CallObjectMethod(hashMap, hashMapPutID, keyObj, valueObj); - - env->DeleteLocalRef(keyObj); keyObj = NULL; - env->DeleteLocalRef(valueObj); valueObj = NULL; - } - } - - *map = hashMap; - - return OK; -} - -status_t ConvertKeyValueArraysToMessage( - JNIEnv *env, jobjectArray keys, jobjectArray values, - sp<AMessage> *out) { - ScopedLocalRef<jclass> stringClass(env, env->FindClass("java/lang/String")); - CHECK(stringClass.get() != NULL); - ScopedLocalRef<jclass> integerClass(env, env->FindClass("java/lang/Integer")); - CHECK(integerClass.get() != NULL); - ScopedLocalRef<jclass> longClass(env, env->FindClass("java/lang/Long")); - CHECK(longClass.get() != NULL); - ScopedLocalRef<jclass> floatClass(env, env->FindClass("java/lang/Float")); - CHECK(floatClass.get() != NULL); - ScopedLocalRef<jclass> byteBufClass(env, env->FindClass("java/nio/ByteBuffer")); - CHECK(byteBufClass.get() != NULL); - - sp<AMessage> msg = new AMessage; - - jsize numEntries = 0; - - if (keys != NULL) { - if (values == NULL) { - return -EINVAL; - } - - numEntries = env->GetArrayLength(keys); - - if (numEntries != env->GetArrayLength(values)) { - return -EINVAL; - } - } else if (values != NULL) { - return -EINVAL; - } - - for (jsize i = 0; i < numEntries; ++i) { - jobject keyObj = env->GetObjectArrayElement(keys, i); - - if (!env->IsInstanceOf(keyObj, stringClass.get())) { - return -EINVAL; - } - - const char *tmp = env->GetStringUTFChars((jstring)keyObj, NULL); - - if (tmp == NULL) { - return -ENOMEM; - } - - AString key = tmp; - - env->ReleaseStringUTFChars((jstring)keyObj, tmp); - tmp = NULL; - - if (key.startsWith("android._")) { - // don't propagate private keys (starting with android._) - continue; - } - - jobject valueObj = env->GetObjectArrayElement(values, i); - - if (env->IsInstanceOf(valueObj, stringClass.get())) { - const char *value = env->GetStringUTFChars((jstring)valueObj, NULL); - - if (value == NULL) { - return -ENOMEM; - } - - msg->setString(key.c_str(), value); - - env->ReleaseStringUTFChars((jstring)valueObj, value); - value = NULL; - } else if (env->IsInstanceOf(valueObj, integerClass.get())) { - jmethodID intValueID = - env->GetMethodID(integerClass.get(), "intValue", "()I"); - CHECK(intValueID != NULL); - - jint value = env->CallIntMethod(valueObj, intValueID); - - msg->setInt32(key.c_str(), value); - } else if (env->IsInstanceOf(valueObj, longClass.get())) { - jmethodID longValueID = - env->GetMethodID(longClass.get(), "longValue", "()J"); - CHECK(longValueID != NULL); - - jlong value = env->CallLongMethod(valueObj, longValueID); - - msg->setInt64(key.c_str(), value); - } else if (env->IsInstanceOf(valueObj, floatClass.get())) { - jmethodID floatValueID = - env->GetMethodID(floatClass.get(), "floatValue", "()F"); - CHECK(floatValueID != NULL); - - jfloat value = env->CallFloatMethod(valueObj, floatValueID); - - msg->setFloat(key.c_str(), value); - } else if (env->IsInstanceOf(valueObj, byteBufClass.get())) { - jmethodID positionID = - env->GetMethodID(byteBufClass.get(), "position", "()I"); - CHECK(positionID != NULL); - - jmethodID limitID = - env->GetMethodID(byteBufClass.get(), "limit", "()I"); - CHECK(limitID != NULL); - - jint position = env->CallIntMethod(valueObj, positionID); - jint limit = env->CallIntMethod(valueObj, limitID); - - sp<ABuffer> buffer = new ABuffer(limit - position); - - void *data = env->GetDirectBufferAddress(valueObj); - - if (data != NULL) { - memcpy(buffer->data(), - (const uint8_t *)data + position, - buffer->size()); - } else { - jmethodID arrayID = - env->GetMethodID(byteBufClass.get(), "array", "()[B"); - CHECK(arrayID != NULL); - - jbyteArray byteArray = - (jbyteArray)env->CallObjectMethod(valueObj, arrayID); - CHECK(byteArray != NULL); - - env->GetByteArrayRegion( - byteArray, - position, - buffer->size(), - (jbyte *)buffer->data()); - - env->DeleteLocalRef(byteArray); byteArray = NULL; - } - - msg->setBuffer(key.c_str(), buffer); - } - } - - *out = msg; - - return OK; -} - // -----------Utility functions used by ImageReader/Writer JNI----------------- enum { diff --git a/media/jni/android_media_Utils.h b/media/jni/android_media_Utils.h index 821c6b25c333..24f16101d4d9 100644 --- a/media/jni/android_media_Utils.h +++ b/media/jni/android_media_Utils.h @@ -17,100 +17,10 @@ #ifndef _ANDROID_MEDIA_UTILS_H_ #define _ANDROID_MEDIA_UTILS_H_ -#include "src/piex_types.h" -#include "src/piex.h" - -#include <android_runtime/AndroidRuntime.h> #include <gui/CpuConsumer.h> -#include <jni.h> -#include <nativehelper/JNIHelp.h> -#include <utils/KeyedVector.h> -#include <utils/String8.h> -#include <SkStream.h> namespace android { -class AssetStream : public piex::StreamInterface { -private: - SkStream *mStream; - size_t mPosition; - -public: - explicit AssetStream(SkStream* stream); - ~AssetStream(); - - // Reads 'length' amount of bytes from 'offset' to 'data'. The 'data' buffer - // provided by the caller, guaranteed to be at least "length" bytes long. - // On 'kOk' the 'data' pointer contains 'length' valid bytes beginning at - // 'offset' bytes from the start of the stream. - // Returns 'kFail' if 'offset' + 'length' exceeds the stream and does not - // change the contents of 'data'. - piex::Error GetData( - const size_t offset, const size_t length, std::uint8_t* data) override; -}; - -class BufferedStream : public piex::StreamInterface { -private: - SkStream *mStream; - // Growable memory stream - SkDynamicMemoryWStream mStreamBuffer; - - // Minimum size to read on filling the buffer. - const size_t kMinSizeToRead = 8192; - -public: - explicit BufferedStream(SkStream* stream); - ~BufferedStream(); - - // Reads 'length' amount of bytes from 'offset' to 'data'. The 'data' buffer - // provided by the caller, guaranteed to be at least "length" bytes long. - // On 'kOk' the 'data' pointer contains 'length' valid bytes beginning at - // 'offset' bytes from the start of the stream. - // Returns 'kFail' if 'offset' + 'length' exceeds the stream and does not - // change the contents of 'data'. - piex::Error GetData( - const size_t offset, const size_t length, std::uint8_t* data) override; -}; - -class FileStream : public piex::StreamInterface { -private: - FILE *mFile; - size_t mPosition; - -public: - explicit FileStream(const int fd); - explicit FileStream(const String8 filename); - ~FileStream(); - - // Reads 'length' amount of bytes from 'offset' to 'data'. The 'data' buffer - // provided by the caller, guaranteed to be at least "length" bytes long. - // On 'kOk' the 'data' pointer contains 'length' valid bytes beginning at - // 'offset' bytes from the start of the stream. - // Returns 'kFail' if 'offset' + 'length' exceeds the stream and does not - // change the contents of 'data'. - piex::Error GetData( - const size_t offset, const size_t length, std::uint8_t* data) override; - bool exists() const; -}; - -// Reads EXIF metadata from a given raw image via piex. -// And returns true if the operation is successful; otherwise, false. -bool GetExifFromRawImage( - piex::StreamInterface* stream, const String8& filename, piex::PreviewImageData& image_data); - -// Returns true if the conversion is successful; otherwise, false. -bool ConvertKeyValueArraysToKeyedVector( - JNIEnv *env, jobjectArray keys, jobjectArray values, - KeyedVector<String8, String8>* vector); - -struct AMessage; -status_t ConvertMessageToMap( - JNIEnv *env, const sp<AMessage> &msg, jobject *map); - -status_t ConvertKeyValueArraysToMessage( - JNIEnv *env, jobjectArray keys, jobjectArray values, - sp<AMessage> *msg); - // -----------Utility functions used by ImageReader/Writer JNI----------------- typedef CpuConsumer::LockedBuffer LockedImage; diff --git a/media/jni/android_mtp_MtpDatabase.cpp b/media/jni/android_mtp_MtpDatabase.cpp index 213c3d9b120c..a6c5fc86249d 100644 --- a/media/jni/android_mtp_MtpDatabase.cpp +++ b/media/jni/android_mtp_MtpDatabase.cpp @@ -18,7 +18,7 @@ #include "utils/Log.h" #include "utils/String8.h" -#include "android_media_Utils.h" +#include "android_media_Streams.h" #include "mtp.h" #include "IMtpDatabase.h" #include "MtpDataPacket.h" diff --git a/packages/CaptivePortalLogin/Android.bp b/packages/CaptivePortalLogin/Android.bp index 9c31b4d4374f..f545a61aff4f 100644 --- a/packages/CaptivePortalLogin/Android.bp +++ b/packages/CaptivePortalLogin/Android.bp @@ -18,6 +18,7 @@ android_app { name: "CaptivePortalLogin", srcs: ["src/**/*.java"], sdk_version: "system_current", + min_sdk_version: "28", certificate: "networkstack", static_libs: [ "android-support-v4", diff --git a/packages/CaptivePortalLogin/AndroidManifest.xml b/packages/CaptivePortalLogin/AndroidManifest.xml index 0894ee576a2d..44e0a659212a 100644 --- a/packages/CaptivePortalLogin/AndroidManifest.xml +++ b/packages/CaptivePortalLogin/AndroidManifest.xml @@ -17,8 +17,11 @@ */ --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="com.android.captiveportallogin" > + package="com.android.captiveportallogin" + android:versionCode="11" + android:versionName="Q-initial"> + <uses-sdk android:minSdkVersion="28" android:targetSdkVersion="28" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> diff --git a/packages/ExtServices/tests/Android.mk b/packages/ExtServices/tests/Android.mk index 0a95b858a93e..36e573a3a93b 100644 --- a/packages/ExtServices/tests/Android.mk +++ b/packages/ExtServices/tests/Android.mk @@ -8,9 +8,9 @@ LOCAL_CERTIFICATE := platform LOCAL_JAVA_LIBRARIES := android.test.runner android.test.base LOCAL_STATIC_JAVA_LIBRARIES := \ - android-support-test \ + androidx.test.rules \ mockito-target-minus-junit4 \ - espresso-core \ + androidx.test.espresso.core \ truth-prebuilt \ testables diff --git a/packages/ExtServices/tests/AndroidManifest.xml b/packages/ExtServices/tests/AndroidManifest.xml index ddf725b8cdfe..42293b5a0b3e 100644 --- a/packages/ExtServices/tests/AndroidManifest.xml +++ b/packages/ExtServices/tests/AndroidManifest.xml @@ -23,7 +23,7 @@ <uses-library android:name="android.test.runner" /> </application> - <instrumentation android:name="android.support.test.runner.AndroidJUnitRunner" + <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner" android:targetPackage="android.ext.services" android:label="ExtServices Test Cases"> </instrumentation> diff --git a/packages/ExtServices/tests/AndroidTest.xml b/packages/ExtServices/tests/AndroidTest.xml index c3d32de4bfaf..cd26ebc407c1 100644 --- a/packages/ExtServices/tests/AndroidTest.xml +++ b/packages/ExtServices/tests/AndroidTest.xml @@ -23,7 +23,7 @@ <option name="test-tag" value="ExtServicesUnitTests" /> <test class="com.android.tradefed.testtype.AndroidJUnitTest" > <option name="package" value="android.ext.services.tests.unit" /> - <option name="runner" value="android.support.test.runner.AndroidJUnitRunner" /> + <option name="runner" value="androidx.test.runner.AndroidJUnitRunner" /> <option name="hidden-api-checks" value="false"/> </test> </configuration>
\ No newline at end of file diff --git a/packages/ExtServices/tests/src/android/ext/services/notification/AssistantTest.java b/packages/ExtServices/tests/src/android/ext/services/notification/AssistantTest.java index a6b6a6b61581..6ef25e553204 100644 --- a/packages/ExtServices/tests/src/android/ext/services/notification/AssistantTest.java +++ b/packages/ExtServices/tests/src/android/ext/services/notification/AssistantTest.java @@ -21,6 +21,7 @@ import static android.app.NotificationManager.IMPORTANCE_LOW; import static android.app.NotificationManager.IMPORTANCE_MIN; import static junit.framework.Assert.assertEquals; + import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; @@ -33,7 +34,6 @@ import android.app.INotificationManager; import android.app.Notification; import android.app.NotificationChannel; import android.content.ContentResolver; -import android.content.IContentProvider; import android.content.Intent; import android.os.UserHandle; import android.provider.Settings; @@ -43,11 +43,11 @@ import android.service.notification.NotificationListenerService.Ranking; import android.service.notification.NotificationListenerService.RankingMap; import android.service.notification.NotificationStats; import android.service.notification.StatusBarNotification; -import android.support.test.InstrumentationRegistry; import android.test.ServiceTestCase; import android.testing.TestableContext; import android.util.AtomicFile; -import android.util.Xml; + +import androidx.test.InstrumentationRegistry; import com.android.internal.util.FastXmlSerializer; @@ -57,7 +57,6 @@ import org.junit.Test; import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; -import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlSerializer; import java.io.BufferedInputStream; diff --git a/packages/NetworkStack/Android.bp b/packages/NetworkStack/Android.bp index 5f1f26d88171..f210840b976f 100644 --- a/packages/NetworkStack/Android.bp +++ b/packages/NetworkStack/Android.bp @@ -36,6 +36,7 @@ java_library { android_app { name: "NetworkStack", sdk_version: "system_current", + min_sdk_version: "28", certificate: "networkstack", privileged: true, static_libs: [ diff --git a/packages/NetworkStack/AndroidManifest.xml b/packages/NetworkStack/AndroidManifest.xml index 52c209e5f247..003f1e59d743 100644 --- a/packages/NetworkStack/AndroidManifest.xml +++ b/packages/NetworkStack/AndroidManifest.xml @@ -18,7 +18,10 @@ --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.networkstack" - android:sharedUserId="android.uid.networkstack"> + android:sharedUserId="android.uid.networkstack" + android:versionCode="11" + android:versionName="Q-initial"> + <uses-sdk android:minSdkVersion="28" android:targetSdkVersion="28" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> diff --git a/packages/NetworkStack/src/com/android/server/connectivity/NetworkMonitor.java b/packages/NetworkStack/src/com/android/server/connectivity/NetworkMonitor.java index e82a5d7b4881..c3447fdb3d78 100644 --- a/packages/NetworkStack/src/com/android/server/connectivity/NetworkMonitor.java +++ b/packages/NetworkStack/src/com/android/server/connectivity/NetworkMonitor.java @@ -32,6 +32,7 @@ import static android.net.metrics.ValidationProbeEvent.DNS_SUCCESS; import static android.net.metrics.ValidationProbeEvent.PROBE_FALLBACK; import static android.net.metrics.ValidationProbeEvent.PROBE_PRIVDNS; import static android.net.util.NetworkStackUtils.isEmpty; +import static android.provider.Settings.Global.DATA_STALL_EVALUATION_TYPE_DNS; import android.annotation.NonNull; import android.annotation.Nullable; @@ -128,9 +129,8 @@ public class NetworkMonitor extends StateMachine { private static final int DEFAULT_DATA_STALL_MIN_EVALUATE_TIME_MS = 60 * 1000; private static final int DEFAULT_DATA_STALL_VALID_DNS_TIME_THRESHOLD_MS = 30 * 60 * 1000; - private static final int DATA_STALL_EVALUATION_TYPE_DNS = 1; private static final int DEFAULT_DATA_STALL_EVALUATION_TYPES = - (1 << DATA_STALL_EVALUATION_TYPE_DNS); + DATA_STALL_EVALUATION_TYPE_DNS; // Reevaluate it as intending to increase the number. Larger log size may cause statsd // log buffer bust and have stats log lost. private static final int DEFAULT_DNS_LOG_SIZE = 20; @@ -1772,7 +1772,7 @@ public class NetworkMonitor extends StateMachine { } private boolean dataStallEvaluateTypeEnabled(int type) { - return (mDataStallEvaluationType & (1 << type)) != 0; + return (mDataStallEvaluationType & type) != 0; } @VisibleForTesting @@ -1792,7 +1792,7 @@ public class NetworkMonitor extends StateMachine { } // Check dns signal. Suspect it may be a data stall if both : - // 1. The number of consecutive DNS query timeouts > mConsecutiveDnsTimeoutThreshold. + // 1. The number of consecutive DNS query timeouts >= mConsecutiveDnsTimeoutThreshold. // 2. Those consecutive DNS queries happened in the last mValidDataStallDnsTimeThreshold ms. if (dataStallEvaluateTypeEnabled(DATA_STALL_EVALUATION_TYPE_DNS)) { if (mDnsStallDetector.isDataStallSuspected(mConsecutiveDnsTimeoutThreshold, diff --git a/packages/NetworkStack/tests/Android.bp b/packages/NetworkStack/tests/Android.bp index 5c7b514834cb..f22b6472847c 100644 --- a/packages/NetworkStack/tests/Android.bp +++ b/packages/NetworkStack/tests/Android.bp @@ -21,7 +21,7 @@ android_test { test_suites: ["device-tests"], resource_dirs: ["res"], static_libs: [ - "android-support-test", + "androidx.test.rules", "frameworks-base-testutils", "mockito-target-extended-minus-junit4", "NetworkStackLib", diff --git a/packages/NetworkStack/tests/AndroidManifest.xml b/packages/NetworkStack/tests/AndroidManifest.xml index 9cb2c21cc399..5dcf6ff1b514 100644 --- a/packages/NetworkStack/tests/AndroidManifest.xml +++ b/packages/NetworkStack/tests/AndroidManifest.xml @@ -47,7 +47,7 @@ <application android:debuggable="true"> <uses-library android:name="android.test.runner" /> </application> - <instrumentation android:name="android.support.test.runner.AndroidJUnitRunner" + <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner" android:targetPackage="com.android.server.networkstack.tests" android:label="Networking service tests"> </instrumentation> diff --git a/packages/NetworkStack/tests/AndroidTest.xml b/packages/NetworkStack/tests/AndroidTest.xml index 6b08b57731b7..047bc2e67808 100644 --- a/packages/NetworkStack/tests/AndroidTest.xml +++ b/packages/NetworkStack/tests/AndroidTest.xml @@ -23,7 +23,7 @@ <option name="test-tag" value="NetworkStackTests" /> <test class="com.android.tradefed.testtype.AndroidJUnitTest" > <option name="package" value="com.android.server.networkstack.tests" /> - <option name="runner" value="android.support.test.runner.AndroidJUnitRunner" /> + <option name="runner" value="androidx.test.runner.AndroidJUnitRunner" /> <option name="hidden-api-checks" value="false"/> </test> </configuration>
\ No newline at end of file diff --git a/packages/NetworkStack/tests/src/android/net/apf/ApfTest.java b/packages/NetworkStack/tests/src/android/net/apf/ApfTest.java index 3414397d73c3..88a05d506aa4 100644 --- a/packages/NetworkStack/tests/src/android/net/apf/ApfTest.java +++ b/packages/NetworkStack/tests/src/android/net/apf/ApfTest.java @@ -53,14 +53,15 @@ import android.net.util.SharedLog; import android.os.ConditionVariable; import android.os.Parcelable; import android.os.SystemClock; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.system.ErrnoException; import android.system.Os; import android.text.format.DateUtils; import android.util.Log; +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.internal.util.HexDump; import com.android.server.networkstack.tests.R; import com.android.server.util.NetworkStackConstants; diff --git a/packages/NetworkStack/tests/src/android/net/dhcp/DhcpLeaseRepositoryTest.java b/packages/NetworkStack/tests/src/android/net/dhcp/DhcpLeaseRepositoryTest.java index 4abd77e9cfde..27d725540d34 100644 --- a/packages/NetworkStack/tests/src/android/net/dhcp/DhcpLeaseRepositoryTest.java +++ b/packages/NetworkStack/tests/src/android/net/dhcp/DhcpLeaseRepositoryTest.java @@ -31,16 +31,15 @@ import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import static org.mockito.Mockito.when; -import static java.lang.String.format; - import android.annotation.NonNull; import android.annotation.Nullable; import android.net.IpPrefix; import android.net.MacAddress; import android.net.dhcp.DhcpServer.Clock; import android.net.util.SharedLog; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.Before; import org.junit.Test; @@ -48,6 +47,8 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; +import static java.lang.String.format; + import java.net.Inet4Address; import java.util.Arrays; import java.util.Collections; diff --git a/packages/NetworkStack/tests/src/android/net/dhcp/DhcpPacketTest.java b/packages/NetworkStack/tests/src/android/net/dhcp/DhcpPacketTest.java index 7544e72da02e..4d98403bfd4e 100644 --- a/packages/NetworkStack/tests/src/android/net/dhcp/DhcpPacketTest.java +++ b/packages/NetworkStack/tests/src/android/net/dhcp/DhcpPacketTest.java @@ -48,8 +48,9 @@ import android.net.DhcpResults; import android.net.LinkAddress; import android.net.NetworkUtils; import android.net.metrics.DhcpErrorEvent; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.internal.util.HexDump; @@ -324,7 +325,7 @@ public class DhcpPacketTest { @Test public void testOffer1() throws Exception { // TODO: Turn all of these into golden files. This will probably require using - // android.support.test.InstrumentationRegistry for obtaining a Context object + // androidx.test.InstrumentationRegistry for obtaining a Context object // to read such golden files, along with an appropriate Android.mk. final ByteBuffer packet = ByteBuffer.wrap(HexDump.hexStringToByteArray( // IP header. diff --git a/packages/NetworkStack/tests/src/android/net/dhcp/DhcpServerTest.java b/packages/NetworkStack/tests/src/android/net/dhcp/DhcpServerTest.java index d4c1e2e16731..7d5e9e3ba174 100644 --- a/packages/NetworkStack/tests/src/android/net/dhcp/DhcpServerTest.java +++ b/packages/NetworkStack/tests/src/android/net/dhcp/DhcpServerTest.java @@ -51,11 +51,12 @@ import android.net.dhcp.DhcpServer.Clock; import android.net.dhcp.DhcpServer.Dependencies; import android.net.util.SharedLog; import android.os.HandlerThread; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.testing.TestableLooper.RunWithLooper; +import androidx.test.filters.SmallTest; + import org.junit.After; import org.junit.Before; import org.junit.Test; diff --git a/packages/NetworkStack/tests/src/android/net/dhcp/DhcpServingParamsTest.java b/packages/NetworkStack/tests/src/android/net/dhcp/DhcpServingParamsTest.java index 1004382b3adf..57a87a4d3fb1 100644 --- a/packages/NetworkStack/tests/src/android/net/dhcp/DhcpServingParamsTest.java +++ b/packages/NetworkStack/tests/src/android/net/dhcp/DhcpServingParamsTest.java @@ -29,8 +29,9 @@ import android.annotation.Nullable; import android.net.LinkAddress; import android.net.dhcp.DhcpServingParams.InvalidParameterException; import android.net.shared.Inet4AddressUtils; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.Before; import org.junit.Test; diff --git a/packages/NetworkStack/tests/src/android/net/ip/IpClientTest.java b/packages/NetworkStack/tests/src/android/net/ip/IpClientTest.java index aaaff0279fed..19902293b61a 100644 --- a/packages/NetworkStack/tests/src/android/net/ip/IpClientTest.java +++ b/packages/NetworkStack/tests/src/android/net/ip/IpClientTest.java @@ -47,10 +47,11 @@ import android.net.shared.InitialConfiguration; import android.net.shared.ProvisioningConfiguration; import android.net.util.InterfaceParams; import android.provider.Settings; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.test.mock.MockContentResolver; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.internal.R; import com.android.internal.util.test.FakeSettingsProvider; import com.android.server.NetworkObserver; diff --git a/packages/NetworkStack/tests/src/android/net/ip/IpReachabilityMonitorTest.java b/packages/NetworkStack/tests/src/android/net/ip/IpReachabilityMonitorTest.java index e3b5ddf6f4cf..64b168ae2b5a 100644 --- a/packages/NetworkStack/tests/src/android/net/ip/IpReachabilityMonitorTest.java +++ b/packages/NetworkStack/tests/src/android/net/ip/IpReachabilityMonitorTest.java @@ -24,8 +24,9 @@ import android.net.util.InterfaceParams; import android.net.util.SharedLog; import android.os.Handler; import android.os.Looper; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.Before; import org.junit.Test; @@ -33,7 +34,6 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; - /** * Tests for IpReachabilityMonitor. */ diff --git a/packages/NetworkStack/tests/src/android/net/util/ConnectivityPacketSummaryTest.java b/packages/NetworkStack/tests/src/android/net/util/ConnectivityPacketSummaryTest.java index dfaf52a953c7..71be8b38d3fe 100644 --- a/packages/NetworkStack/tests/src/android/net/util/ConnectivityPacketSummaryTest.java +++ b/packages/NetworkStack/tests/src/android/net/util/ConnectivityPacketSummaryTest.java @@ -20,8 +20,9 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import android.net.MacAddress; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import libcore.util.HexEncoding; diff --git a/packages/NetworkStack/tests/src/android/net/util/PacketReaderTest.java b/packages/NetworkStack/tests/src/android/net/util/PacketReaderTest.java index 6e11c409e104..289dcade99a6 100644 --- a/packages/NetworkStack/tests/src/android/net/util/PacketReaderTest.java +++ b/packages/NetworkStack/tests/src/android/net/util/PacketReaderTest.java @@ -31,12 +31,13 @@ import static org.junit.Assert.fail; import android.os.Handler; import android.os.HandlerThread; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.system.ErrnoException; import android.system.Os; import android.system.StructTimeval; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import org.junit.After; import org.junit.Before; import org.junit.Test; diff --git a/packages/NetworkStack/tests/src/com/android/server/connectivity/NetworkMonitorTest.java b/packages/NetworkStack/tests/src/com/android/server/connectivity/NetworkMonitorTest.java index ddb7030d314a..ee2baf20bb8e 100644 --- a/packages/NetworkStack/tests/src/com/android/server/connectivity/NetworkMonitorTest.java +++ b/packages/NetworkStack/tests/src/com/android/server/connectivity/NetworkMonitorTest.java @@ -20,6 +20,7 @@ import static android.net.CaptivePortal.APP_RETURN_DISMISSED; import static android.net.INetworkMonitor.NETWORK_TEST_RESULT_INVALID; import static android.net.INetworkMonitor.NETWORK_TEST_RESULT_VALID; import static android.net.NetworkCapabilities.NET_CAPABILITY_INTERNET; +import static android.provider.Settings.Global.DATA_STALL_EVALUATION_TYPE_DNS; import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertFalse; @@ -60,12 +61,13 @@ import android.os.ConditionVariable; import android.os.Handler; import android.os.SystemClock; import android.provider.Settings; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.telephony.CellSignalStrength; import android.telephony.TelephonyManager; import android.util.ArrayMap; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -82,7 +84,6 @@ import java.util.Random; import javax.net.ssl.SSLHandshakeException; - @RunWith(AndroidJUnit4.class) @SmallTest public class NetworkMonitorTest { @@ -114,7 +115,6 @@ public class NetworkMonitorTest { private static final String TEST_OTHER_FALLBACK_URL = "http://otherfallback.google.com/gen_204"; private static final String TEST_MCCMNC = "123456"; - private static final int DATA_STALL_EVALUATION_TYPE_DNS = 1; private static final int RETURN_CODE_DNS_SUCCESS = 0; private static final int RETURN_CODE_DNS_TIMEOUT = 255; private static final int DEFAULT_DNS_TIMEOUT_THRESHOLD = 5; @@ -186,7 +186,7 @@ public class NetworkMonitorTest { when(mCm.getNetworkCapabilities(any())).thenReturn(METERED_CAPABILITIES); setMinDataStallEvaluateInterval(500); - setDataStallEvaluationType(1 << DATA_STALL_EVALUATION_TYPE_DNS); + setDataStallEvaluationType(DATA_STALL_EVALUATION_TYPE_DNS); setValidDataStallDnsTimeThreshold(500); setConsecutiveDnsTimeoutThreshold(5); } diff --git a/packages/NetworkStack/tests/src/com/android/server/util/SharedLogTest.java b/packages/NetworkStack/tests/src/com/android/server/util/SharedLogTest.java index 07ad3123bc53..b1db051d2bd8 100644 --- a/packages/NetworkStack/tests/src/com/android/server/util/SharedLogTest.java +++ b/packages/NetworkStack/tests/src/com/android/server/util/SharedLogTest.java @@ -20,8 +20,9 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import android.net.util.SharedLog; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/packages/NetworkStackPermissionStub/Android.bp b/packages/NetworkStackPermissionStub/Android.bp index dd70cf56b51b..8cee92e5fe6d 100644 --- a/packages/NetworkStackPermissionStub/Android.bp +++ b/packages/NetworkStackPermissionStub/Android.bp @@ -21,6 +21,7 @@ android_app { // a classes.dex. srcs: ["src/**/*.java"], platform_apis: true, + min_sdk_version: "28", certificate: "networkstack", privileged: true, manifest: "AndroidManifest.xml", diff --git a/packages/NetworkStackPermissionStub/AndroidManifest.xml b/packages/NetworkStackPermissionStub/AndroidManifest.xml index a8742d7ab34f..e83f0503d280 100644 --- a/packages/NetworkStackPermissionStub/AndroidManifest.xml +++ b/packages/NetworkStackPermissionStub/AndroidManifest.xml @@ -18,7 +18,10 @@ --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.networkstack.permissionstub" - android:sharedUserId="android.uid.networkstack"> + android:sharedUserId="android.uid.networkstack" + android:versionCode="11" + android:versionName="Q-initial"> + <uses-sdk android:minSdkVersion="28" android:targetSdkVersion="28" /> <!-- This package only exists to define the below permissions, and enforce that they are only granted to apps sharing the same signature. @@ -34,4 +37,4 @@ android:protectionLevel="signature"/> <application android:name="com.android.server.NetworkStackPermissionStub"/> -</manifest>
\ No newline at end of file +</manifest> diff --git a/packages/SystemUI/shared/tests/Android.mk b/packages/SystemUI/shared/tests/Android.mk index 02774c946596..34069ef403ac 100644 --- a/packages/SystemUI/shared/tests/Android.mk +++ b/packages/SystemUI/shared/tests/Android.mk @@ -35,7 +35,7 @@ LOCAL_SRC_FILES := $(call all-java-files-under, src) LOCAL_STATIC_JAVA_LIBRARIES := \ SystemUISharedLib \ metrics-helper-lib \ - android-support-test \ + androidx.test.rules \ mockito-target-inline-minus-junit4 \ SystemUI-proto \ SystemUI-tags \ diff --git a/packages/SystemUI/shared/tests/src/com/android/systemui/shared/SysuiSharedLibTestCase.java b/packages/SystemUI/shared/tests/src/com/android/systemui/shared/SysuiSharedLibTestCase.java index 04b341e38c04..4f4d8784e52d 100644 --- a/packages/SystemUI/shared/tests/src/com/android/systemui/shared/SysuiSharedLibTestCase.java +++ b/packages/SystemUI/shared/tests/src/com/android/systemui/shared/SysuiSharedLibTestCase.java @@ -20,7 +20,8 @@ import android.content.Context; import android.os.Handler; import android.os.Looper; import android.os.MessageQueue; -import android.support.test.InstrumentationRegistry; + +import androidx.test.InstrumentationRegistry; import org.junit.After; import org.junit.Before; diff --git a/packages/SystemUI/shared/tests/src/com/android/systemui/shared/recents/model/HighResThumbnailLoaderTest.java b/packages/SystemUI/shared/tests/src/com/android/systemui/shared/recents/model/HighResThumbnailLoaderTest.java index 3b647c12c0b4..e7f33881550f 100644 --- a/packages/SystemUI/shared/tests/src/com/android/systemui/shared/recents/model/HighResThumbnailLoaderTest.java +++ b/packages/SystemUI/shared/tests/src/com/android/systemui/shared/recents/model/HighResThumbnailLoaderTest.java @@ -26,10 +26,10 @@ import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import android.content.ComponentName; import android.os.Looper; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.systemui.shared.SysuiSharedLibTestCase; import com.android.systemui.shared.recents.model.Task.TaskKey; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconControllerImpl.java index 24a589665600..72da591e0618 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconControllerImpl.java @@ -43,6 +43,7 @@ import com.android.systemui.tuner.TunerService.Tunable; import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import static com.android.systemui.statusbar.phone.StatusBarIconController.TAG_PRIMARY; @@ -121,7 +122,7 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu // Remove all the icons. for (int i = currentSlots.size() - 1; i >= 0; i--) { Slot s = currentSlots.get(i); - slotsToReAdd.put(s, s.getHolderListInViewOrder()); + slotsToReAdd.put(s, s.getHolderList()); removeAllIconsForSlot(s.getName()); } @@ -200,6 +201,10 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu Slot mobileSlot = getSlot(slot); int slotIndex = getSlotIndex(slot); + // Reverse the sort order to show icons with left to right([Slot1][Slot2]..). + // StatusBarIconList has UI design that first items go to the right of second items. + Collections.reverse(iconStates); + for (MobileIconState state : iconStates) { StatusBarIconHolder holder = mobileSlot.getHolderForTag(state.subId); if (holder == null) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconList.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconList.java index b7e1cfb0097b..fc4122580c2e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconList.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconList.java @@ -249,6 +249,25 @@ public class StatusBarIconList { return holders; } + /** + * Build a list of the {@link StatusBarIconHolder}s in the same order. + * This provides a safe list that can be iterated and inserted into its group. + * + * @return all holders contained here + */ + public List<StatusBarIconHolder> getHolderList() { + ArrayList<StatusBarIconHolder> holders = new ArrayList<>(); + if (mHolder != null) { + holders.add(mHolder); + } + + if (mSubSlots != null) { + holders.addAll(mSubSlots); + } + + return holders; + } + @Override public String toString() { return String.format("(%s) %s", mName, subSlotsString()); diff --git a/packages/SystemUI/tests/Android.mk b/packages/SystemUI/tests/Android.mk index 9ee55324efa2..aa3d2d3f7c03 100644 --- a/packages/SystemUI/tests/Android.mk +++ b/packages/SystemUI/tests/Android.mk @@ -39,7 +39,8 @@ LOCAL_STATIC_ANDROID_LIBRARIES := \ LOCAL_STATIC_JAVA_LIBRARIES := \ metrics-helper-lib \ - android-support-test \ + androidx.test.rules \ + hamcrest-library \ mockito-target-inline-minus-junit4 \ testables \ truth-prebuilt \ diff --git a/packages/SystemUI/tests/src/com/android/AAAPlusPlusVerifySysuiRequiredTestPropertiesTest.java b/packages/SystemUI/tests/src/com/android/AAAPlusPlusVerifySysuiRequiredTestPropertiesTest.java index fe235410cc26..14722430016d 100644 --- a/packages/SystemUI/tests/src/com/android/AAAPlusPlusVerifySysuiRequiredTestPropertiesTest.java +++ b/packages/SystemUI/tests/src/com/android/AAAPlusPlusVerifySysuiRequiredTestPropertiesTest.java @@ -16,22 +16,22 @@ package com.android; import static org.junit.Assert.assertFalse; -import android.support.test.filters.LargeTest; -import android.support.test.filters.MediumTest; -import android.support.test.filters.SmallTest; -import android.support.test.internal.runner.ClassPathScanner; -import android.support.test.internal.runner.ClassPathScanner.ChainedClassNameFilter; -import android.support.test.internal.runner.ClassPathScanner.ExternalClassNameFilter; import android.testing.AndroidTestingRunner; import android.text.TextUtils; import android.util.Log; +import androidx.test.filters.LargeTest; +import androidx.test.filters.MediumTest; +import androidx.test.filters.SmallTest; +import androidx.test.internal.runner.ClassPathScanner; +import androidx.test.internal.runner.ClassPathScanner.ChainedClassNameFilter; +import androidx.test.internal.runner.ClassPathScanner.ExternalClassNameFilter; + import com.android.systemui.SysuiBaseFragmentTest; import com.android.systemui.SysuiTestCase; import org.junit.Test; import org.junit.runner.RunWith; -import org.junit.internal.builders.AllDefaultPossibilitiesBuilder; import java.io.IOException; import java.lang.reflect.Method; diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockAccessibilityDelegateTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockAccessibilityDelegateTest.java index e37ea95515d0..dcafa7203ce9 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockAccessibilityDelegateTest.java +++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockAccessibilityDelegateTest.java @@ -20,12 +20,13 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; -import android.support.test.filters.SmallTest; import android.text.TextUtils; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityNodeInfo; import android.widget.TextView; +import androidx.test.filters.SmallTest; + import com.android.systemui.SysuiTestCase; import org.junit.Before; diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardPinBasedInputViewTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardPinBasedInputViewTest.java index 359832f7a542..d1a1ad66b909 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardPinBasedInputViewTest.java +++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardPinBasedInputViewTest.java @@ -21,12 +21,13 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyZeroInteractions; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper.RunWithLooper; import android.view.KeyEvent; import android.view.LayoutInflater; +import androidx.test.filters.SmallTest; + import com.android.systemui.SysuiTestCase; import org.junit.Before; diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSecurityContainerTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSecurityContainerTest.java index fcf327b5d1fa..8db195a23a15 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSecurityContainerTest.java +++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSecurityContainerTest.java @@ -16,19 +16,18 @@ package com.android.keyguard; -import org.junit.Test; -import org.junit.runner.RunWith; - import android.content.Context; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.test.UiThreadTest; -import android.util.Log; import android.view.LayoutInflater; -import android.view.View; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.systemui.SysuiTestCase; +import org.junit.Test; +import org.junit.runner.RunWith; + @SmallTest @RunWith(AndroidJUnit4.class) public class KeyguardSecurityContainerTest extends SysuiTestCase { diff --git a/packages/SystemUI/tests/src/com/android/systemui/BatteryMeterDrawableTest.java b/packages/SystemUI/tests/src/com/android/systemui/BatteryMeterDrawableTest.java index e1f56a47e641..d1573c3cac76 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/BatteryMeterDrawableTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/BatteryMeterDrawableTest.java @@ -16,8 +16,6 @@ package com.android.systemui; -import com.android.settingslib.graph.BatteryMeterDrawableBase; - import static org.mockito.Mockito.any; import static org.mockito.Mockito.anyFloat; import static org.mockito.Mockito.anyString; @@ -30,9 +28,12 @@ import static org.mockito.Mockito.verify; import android.content.res.Resources; import android.graphics.Canvas; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; +import androidx.test.runner.AndroidJUnit4; + +import com.android.settingslib.graph.BatteryMeterDrawableBase; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/packages/SystemUI/tests/src/com/android/systemui/DependencyTest.java b/packages/SystemUI/tests/src/com/android/systemui/DependencyTest.java index 3426e117ab13..5513a5408c00 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/DependencyTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/DependencyTest.java @@ -21,7 +21,8 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import android.os.Looper; -import android.support.test.filters.SmallTest; + +import androidx.test.filters.SmallTest; import com.android.systemui.Dependency.DependencyKey; import com.android.systemui.statusbar.policy.FlashlightController; diff --git a/packages/SystemUI/tests/src/com/android/systemui/ExpandHelperTest.java b/packages/SystemUI/tests/src/com/android/systemui/ExpandHelperTest.java index 08c4235e8a48..4d14c05e64f7 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/ExpandHelperTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/ExpandHelperTest.java @@ -16,15 +16,18 @@ package com.android.systemui; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + import android.animation.ObjectAnimator; import android.content.Context; -import android.support.test.InstrumentationRegistry; -import android.support.test.annotation.UiThreadTest; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper.RunWithLooper; +import androidx.test.annotation.UiThreadTest; +import androidx.test.filters.SmallTest; + import com.android.systemui.statusbar.ExpandableNotificationRow; import com.android.systemui.statusbar.NotificationTestHelper; @@ -32,10 +35,6 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - @SmallTest @RunWith(AndroidTestingRunner.class) @RunWithLooper(setAsMainLooper = true) diff --git a/packages/SystemUI/tests/src/com/android/systemui/ForegroundServiceControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/ForegroundServiceControllerTest.java index f278a17d0637..4090b1d1adc7 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/ForegroundServiceControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/ForegroundServiceControllerTest.java @@ -30,10 +30,11 @@ import android.app.NotificationManager; import android.os.Bundle; import android.os.UserHandle; import android.service.notification.StatusBarNotification; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.widget.RemoteViews; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.internal.messages.nano.SystemMessageProto; import org.junit.Before; diff --git a/packages/SystemUI/tests/src/com/android/systemui/ScreenDecorationsTest.java b/packages/SystemUI/tests/src/com/android/systemui/ScreenDecorationsTest.java index cc969177ab2e..1b9d283bca5c 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/ScreenDecorationsTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/ScreenDecorationsTest.java @@ -20,8 +20,8 @@ import static com.android.systemui.tuner.TunablePadding.FLAG_END; import static com.android.systemui.tuner.TunablePadding.FLAG_START; import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertThat; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyString; @@ -36,7 +36,6 @@ import static org.mockito.Mockito.when; import android.app.Fragment; import android.content.res.Configuration; import android.os.Handler; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.testing.TestableLooper.RunWithLooper; @@ -44,6 +43,8 @@ import android.view.Display; import android.view.View; import android.view.WindowManager; +import androidx.test.filters.SmallTest; + import com.android.systemui.R.dimen; import com.android.systemui.ScreenDecorations.TunablePaddingTagListener; import com.android.systemui.fragments.FragmentHostManager; diff --git a/packages/SystemUI/tests/src/com/android/systemui/SliceBroadcastRelayHandlerTest.java b/packages/SystemUI/tests/src/com/android/systemui/SliceBroadcastRelayHandlerTest.java index 383db053b1f5..c6e85c3f81a0 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/SliceBroadcastRelayHandlerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/SliceBroadcastRelayHandlerTest.java @@ -29,9 +29,10 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.net.Uri; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; +import androidx.test.filters.SmallTest; + import com.android.settingslib.SliceBroadcastRelay; import org.junit.Test; diff --git a/packages/SystemUI/tests/src/com/android/systemui/SysuiBaseFragmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/SysuiBaseFragmentTest.java index b6335f368183..256cfb28d4de 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/SysuiBaseFragmentTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/SysuiBaseFragmentTest.java @@ -19,10 +19,11 @@ import static org.mockito.Mockito.when; import android.app.Fragment; import android.app.Instrumentation; -import android.support.test.InstrumentationRegistry; import android.testing.BaseFragmentTest; import android.testing.DexmakerShareClassLoaderRule; +import androidx.test.InstrumentationRegistry; + import com.android.systemui.utils.leaks.LeakCheckedTest; import com.android.systemui.utils.leaks.LeakCheckedTest.SysuiLeakCheck; diff --git a/packages/SystemUI/tests/src/com/android/systemui/SysuiTestCase.java b/packages/SystemUI/tests/src/com/android/systemui/SysuiTestCase.java index a35ca46833e7..4ad103c68312 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/SysuiTestCase.java +++ b/packages/SystemUI/tests/src/com/android/systemui/SysuiTestCase.java @@ -23,11 +23,12 @@ import android.os.Handler; import android.os.Looper; import android.os.MessageQueue; import android.os.ParcelFileDescriptor; -import android.support.test.InstrumentationRegistry; import android.testing.DexmakerShareClassLoaderRule; import android.testing.LeakCheck; import android.util.Log; +import androidx.test.InstrumentationRegistry; + import com.android.keyguard.KeyguardUpdateMonitor; import org.junit.After; diff --git a/packages/SystemUI/tests/src/com/android/systemui/colorextraction/SysuiColorExtractorTests.java b/packages/SystemUI/tests/src/com/android/systemui/colorextraction/SysuiColorExtractorTests.java index 13dc36da2698..1649f9845661 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/colorextraction/SysuiColorExtractorTests.java +++ b/packages/SystemUI/tests/src/com/android/systemui/colorextraction/SysuiColorExtractorTests.java @@ -22,8 +22,9 @@ import static org.junit.Assert.assertNotEquals; import android.app.WallpaperColors; import android.app.WallpaperManager; import android.graphics.Color; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.internal.colorextraction.ColorExtractor; import com.android.systemui.SysuiTestCase; diff --git a/packages/SystemUI/tests/src/com/android/systemui/doze/AlwaysOnDisplayPolicyTest.java b/packages/SystemUI/tests/src/com/android/systemui/doze/AlwaysOnDisplayPolicyTest.java index 0bbdeb537248..ec9acdf26c8a 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/doze/AlwaysOnDisplayPolicyTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/doze/AlwaysOnDisplayPolicyTest.java @@ -19,10 +19,11 @@ package com.android.systemui.doze; import static com.google.common.truth.Truth.assertThat; import android.provider.Settings; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.text.format.DateUtils; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.systemui.R; import com.android.systemui.SysuiTestCase; diff --git a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeConfigurationTest.java b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeConfigurationTest.java index bb67d6e03a9d..3062b8f2d2f3 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeConfigurationTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeConfigurationTest.java @@ -20,8 +20,9 @@ import static junit.framework.TestCase.assertEquals; import android.os.UserHandle; import android.provider.Settings; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.internal.hardware.AmbientDisplayConfiguration; import com.android.systemui.SysuiTestCase; diff --git a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeMachineTest.java b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeMachineTest.java index 368c814f8e0a..43836de3f377 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeMachineTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeMachineTest.java @@ -28,8 +28,8 @@ import static com.android.systemui.doze.DozeMachine.State.UNINITIALIZED; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.mock; @@ -38,16 +38,15 @@ import static org.mockito.Mockito.reset; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; -import android.view.Display; +import android.testing.UiThreadTest; + +import androidx.test.filters.SmallTest; import com.android.internal.hardware.AmbientDisplayConfiguration; import com.android.systemui.SysuiTestCase; import com.android.systemui.util.wakelock.WakeLockFake; -import android.testing.UiThreadTest; - import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeScreenBrightnessTest.java b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeScreenBrightnessTest.java index 5e12781399e5..912a95adfdb6 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeScreenBrightnessTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeScreenBrightnessTest.java @@ -28,14 +28,13 @@ import static com.android.systemui.doze.DozeMachine.State.INITIALIZED; import static com.android.systemui.doze.DozeMachine.State.UNINITIALIZED; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; import android.os.PowerManager; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.systemui.SysuiTestCase; import com.android.systemui.utils.hardware.FakeSensorManager; diff --git a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeScreenStatePreventingAdapterTest.java b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeScreenStatePreventingAdapterTest.java index a17a95f6543d..903e4a1efa53 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeScreenStatePreventingAdapterTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeScreenStatePreventingAdapterTest.java @@ -22,9 +22,10 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import android.support.test.filters.SmallTest; import android.view.Display; +import androidx.test.filters.SmallTest; + import com.android.systemui.SysuiTestCase; import com.android.systemui.statusbar.phone.DozeParameters; diff --git a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeScreenStateTest.java b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeScreenStateTest.java index b6039b66e6cb..bfd448a2926d 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeScreenStateTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeScreenStateTest.java @@ -30,19 +30,16 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.never; -import static org.mockito.Mockito.reset; -import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.os.Looper; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.view.Display; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.systemui.SysuiTestCase; import com.android.systemui.statusbar.phone.DozeParameters; -import com.android.systemui.util.wakelock.WakeLock; import com.android.systemui.util.wakelock.WakeLockFake; import com.android.systemui.utils.os.FakeHandler; diff --git a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeSuspendScreenStatePreventingAdapterTest.java b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeSuspendScreenStatePreventingAdapterTest.java index ed935619b2f6..fac58a0a78ea 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeSuspendScreenStatePreventingAdapterTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeSuspendScreenStatePreventingAdapterTest.java @@ -22,9 +22,10 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import android.support.test.filters.SmallTest; import android.view.Display; +import androidx.test.filters.SmallTest; + import com.android.systemui.SysuiTestCase; import com.android.systemui.statusbar.phone.DozeParameters; diff --git a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeTriggersTest.java b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeTriggersTest.java index c2da7f5280b5..e18b625e4e5d 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeTriggersTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeTriggersTest.java @@ -27,11 +27,12 @@ import android.app.AlarmManager; import android.app.Instrumentation; import android.os.Handler; import android.os.Looper; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper.RunWithLooper; +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; + import com.android.internal.hardware.AmbientDisplayConfiguration; import com.android.systemui.SysuiTestCase; import com.android.systemui.statusbar.phone.DozeParameters; diff --git a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeUiTest.java b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeUiTest.java index 0d8d9526f607..25231bcbc1c4 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeUiTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeUiTest.java @@ -27,19 +27,17 @@ import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyLong; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.clearInvocations; -import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.reset; -import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.app.AlarmManager; import android.os.Handler; import android.os.HandlerThread; -import android.os.PowerManager; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.systemui.SysuiTestCase; @@ -47,7 +45,6 @@ import com.android.systemui.statusbar.phone.DozeParameters; import com.android.systemui.util.wakelock.WakeLockFake; import org.junit.After; -import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -172,4 +169,4 @@ public class DozeUiTest extends SysuiTestCase { mDozeUi.transitionTo(UNINITIALIZED, DOZE); verify(mHost).setAnimateWakeup(eq(false)); } -}
\ No newline at end of file +} diff --git a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeWallpaperStateTest.java b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeWallpaperStateTest.java index 6ac44628b52f..1ea2e296cdad 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeWallpaperStateTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeWallpaperStateTest.java @@ -18,16 +18,15 @@ package com.android.systemui.doze; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.mock; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.app.IWallpaperManager; import android.os.RemoteException; -import android.support.test.filters.SmallTest; -import com.android.keyguard.KeyguardUpdateMonitor; +import androidx.test.filters.SmallTest; + import com.android.systemui.SysuiTestCase; import com.android.systemui.statusbar.phone.DozeParameters; diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/DismissCallbackRegistryTest.java b/packages/SystemUI/tests/src/com/android/systemui/keyguard/DismissCallbackRegistryTest.java index 308670dc7cfb..d35fc30da6c4 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/DismissCallbackRegistryTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/DismissCallbackRegistryTest.java @@ -19,12 +19,11 @@ package com.android.systemui.keyguard; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.internal.policy.IKeyguardDismissCallback; import com.android.systemui.SysuiTestCase; -import com.android.systemui.UiOffloadThread; import org.junit.Before; import org.junit.Test; diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardSliceProviderTest.java b/packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardSliceProviderTest.java index 46e2bfbb1431..7ae7aa409a6c 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardSliceProviderTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardSliceProviderTest.java @@ -19,25 +19,28 @@ package com.android.systemui.keyguard; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; import android.app.AlarmManager; import android.content.ContentResolver; import android.content.Intent; import android.net.Uri; import android.provider.Settings; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.testing.TestableLooper.RunWithLooper; -import android.util.Log; + +import androidx.slice.Slice; +import androidx.slice.SliceItem; +import androidx.slice.SliceProvider; +import androidx.slice.SliceSpecs; +import androidx.slice.builders.ListBuilder; +import androidx.slice.core.SliceQuery; +import androidx.test.filters.SmallTest; import com.android.systemui.SysuiTestCase; -import com.android.systemui.statusbar.policy.ZenModeController; import org.junit.Assert; import org.junit.Before; @@ -50,13 +53,6 @@ import java.util.Arrays; import java.util.HashSet; import java.util.concurrent.TimeUnit; -import androidx.slice.Slice; -import androidx.slice.SliceItem; -import androidx.slice.SliceProvider; -import androidx.slice.SliceSpecs; -import androidx.slice.builders.ListBuilder; -import androidx.slice.core.SliceQuery; - @SmallTest @RunWith(AndroidTestingRunner.class) @RunWithLooper(setAsMainLooper = true) diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/LifecycleTest.java b/packages/SystemUI/tests/src/com/android/systemui/keyguard/LifecycleTest.java index e0807d648f40..50914c86b933 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/LifecycleTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/LifecycleTest.java @@ -19,9 +19,10 @@ package com.android.systemui.keyguard; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; +import androidx.test.filters.SmallTest; + import com.android.systemui.SysuiTestCase; import org.junit.Before; diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/ScreenLifecycleTest.java b/packages/SystemUI/tests/src/com/android/systemui/keyguard/ScreenLifecycleTest.java index 8c918f6a7af2..06e597e1c87a 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/ScreenLifecycleTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/ScreenLifecycleTest.java @@ -21,9 +21,10 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; +import androidx.test.filters.SmallTest; + import com.android.systemui.SysuiTestCase; import org.junit.Before; diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/WakefulnessLifecycleTest.java b/packages/SystemUI/tests/src/com/android/systemui/keyguard/WakefulnessLifecycleTest.java index 9eba9b894064..1dc415048f74 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/WakefulnessLifecycleTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/WakefulnessLifecycleTest.java @@ -22,9 +22,10 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; +import androidx.test.filters.SmallTest; + import com.android.systemui.SysuiTestCase; import org.junit.Before; diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/WorkLockActivityControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/keyguard/WorkLockActivityControllerTest.java index cf32760dc803..7ccf9054c1dc 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/WorkLockActivityControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/WorkLockActivityControllerTest.java @@ -16,13 +16,13 @@ package com.android.systemui.keyguard; +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.anyInt; +import static org.mockito.Matchers.argThat; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; -import static org.mockito.Matchers.any; -import static org.mockito.Matchers.anyInt; -import static org.mockito.Matchers.argThat; import android.app.Activity; import android.app.ActivityManager; @@ -36,8 +36,9 @@ import android.content.Intent; import android.os.Bundle; import android.os.IBinder; import android.os.UserHandle; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.systemui.SysuiTestCase; import com.android.systemui.recents.misc.SysUiTaskStackChangeListener; diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/WorkLockActivityTest.java b/packages/SystemUI/tests/src/com/android/systemui/keyguard/WorkLockActivityTest.java index 9f3573f6a4ee..6e726cf6bf8d 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/WorkLockActivityTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/WorkLockActivityTest.java @@ -17,13 +17,11 @@ package com.android.systemui.keyguard; import static android.app.ActivityManager.TaskDescription; + import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.when; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; - import android.annotation.ColorInt; import android.annotation.UserIdInt; import android.app.KeyguardManager; @@ -33,6 +31,9 @@ import android.content.Intent; import android.graphics.Color; import android.os.Looper; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.systemui.SysuiTestCase; import com.android.systemui.keyguard.WorkLockActivity; diff --git a/packages/SystemUI/tests/src/com/android/systemui/pip/phone/PipTouchStateTest.java b/packages/SystemUI/tests/src/com/android/systemui/pip/phone/PipTouchStateTest.java index b7c1e8ea31b4..3155e57d8ab3 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/pip/phone/PipTouchStateTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/pip/phone/PipTouchStateTest.java @@ -26,13 +26,14 @@ import static org.junit.Assert.assertTrue; import android.os.Handler; import android.os.Looper; import android.os.SystemClock; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.testing.TestableLooper.RunWithLooper; import android.view.MotionEvent; import android.view.ViewConfiguration; +import androidx.test.filters.SmallTest; + import com.android.systemui.SysuiTestCase; import org.junit.Before; diff --git a/packages/SystemUI/tests/src/com/android/systemui/plugins/PluginInstanceManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/plugins/PluginInstanceManagerTest.java index 04441abee92e..0045d9d0cdbf 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/plugins/PluginInstanceManagerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/plugins/PluginInstanceManagerTest.java @@ -17,6 +17,7 @@ package com.android.systemui.plugins; import static junit.framework.Assert.assertFalse; import static junit.framework.Assert.assertNotNull; import static junit.framework.Assert.assertTrue; + import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyInt; import static org.mockito.Matchers.eq; @@ -25,19 +26,6 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import com.android.internal.messages.nano.SystemMessageProto.SystemMessage; -import com.android.systemui.SysuiTestCase; -import com.android.systemui.plugins.PluginInstanceManager.PluginInfo; -import com.android.systemui.plugins.VersionInfo.InvalidVersionException; -import com.android.systemui.plugins.annotations.Requires; - -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.ArgumentCaptor; -import org.mockito.Mockito; - import android.app.Activity; import android.app.NotificationManager; import android.content.BroadcastReceiver; @@ -52,10 +40,24 @@ import android.content.pm.ResolveInfo; import android.content.pm.ServiceInfo; import android.os.HandlerThread; import android.os.UserHandle; -import android.support.test.annotation.UiThreadTest; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; +import androidx.test.annotation.UiThreadTest; +import androidx.test.runner.AndroidJUnit4; + +import com.android.internal.messages.nano.SystemMessageProto.SystemMessage; +import com.android.systemui.SysuiTestCase; +import com.android.systemui.plugins.PluginInstanceManager.PluginInfo; +import com.android.systemui.plugins.VersionInfo.InvalidVersionException; +import com.android.systemui.plugins.annotations.Requires; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.ArgumentCaptor; +import org.mockito.Mockito; + import java.util.ArrayList; import java.util.Collections; import java.util.List; diff --git a/packages/SystemUI/tests/src/com/android/systemui/plugins/PluginManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/plugins/PluginManagerTest.java index 94dbc2ad7147..dfbb855892de 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/plugins/PluginManagerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/plugins/PluginManagerTest.java @@ -26,8 +26,6 @@ import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.net.Uri; -import android.support.test.annotation.UiThreadTest; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; @@ -36,11 +34,10 @@ import android.testing.TestableLooper.RunWithLooper; import com.android.internal.messages.nano.SystemMessageProto.SystemMessage; import com.android.systemui.Dependency; import com.android.systemui.SysuiTestCase; -import com.android.systemui.plugins.annotations.ProvidesInterface; import com.android.systemui.plugins.PluginInstanceManager.PluginInfo; import com.android.systemui.plugins.PluginManagerImpl.PluginInstanceManagerFactory; +import com.android.systemui.plugins.annotations.ProvidesInterface; -import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/packages/SystemUI/tests/src/com/android/systemui/plugins/VersionInfoTest.java b/packages/SystemUI/tests/src/com/android/systemui/plugins/VersionInfoTest.java index 0b4d9b525c1b..6a2f739d5c7d 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/plugins/VersionInfoTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/plugins/VersionInfoTest.java @@ -17,13 +17,13 @@ package com.android.systemui.plugins; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; -import android.support.test.filters.SmallTest; +import androidx.test.filters.SmallTest; import com.android.systemui.SysuiTestCase; import com.android.systemui.plugins.VersionInfo.InvalidVersionException; import com.android.systemui.plugins.annotations.Requires; -import com.android.systemui.plugins.qs.QS; import com.android.systemui.plugins.qs.DetailAdapter; +import com.android.systemui.plugins.qs.QS; import com.android.systemui.plugins.qs.QS.HeightListener; import org.junit.Rule; diff --git a/packages/SystemUI/tests/src/com/android/systemui/power/PowerNotificationWarningsTest.java b/packages/SystemUI/tests/src/com/android/systemui/power/PowerNotificationWarningsTest.java index bf6cc53aa5e9..47a969bd0719 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/power/PowerNotificationWarningsTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/power/PowerNotificationWarningsTest.java @@ -16,9 +16,6 @@ package com.android.systemui.power; -import static android.test.MoreAsserts.assertNotEqual; - -import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertFalse; import static junit.framework.Assert.assertTrue; @@ -31,14 +28,14 @@ import static org.mockito.Mockito.verify; import android.app.Notification; import android.app.NotificationManager; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.internal.messages.nano.SystemMessageProto.SystemMessage; import com.android.systemui.SysuiTestCase; import com.android.systemui.util.NotificationChannels; -import java.util.concurrent.TimeUnit; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/AutoAddTrackerTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/AutoAddTrackerTest.java index dfc1852502e2..0ae9461d38b1 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/AutoAddTrackerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/AutoAddTrackerTest.java @@ -22,10 +22,11 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import android.provider.Settings.Secure; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper.RunWithLooper; +import androidx.test.filters.SmallTest; + import com.android.systemui.Prefs; import com.android.systemui.Prefs.Key; import com.android.systemui.SysuiTestCase; diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/QSDetailTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/QSDetailTest.java index f845f3adc636..8879e83b4d0e 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/QSDetailTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/QSDetailTest.java @@ -23,7 +23,6 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.testing.TestableLooper.RunWithLooper; @@ -31,6 +30,8 @@ import android.testing.ViewUtils; import android.view.LayoutInflater; import android.view.View; +import androidx.test.filters.SmallTest; + import com.android.internal.logging.MetricsLogger; import com.android.systemui.R; import com.android.systemui.SysuiTestCase; diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/QSFooterImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/QSFooterImplTest.java index 703b4d5e22ec..d963689de86f 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/QSFooterImplTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/QSFooterImplTest.java @@ -20,13 +20,14 @@ import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.testing.TestableLooper.RunWithLooper; import android.view.LayoutInflater; import android.view.View; +import androidx.test.filters.SmallTest; + import com.android.systemui.R; import com.android.systemui.R.id; import com.android.systemui.plugins.ActivityStarter; diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java index 8cece9262ae8..8a27f12f1503 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java @@ -18,37 +18,31 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; -import android.app.FragmentController; -import android.app.FragmentManagerNonConfig; +import android.content.Context; import android.os.Looper; -import android.support.test.filters.FlakyTest; +import android.testing.AndroidTestingRunner; +import android.testing.LayoutInflaterBuilder; +import android.testing.TestableLooper; +import android.testing.TestableLooper.RunWithLooper; +import android.view.View; +import android.widget.FrameLayout; + +import androidx.test.filters.SmallTest; import com.android.internal.logging.MetricsLogger; import com.android.keyguard.CarrierText; import com.android.systemui.Dependency; import com.android.systemui.R; - -import android.os.Parcelable; -import android.support.test.filters.SmallTest; -import android.testing.AndroidTestingRunner; - import com.android.systemui.SysuiBaseFragmentTest; import com.android.systemui.statusbar.phone.StatusBarIconController; import com.android.systemui.statusbar.policy.Clock; import com.android.systemui.statusbar.policy.UserSwitcherController; -import android.testing.LayoutInflaterBuilder; -import android.testing.TestableLooper; -import android.testing.TestableLooper.RunWithLooper; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; -import android.content.Context; -import android.view.View; -import android.widget.FrameLayout; - @RunWith(AndroidTestingRunner.class) @RunWithLooper(setAsMainLooper = true) @SmallTest diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/QSPanelTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/QSPanelTest.java index 85cdfcc2ce09..973a5e9ecbd9 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/QSPanelTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/QSPanelTest.java @@ -19,11 +19,12 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.testing.TestableLooper.RunWithLooper; +import androidx.test.filters.SmallTest; + import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.systemui.SysuiTestCase; diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/SlashImageViewTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/SlashImageViewTest.java index e2159d24ad85..ea8c64ac53bb 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/SlashImageViewTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/SlashImageViewTest.java @@ -16,27 +16,26 @@ package com.android.systemui.qs; +import static org.junit.Assert.assertTrue; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + import android.content.Context; import android.graphics.drawable.Drawable; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper.RunWithLooper; + +import androidx.test.filters.SmallTest; + import com.android.systemui.SysuiTestCase; import com.android.systemui.plugins.qs.QSTile.SlashState; import com.android.systemui.qs.tileimpl.SlashImageView; + import org.junit.Test; import org.junit.runner.RunWith; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.anyInt; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.never; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - - @SmallTest @RunWith(AndroidTestingRunner.class) @RunWithLooper diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/TileLayoutTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/TileLayoutTest.java index 2040e7578910..fef47bd6a392 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/TileLayoutTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/TileLayoutTest.java @@ -27,12 +27,12 @@ import static org.mockito.Mockito.spy; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.systemui.R; import com.android.systemui.SysuiTestCase; -import com.android.systemui.plugins.qs.QSIconView; import com.android.systemui.plugins.qs.QSTile; import com.android.systemui.qs.tileimpl.QSIconViewImpl; import com.android.systemui.qs.tileimpl.QSTileView; diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/TouchAnimatorTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/TouchAnimatorTest.java index 4cc0e20dd964..c43c3e629c8a 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/TouchAnimatorTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/TouchAnimatorTest.java @@ -14,18 +14,21 @@ package com.android.systemui.qs; -import android.support.test.runner.AndroidJUnit4; +import static junit.framework.Assert.assertEquals; + import android.test.suitebuilder.annotation.SmallTest; import android.view.View; -import com.android.systemui.qs.TouchAnimator.Listener; + +import androidx.test.runner.AndroidJUnit4; + import com.android.systemui.SysuiTestCase; +import com.android.systemui.qs.TouchAnimator.Listener; + import org.junit.Before; -import org.junit.runner.RunWith; import org.junit.Test; +import org.junit.runner.RunWith; import org.mockito.Mockito; -import static junit.framework.Assert.assertEquals; - @SmallTest @RunWith(AndroidJUnit4.class) public class TouchAnimatorTest extends SysuiTestCase { diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/car/CarQsFragmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/car/CarQsFragmentTest.java index c3defa4390c5..24a0b69ceee2 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/car/CarQsFragmentTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/car/CarQsFragmentTest.java @@ -17,7 +17,6 @@ import static org.junit.Assert.assertNotNull; import static org.mockito.Mockito.mock; import android.content.Context; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.LayoutInflaterBuilder; import android.testing.TestableLooper; @@ -25,6 +24,8 @@ import android.testing.TestableLooper.RunWithLooper; import android.view.View; import android.widget.FrameLayout; +import androidx.test.filters.SmallTest; + import com.android.keyguard.CarrierText; import com.android.systemui.Dependency; import com.android.systemui.SysuiBaseFragmentTest; diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/customize/TileAdapterTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/customize/TileAdapterTest.java index 0239ab090dfc..25bac7ae4117 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/customize/TileAdapterTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/customize/TileAdapterTest.java @@ -18,11 +18,12 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.testing.TestableLooper.RunWithLooper; +import androidx.test.filters.SmallTest; + import com.android.systemui.SysuiTestCase; import com.android.systemui.qs.QSTileHost; diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/customize/TileQueryHelperTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/customize/TileQueryHelperTest.java index f63d2360d976..c10ad58ec8a0 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/customize/TileQueryHelperTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/customize/TileQueryHelperTest.java @@ -14,7 +14,6 @@ package com.android.systemui.qs.customize; -import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertTrue; import static org.junit.Assert.assertFalse; @@ -23,11 +22,12 @@ import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.testing.TestableLooper.RunWithLooper; +import androidx.test.filters.SmallTest; + import com.android.systemui.Dependency; import com.android.systemui.SysuiTestCase; import com.android.systemui.qs.QSTileHost; @@ -38,8 +38,6 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; -import java.util.ArrayList; - @SmallTest @RunWith(AndroidTestingRunner.class) @RunWithLooper diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/external/TileColorPickerTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/external/TileColorPickerTest.java index ba451e1e10dc..ec8552b7f394 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/external/TileColorPickerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/external/TileColorPickerTest.java @@ -15,17 +15,20 @@ */ package com.android.systemui.qs.external; +import static junit.framework.Assert.assertEquals; + import android.content.res.ColorStateList; import android.service.quicksettings.Tile; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; + +import androidx.test.runner.AndroidJUnit4; + +import com.android.systemui.R; import com.android.systemui.SysuiTestCase; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import com.android.systemui.R; - -import static junit.framework.Assert.assertEquals; @SmallTest @RunWith(AndroidJUnit4.class) diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/external/TileLifecycleManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/external/TileLifecycleManagerTest.java index e5e8ae3311ef..f35295cf6f99 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/external/TileLifecycleManagerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/external/TileLifecycleManagerTest.java @@ -40,9 +40,10 @@ import android.service.quicksettings.IQSService; import android.service.quicksettings.IQSTileService; import android.service.quicksettings.Tile; import android.service.quicksettings.TileService; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.systemui.SysuiTestCase; import org.junit.After; diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/external/TileServiceManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/external/TileServiceManagerTest.java index cc743245fc42..683e8f4a2511 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/external/TileServiceManagerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/external/TileServiceManagerTest.java @@ -15,12 +15,19 @@ */ package com.android.systemui.qs.external; +import static junit.framework.Assert.assertEquals; +import static junit.framework.Assert.assertFalse; +import static junit.framework.Assert.assertTrue; + import android.content.ComponentName; import android.os.Handler; import android.os.HandlerThread; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; + +import androidx.test.runner.AndroidJUnit4; + import com.android.systemui.SysuiTestCase; + import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -28,10 +35,6 @@ import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import org.mockito.Mockito; -import static junit.framework.Assert.assertEquals; -import static junit.framework.Assert.assertFalse; -import static junit.framework.Assert.assertTrue; - @SmallTest @RunWith(AndroidJUnit4.class) public class TileServiceManagerTest extends SysuiTestCase { diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/tileimpl/QSIconViewImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/tileimpl/QSIconViewImplTest.java index f9f4f497a2ec..633315e8457e 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/tileimpl/QSIconViewImplTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/tileimpl/QSIconViewImplTest.java @@ -21,14 +21,14 @@ import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import android.content.res.ColorStateList; import android.graphics.drawable.Drawable; import android.service.quicksettings.Tile; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.UiThreadTest; import android.widget.ImageView; +import androidx.test.filters.SmallTest; + import com.android.systemui.SysuiTestCase; import com.android.systemui.plugins.qs.QSTile.Icon; import com.android.systemui.plugins.qs.QSTile.State; @@ -36,7 +36,6 @@ import com.android.systemui.plugins.qs.QSTile.State; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.ArgumentMatcher; @RunWith(AndroidTestingRunner.class) @UiThreadTest diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/tileimpl/QSTileImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/tileimpl/QSTileImplTest.java index 676463407f3f..03e67afd9044 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/tileimpl/QSTileImplTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/tileimpl/QSTileImplTest.java @@ -32,16 +32,14 @@ import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import static java.lang.Thread.sleep; - import android.content.Intent; import android.metrics.LogMaker; -import android.support.test.filters.SmallTest; -import android.support.test.InstrumentationRegistry; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.testing.TestableLooper.RunWithLooper; +import androidx.test.filters.SmallTest; + import com.android.internal.logging.MetricsLogger; import com.android.systemui.Dependency; import com.android.systemui.SysuiTestCase; @@ -55,6 +53,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentMatcher; +import static java.lang.Thread.sleep; + @RunWith(AndroidTestingRunner.class) @RunWithLooper @SmallTest diff --git a/packages/SystemUI/tests/src/com/android/systemui/recents/RecentsTest.java b/packages/SystemUI/tests/src/com/android/systemui/recents/RecentsTest.java index bdbd24418d3f..6bbe24937b9a 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/recents/RecentsTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/recents/RecentsTest.java @@ -27,8 +27,9 @@ import android.app.ActivityManager; import android.app.ActivityManager.RunningTaskInfo; import android.app.IActivityManager; import android.os.SystemClock; -import android.support.test.filters.MediumTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.MediumTest; +import androidx.test.runner.AndroidJUnit4; import com.android.systemui.SysuiTestCase; diff --git a/packages/SystemUI/tests/src/com/android/systemui/settings/CurrentUserTrackerTest.java b/packages/SystemUI/tests/src/com/android/systemui/settings/CurrentUserTrackerTest.java index 17d7a4183b16..4162bc1da479 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/settings/CurrentUserTrackerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/settings/CurrentUserTrackerTest.java @@ -17,7 +17,8 @@ package com.android.systemui.settings; import android.content.Intent; -import android.support.test.filters.SmallTest; + +import androidx.test.filters.SmallTest; import com.android.systemui.SysuiTestCase; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/AppOpsListenerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/AppOpsListenerTest.java index 0feaa5a7659f..ee4fbc828c2b 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/AppOpsListenerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/AppOpsListenerTest.java @@ -23,10 +23,11 @@ import static org.mockito.Mockito.when; import android.app.AppOpsManager; import android.os.Handler; import android.os.Looper; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; +import androidx.test.filters.SmallTest; + import com.android.systemui.ForegroundServiceController; import com.android.systemui.SysuiTestCase; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/CommandQueueTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/CommandQueueTest.java index a02ef98f834d..965923557762 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/CommandQueueTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/CommandQueueTest.java @@ -22,7 +22,8 @@ import static org.mockito.Mockito.verifyNoMoreInteractions; import android.content.ComponentName; import android.graphics.Rect; import android.os.Bundle; -import android.support.test.filters.SmallTest; + +import androidx.test.filters.SmallTest; import com.android.internal.statusbar.StatusBarIcon; import com.android.systemui.SysuiTestCase; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/ExpandableNotificationRowTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/ExpandableNotificationRowTest.java index ff12c5373af8..210aa56c4d4b 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/ExpandableNotificationRowTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/ExpandableNotificationRowTest.java @@ -33,13 +33,14 @@ import static org.mockito.Mockito.when; import android.app.AppOpsManager; import android.app.NotificationChannel; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper.RunWithLooper; import android.util.ArraySet; import android.view.NotificationHeaderView; import android.view.View; +import androidx.test.filters.SmallTest; + import com.android.systemui.SysuiTestCase; import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin; import com.android.systemui.statusbar.notification.AboveShelfChangedListener; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/FooterViewTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/FooterViewTest.java index e6fdfa427196..a7e14dc7c229 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/FooterViewTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/FooterViewTest.java @@ -16,23 +16,18 @@ package com.android.systemui.statusbar; -import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertFalse; import static junit.framework.Assert.assertNotNull; -import static junit.framework.Assert.assertNull; import static junit.framework.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.spy; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.view.LayoutInflater; import android.view.View; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.systemui.R; import com.android.systemui.SysuiTestCase; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java index bdd05c7e6384..6e5af99835c3 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java @@ -30,12 +30,13 @@ import android.app.trust.TrustManager; import android.content.Context; import android.hardware.fingerprint.FingerprintManager; import android.os.Looper; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.view.View; import android.view.ViewGroup; +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.keyguard.KeyguardUpdateMonitorCallback; import com.android.systemui.R; import com.android.systemui.SysuiTestCase; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NonPhoneDependencyTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NonPhoneDependencyTest.java index 2af0c3ead215..4a8f28742982 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NonPhoneDependencyTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NonPhoneDependencyTest.java @@ -21,10 +21,11 @@ import static org.mockito.Mockito.when; import android.os.Handler; import android.os.Looper; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; +import androidx.test.filters.SmallTest; + import com.android.systemui.Dependency; import com.android.systemui.SysuiTestCase; import com.android.systemui.statusbar.phone.NotificationGroupManager; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationBlockingHelperManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationBlockingHelperManagerTest.java index 9638541ead42..41ee732843f3 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationBlockingHelperManagerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationBlockingHelperManagerTest.java @@ -16,27 +16,10 @@ package com.android.systemui.statusbar; -import com.android.systemui.SysuiTestCase; -import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin; - -import android.content.Context; -import android.support.test.filters.FlakyTest; -import android.support.test.filters.SmallTest; -import android.testing.AndroidTestingRunner; -import android.testing.TestableLooper; -import android.view.View; - -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; - import static android.service.notification.NotificationListenerService.Ranking.USER_SENTIMENT_NEGATIVE; import static android.service.notification.NotificationListenerService.Ranking.USER_SENTIMENT_NEUTRAL; import static android.service.notification.NotificationListenerService.Ranking.USER_SENTIMENT_POSITIVE; + import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; @@ -46,6 +29,22 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import android.content.Context; +import android.testing.AndroidTestingRunner; +import android.testing.TestableLooper; +import android.view.View; + +import androidx.test.filters.FlakyTest; +import androidx.test.filters.SmallTest; + +import com.android.systemui.SysuiTestCase; +import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; + /** * Tests for {@link NotificationBlockingHelperManager}. */ diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationContentViewTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationContentViewTest.java index 1fb4c371a408..c4a80a7fd740 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationContentViewTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationContentViewTest.java @@ -28,13 +28,14 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.app.AppOpsManager; -import android.support.test.annotation.UiThreadTest; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.util.ArraySet; import android.view.NotificationHeaderView; import android.view.View; +import androidx.test.annotation.UiThreadTest; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.systemui.SysuiTestCase; import org.junit.Assert; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationCustomViewWrapperTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationCustomViewWrapperTest.java index a34588d4f29d..99fe4457a8ba 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationCustomViewWrapperTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationCustomViewWrapperTest.java @@ -16,12 +16,13 @@ package com.android.systemui.statusbar; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper.RunWithLooper; import android.view.View; import android.widget.RemoteViews; +import androidx.test.filters.SmallTest; + import com.android.systemui.R; import com.android.systemui.SysuiTestCase; import com.android.systemui.statusbar.notification.NotificationCustomViewWrapper; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationDataTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationDataTest.java index 77522e44b183..f62b13c1ddf7 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationDataTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationDataTest.java @@ -44,12 +44,13 @@ import android.media.session.MediaSession; import android.os.Bundle; import android.service.notification.NotificationListenerService; import android.service.notification.StatusBarNotification; -import android.support.test.annotation.UiThreadTest; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper.RunWithLooper; import android.util.ArraySet; +import androidx.test.annotation.UiThreadTest; +import androidx.test.filters.SmallTest; + import com.android.systemui.ForegroundServiceController; import com.android.systemui.SysuiTestCase; import com.android.systemui.statusbar.phone.NotificationGroupManager; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationEntryManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationEntryManagerTest.java index afe16cf13b76..2e14e715e517 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationEntryManagerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationEntryManagerTest.java @@ -19,7 +19,6 @@ package com.android.systemui.statusbar; import static junit.framework.Assert.assertNotNull; import static junit.framework.Assert.assertNull; import static junit.framework.Assert.assertTrue; -import static junit.framework.Assert.assertFalse; import static org.junit.Assert.assertEquals; import static org.mockito.ArgumentMatchers.any; @@ -43,12 +42,13 @@ import android.os.Looper; import android.os.UserHandle; import android.service.notification.NotificationListenerService; import android.service.notification.StatusBarNotification; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.util.ArraySet; import android.widget.FrameLayout; +import androidx.test.filters.SmallTest; + import com.android.internal.logging.MetricsLogger; import com.android.internal.statusbar.IStatusBarService; import com.android.systemui.ForegroundServiceController; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationGutsManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationGutsManagerTest.java index cba1b548611b..72e932c29627 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationGutsManagerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationGutsManagerTest.java @@ -19,8 +19,8 @@ package com.android.systemui.statusbar; import static android.app.AppOpsManager.OP_CAMERA; import static android.app.AppOpsManager.OP_RECORD_AUDIO; import static android.app.AppOpsManager.OP_SYSTEM_ALERT_WINDOW; - import static android.service.notification.NotificationListenerService.Ranking.USER_SENTIMENT_NEGATIVE; + import static junit.framework.Assert.assertNotNull; import static org.junit.Assert.assertEquals; @@ -32,10 +32,10 @@ import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.isNull; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; import android.app.INotificationManager; import android.app.Notification; @@ -47,12 +47,13 @@ import android.os.Binder; import android.os.Handler; import android.provider.Settings; import android.service.notification.StatusBarNotification; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.util.ArraySet; import android.view.View; +import androidx.test.filters.SmallTest; + import com.android.systemui.SysuiTestCase; import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin; import com.android.systemui.statusbar.stack.NotificationStackScrollLayout; @@ -63,11 +64,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import org.mockito.Mock; -import org.mockito.junit.MockitoRule; import org.mockito.junit.MockitoJUnit; - -import java.util.HashSet; -import java.util.Set; +import org.mockito.junit.MockitoRule; /** * Tests for {@link NotificationGutsManager}. diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationListenerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationListenerTest.java index 26f91b329d46..cab762c50ce1 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationListenerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationListenerTest.java @@ -16,8 +16,6 @@ package com.android.systemui.statusbar; -import static junit.framework.Assert.assertTrue; - import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -28,10 +26,11 @@ import android.os.Looper; import android.os.UserHandle; import android.service.notification.NotificationListenerService; import android.service.notification.StatusBarNotification; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; +import androidx.test.filters.SmallTest; + import com.android.systemui.SysuiTestCase; import org.junit.Before; @@ -40,9 +39,6 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; -import java.util.HashSet; -import java.util.Set; - @SmallTest @RunWith(AndroidTestingRunner.class) @TestableLooper.RunWithLooper diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerTest.java index 2401519940e5..849ae89880d8 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerTest.java @@ -36,10 +36,11 @@ import android.os.Handler; import android.os.Looper; import android.os.UserManager; import android.provider.Settings; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; +import androidx.test.filters.SmallTest; + import com.android.systemui.SysuiTestCase; import com.android.systemui.statusbar.policy.DeviceProvisionedController; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationLoggerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationLoggerTest.java index 42bf290c70fd..760c66dd7e28 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationLoggerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationLoggerTest.java @@ -30,10 +30,11 @@ import android.os.Looper; import android.os.RemoteException; import android.os.UserHandle; import android.service.notification.StatusBarNotification; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; +import androidx.test.filters.SmallTest; + import com.android.internal.statusbar.IStatusBarService; import com.android.internal.statusbar.NotificationVisibility; import com.android.systemui.SysuiTestCase; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationMenuRowTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationMenuRowTest.java index 2a5a1eea2b76..088b01d8ecab 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationMenuRowTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationMenuRowTest.java @@ -22,15 +22,14 @@ import static org.mockito.Mockito.when; import android.app.Notification; import android.service.notification.StatusBarNotification; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.testing.TestableLooper.RunWithLooper; import android.testing.ViewUtils; -import android.testing.ViewUtils; -import android.view.View; import android.view.ViewGroup; +import androidx.test.filters.SmallTest; + import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin; import com.android.systemui.utils.leaks.LeakCheckedTest; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationRemoteInputManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationRemoteInputManagerTest.java index 7a2cb3af55ca..9066b880d6a9 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationRemoteInputManagerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationRemoteInputManagerTest.java @@ -13,10 +13,11 @@ import android.os.Looper; import android.os.UserHandle; import android.service.notification.NotificationListenerService; import android.service.notification.StatusBarNotification; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; +import androidx.test.filters.SmallTest; + import com.android.systemui.SysuiTestCase; import com.google.android.collect.Sets; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationTestHelper.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationTestHelper.java index 2b0c6bfac988..ae89e5ce327a 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationTestHelper.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationTestHelper.java @@ -23,11 +23,12 @@ import android.app.Notification; import android.content.Context; import android.os.UserHandle; import android.service.notification.StatusBarNotification; -import android.support.test.InstrumentationRegistry; import android.text.TextUtils; import android.view.LayoutInflater; import android.widget.RemoteViews; +import androidx.test.InstrumentationRegistry; + import com.android.systemui.R; import com.android.systemui.statusbar.notification.NotificationInflaterTest; import com.android.systemui.statusbar.phone.HeadsUpManagerPhone; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationViewHierarchyManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationViewHierarchyManagerTest.java index 0d0d1f86c53f..a64ca5c60c96 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationViewHierarchyManagerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationViewHierarchyManagerTest.java @@ -25,13 +25,14 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; +import androidx.test.filters.SmallTest; + import com.android.systemui.SysuiTestCase; import com.android.systemui.plugins.statusbar.NotificationSwipeActionHelper; import com.android.systemui.statusbar.notification.VisualStabilityManager; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/ScrimViewTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/ScrimViewTest.java index 42dad114b6b6..0c1fa4e0834b 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/ScrimViewTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/ScrimViewTest.java @@ -28,13 +28,14 @@ import android.graphics.Color; import android.graphics.Rect; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.testing.TestableLooper.RunWithLooper; import android.testing.ViewUtils; import android.view.View; +import androidx.test.filters.SmallTest; + import com.android.internal.colorextraction.ColorExtractor; import com.android.internal.colorextraction.drawable.GradientDrawable; import com.android.systemui.statusbar.policy.ConfigurationController; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/SmartReplyControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/SmartReplyControllerTest.java index e91530d0af5a..8d5e381af7a5 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/SmartReplyControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/SmartReplyControllerTest.java @@ -16,6 +16,7 @@ package com.android.systemui.statusbar; import static junit.framework.Assert.assertFalse; import static junit.framework.Assert.assertTrue; + import static org.mockito.ArgumentMatchers.argThat; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.isNull; @@ -26,10 +27,11 @@ import static org.mockito.Mockito.when; import android.app.Notification; import android.os.RemoteException; import android.service.notification.StatusBarNotification; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; +import androidx.test.filters.SmallTest; + import com.android.internal.statusbar.IStatusBarService; import com.android.systemui.R; import com.android.systemui.SysuiTestCase; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/StatusBarIconListTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/StatusBarIconListTest.java index e529e4c44c41..4c20b61083f7 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/StatusBarIconListTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/StatusBarIconListTest.java @@ -1,6 +1,7 @@ package com.android.systemui.statusbar; import static com.android.systemui.statusbar.phone.StatusBarIconController.TAG_PRIMARY; + import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertNull; import static junit.framework.Assert.assertTrue; @@ -8,19 +9,21 @@ import static junit.framework.Assert.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.systemui.SysuiTestCase; import com.android.systemui.statusbar.phone.StatusBarIconHolder; import com.android.systemui.statusbar.phone.StatusBarIconList; import com.android.systemui.statusbar.phone.StatusBarIconList.Slot; -import java.util.ArrayList; -import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; +import java.util.ArrayList; +import java.util.List; + @SmallTest @RunWith(AndroidJUnit4.class) public class StatusBarIconListTest extends SysuiTestCase { diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/StatusBarIconViewTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/StatusBarIconViewTest.java index 7b2071ca14fd..c995ab2e1ca4 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/StatusBarIconViewTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/StatusBarIconViewTest.java @@ -38,8 +38,9 @@ import android.content.res.Resources; import android.graphics.Color; import android.graphics.drawable.Icon; import android.os.UserHandle; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.internal.statusbar.StatusBarIcon; import com.android.internal.util.NotificationColorUtil; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/AboveShelfObserverTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/AboveShelfObserverTest.java index 00e9995970d9..82e4b08f99b8 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/AboveShelfObserverTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/AboveShelfObserverTest.java @@ -19,7 +19,6 @@ package com.android.systemui.statusbar.notification; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper.RunWithLooper; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/MediaNotificationProcessorTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/MediaNotificationProcessorTest.java index 5d3a86da4874..b03abecbc59b 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/MediaNotificationProcessorTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/MediaNotificationProcessorTest.java @@ -27,10 +27,11 @@ import static org.mockito.Mockito.verifyZeroInteractions; import android.app.Notification; import android.graphics.Bitmap; import android.graphics.drawable.Drawable; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; import android.widget.RemoteViews; +import androidx.test.runner.AndroidJUnit4; + import com.android.systemui.R; import com.android.systemui.SysuiTestCase; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationInflaterTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationInflaterTest.java index aa8a08cb575d..a9ee8a8378c8 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationInflaterTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationInflaterTest.java @@ -29,13 +29,14 @@ import android.os.CancellationSignal; import android.os.Handler; import android.os.Looper; import android.service.notification.StatusBarNotification; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper.RunWithLooper; import android.view.View; import android.view.ViewGroup; import android.widget.RemoteViews; +import androidx.test.filters.SmallTest; + import com.android.systemui.R; import com.android.systemui.SysuiTestCase; import com.android.systemui.statusbar.ExpandableNotificationRow; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationViewWrapperTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationViewWrapperTest.java index 7e2e505b66a7..6071c7be00ae 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationViewWrapperTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationViewWrapperTest.java @@ -17,18 +17,16 @@ package com.android.systemui.statusbar.notification; import android.content.Context; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper.RunWithLooper; import android.view.View; +import androidx.test.filters.SmallTest; + import com.android.systemui.SysuiTestCase; import com.android.systemui.statusbar.ExpandableNotificationRow; import com.android.systemui.statusbar.NotificationTestHelper; -import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/VisualStabilityManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/VisualStabilityManagerTest.java index 95ce0d89cd2c..52c8049d41ad 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/VisualStabilityManagerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/VisualStabilityManagerTest.java @@ -16,10 +16,18 @@ package com.android.systemui.statusbar.notification; +import static junit.framework.Assert.assertEquals; + +import static org.mockito.Matchers.anyObject; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + import android.service.notification.StatusBarNotification; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.systemui.SysuiTestCase; import com.android.systemui.statusbar.ExpandableNotificationRow; import com.android.systemui.statusbar.NotificationData; @@ -30,12 +38,6 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import static junit.framework.Assert.assertEquals; -import static org.mockito.Matchers.anyObject; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - @SmallTest @RunWith(AndroidJUnit4.class) public class VisualStabilityManagerTest extends SysuiTestCase { diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/AutoTileManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/AutoTileManagerTest.java index 23365a419d31..8a6bdc22811a 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/AutoTileManagerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/AutoTileManagerTest.java @@ -20,21 +20,21 @@ import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import android.os.Handler; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.testing.TestableLooper.RunWithLooper; + +import androidx.test.filters.SmallTest; + import com.android.internal.app.ColorDisplayController; -import com.android.systemui.Dependency; -import com.android.systemui.Prefs; import com.android.systemui.SysuiTestCase; import com.android.systemui.qs.AutoAddTracker; import com.android.systemui.qs.QSTileHost; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; -import org.mockito.Mockito; import org.mockito.MockitoAnnotations; @RunWith(AndroidTestingRunner.class) diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragmentTest.java index 231cdf5e8e7d..2e2d4f360981 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragmentTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragmentTest.java @@ -21,21 +21,21 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import android.app.StatusBarManager; -import android.support.test.filters.SmallTest; +import android.testing.AndroidTestingRunner; +import android.testing.TestableLooper.RunWithLooper; import android.view.View; import android.view.ViewPropertyAnimator; -import com.android.systemui.R; -import android.testing.AndroidTestingRunner; +import androidx.test.filters.SmallTest; +import com.android.systemui.R; import com.android.systemui.SysuiBaseFragmentTest; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.tuner.TunerService; -import android.testing.TestableLooper.RunWithLooper; import org.junit.Before; -import org.junit.runner.RunWith; import org.junit.Test; +import org.junit.runner.RunWith; import org.mockito.Mockito; @RunWith(AndroidTestingRunner.class) diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/DozeParametersTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/DozeParametersTest.java index 532019fe09c6..f6f4eb489603 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/DozeParametersTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/DozeParametersTest.java @@ -16,11 +16,21 @@ package com.android.systemui.statusbar.phone; +import static junit.framework.Assert.assertFalse; +import static junit.framework.Assert.assertTrue; +import static junit.framework.Assert.fail; + +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.reset; +import static org.mockito.Mockito.verify; + import android.content.Context; import android.os.PowerManager; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.systemui.SysuiTestCase; import com.android.systemui.doze.DozeScreenState; import com.android.systemui.statusbar.phone.DozeParameters.IntInOutMatcher; @@ -29,18 +39,6 @@ import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; -import static junit.framework.Assert.assertTrue; -import static junit.framework.Assert.assertFalse; -import static junit.framework.Assert.fail; - -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.never; -import static org.mockito.Mockito.reset; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - @SmallTest @RunWith(AndroidJUnit4.class) public class DozeParametersTest extends SysuiTestCase { diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/DozeScrimControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/DozeScrimControllerTest.java index 203ebe6d5132..b2128a642740 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/DozeScrimControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/DozeScrimControllerTest.java @@ -23,11 +23,11 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; -import android.os.Debug; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; +import androidx.test.filters.SmallTest; + import com.android.systemui.SysuiTestCase; import com.android.systemui.doze.DozeHost; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceControllerTest.java index 952d0864bdbd..32e142968520 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceControllerTest.java @@ -17,24 +17,19 @@ package com.android.systemui.statusbar.phone; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyObject; -import static org.mockito.Mockito.atLeast; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper.RunWithLooper; import android.view.View; import android.widget.TextView; -import com.android.systemui.Dependency; +import androidx.test.filters.SmallTest; + import com.android.systemui.SysuiTestCase; -import com.android.systemui.TestableDependency; -import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.ExpandableNotificationRow; import com.android.systemui.statusbar.HeadsUpStatusBarView; import com.android.systemui.statusbar.NotificationTestHelper; @@ -46,8 +41,6 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import java.util.HashSet; - @SmallTest @RunWith(AndroidTestingRunner.class) @RunWithLooper(setAsMainLooper = true) diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/HeadsUpManagerPhoneTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/HeadsUpManagerPhoneTest.java index aa991cb71aac..d25875089878 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/HeadsUpManagerPhoneTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/HeadsUpManagerPhoneTest.java @@ -16,16 +16,26 @@ package com.android.systemui.statusbar.phone; +import static junit.framework.Assert.assertFalse; +import static junit.framework.Assert.assertNotNull; +import static junit.framework.Assert.assertNull; +import static junit.framework.Assert.assertTrue; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + import android.app.ActivityManager; import android.app.Instrumentation; import android.app.Notification; import android.os.UserHandle; -import android.view.View; import android.service.notification.StatusBarNotification; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; +import android.view.View; + +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; import com.android.systemui.R; import com.android.systemui.SysuiTestCase; @@ -42,15 +52,6 @@ import org.mockito.Mock; import org.mockito.junit.MockitoJUnit; import org.mockito.junit.MockitoRule; -import static junit.framework.Assert.assertNotNull; -import static junit.framework.Assert.assertNull; -import static junit.framework.Assert.assertTrue; -import static junit.framework.Assert.assertFalse; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - @SmallTest @RunWith(AndroidTestingRunner.class) @TestableLooper.RunWithLooper diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardBouncerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardBouncerTest.java index 12b14c807917..2832e8888eba 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardBouncerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardBouncerTest.java @@ -29,13 +29,14 @@ import static org.mockito.Mockito.verifyZeroInteractions; import static org.mockito.Mockito.when; import android.graphics.Color; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.view.ViewGroup; import android.view.ViewTreeObserver; import android.widget.FrameLayout; +import androidx.test.filters.SmallTest; + import com.android.internal.widget.LockPatternUtils; import com.android.keyguard.KeyguardHostView; import com.android.keyguard.KeyguardSecurityModel; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardPresentationTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardPresentationTest.java index 54291536093c..d4e86873d0be 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardPresentationTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardPresentationTest.java @@ -16,16 +16,15 @@ package com.android.systemui.statusbar.phone; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.view.LayoutInflater; -import android.view.View; + +import androidx.test.filters.SmallTest; import com.android.systemui.R; import com.android.systemui.SysuiTestCase; -import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java index 17df8003dfa9..3231be06a844 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java @@ -19,14 +19,16 @@ import static org.mockito.Mockito.when; import android.content.Context; import android.os.Looper; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.LeakCheck.Tracker; +import android.testing.TestableLooper.RunWithLooper; import android.view.Display; import android.view.WindowManager; +import android.view.accessibility.AccessibilityManager.AccessibilityServicesStateChangeListener; -import com.android.systemui.Dependency; +import androidx.test.filters.SmallTest; +import com.android.systemui.Dependency; import com.android.systemui.OverviewProxyService; import com.android.systemui.SysuiBaseFragmentTest; import com.android.systemui.recents.Recents; @@ -34,9 +36,6 @@ import com.android.systemui.stackdivider.Divider; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.policy.AccessibilityManagerWrapper; -import android.testing.TestableLooper.RunWithLooper; -import android.view.accessibility.AccessibilityManager.AccessibilityServicesStateChangeListener; - import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarTransitionsTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarTransitionsTest.java index 76f57f049561..695e26fde377 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarTransitionsTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarTransitionsTest.java @@ -21,11 +21,12 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper.RunWithLooper; import android.view.IWindowManager; +import androidx.test.filters.SmallTest; + import com.android.systemui.SysuiTestCase; import com.android.systemui.statusbar.CommandQueue; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NearestTouchFrameTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NearestTouchFrameTest.java index 667a5082892d..52b88679b8cd 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NearestTouchFrameTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NearestTouchFrameTest.java @@ -17,19 +17,19 @@ package com.android.systemui.statusbar.phone; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doAnswer; -import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.content.res.Configuration; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper.RunWithLooper; import android.view.MotionEvent; import android.view.View; +import androidx.test.filters.SmallTest; + import com.android.systemui.SysuiTestCase; import org.junit.Before; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java index 9c558748697a..ac5ed95c16ec 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java @@ -37,11 +37,12 @@ import android.app.AlarmManager; import android.graphics.Color; import android.os.Handler; import android.os.Looper; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.view.View; +import androidx.test.filters.SmallTest; + import com.android.internal.colorextraction.ColorExtractor.GradientColors; import com.android.internal.util.function.TriConsumer; import com.android.systemui.SysuiTestCase; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarIconControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarIconControllerTest.java index 72b0156d25f9..9ccc35227e7a 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarIconControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarIconControllerTest.java @@ -14,28 +14,26 @@ package com.android.systemui.statusbar.phone; -import static junit.framework.Assert.assertEquals; -import static junit.framework.Assert.assertTrue; - import static com.android.systemui.statusbar.phone.StatusBarIconHolder.TYPE_ICON; import static com.android.systemui.statusbar.phone.StatusBarIconHolder.TYPE_MOBILE; import static com.android.systemui.statusbar.phone.StatusBarIconHolder.TYPE_WIFI; -import static org.mockito.ArgumentMatchers.eq; + +import static junit.framework.Assert.assertTrue; + import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import android.graphics.Rect; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper.RunWithLooper; import android.view.ViewGroup; import android.widget.LinearLayout; +import androidx.test.filters.SmallTest; + import com.android.internal.statusbar.StatusBarIcon; -import com.android.systemui.statusbar.StatusIconDisplayable; import com.android.systemui.statusbar.StatusBarIconView; import com.android.systemui.statusbar.StatusBarMobileView; import com.android.systemui.statusbar.StatusBarWifiView; +import com.android.systemui.statusbar.StatusIconDisplayable; import com.android.systemui.statusbar.phone.StatusBarIconController.DarkIconManager; import com.android.systemui.statusbar.phone.StatusBarIconController.IconManager; import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.MobileIconState; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java index 94ab9d2a7d04..91c47ca73fd0 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java @@ -25,11 +25,12 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.content.Context; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.view.ViewGroup; +import androidx.test.filters.SmallTest; + import com.android.internal.widget.LockPatternUtils; import com.android.keyguard.KeyguardHostView; import com.android.keyguard.ViewMediatorCallback; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java index 0a412b96ed54..a2d60c019e4e 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java @@ -41,28 +41,25 @@ import android.app.Notification; import android.app.StatusBarManager; import android.app.trust.TrustManager; import android.content.Context; -import android.content.pm.UserInfo; import android.hardware.fingerprint.FingerprintManager; import android.metrics.LogMaker; import android.os.Binder; import android.os.Handler; -import android.os.HandlerThread; import android.os.IPowerManager; import android.os.Looper; import android.os.PowerManager; import android.os.RemoteException; import android.os.UserHandle; import android.service.notification.StatusBarNotification; -import android.support.test.filters.SmallTest; import android.support.test.metricshelper.MetricsAsserts; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.testing.TestableLooper.RunWithLooper; import android.util.SparseArray; -import android.view.Gravity; -import android.view.View; import android.view.ViewGroup.LayoutParams; +import androidx.test.filters.SmallTest; + import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.logging.testing.FakeMetricsLogger; @@ -72,8 +69,8 @@ import com.android.systemui.ForegroundServiceController; import com.android.systemui.R; import com.android.systemui.SysuiTestCase; import com.android.systemui.assist.AssistManager; -import com.android.systemui.keyguard.KeyguardViewMediator; import com.android.systemui.classifier.FalsingManager; +import com.android.systemui.keyguard.KeyguardViewMediator; import com.android.systemui.keyguard.WakefulnessLifecycle; import com.android.systemui.recents.misc.SystemServicesProxy; import com.android.systemui.statusbar.ActivatableNotificationView; @@ -81,7 +78,6 @@ import com.android.systemui.statusbar.AppOpsListener; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.ExpandableNotificationRow; import com.android.systemui.statusbar.FooterView; -import com.android.systemui.statusbar.FooterViewButton; import com.android.systemui.statusbar.KeyguardIndicationController; import com.android.systemui.statusbar.NotificationData; import com.android.systemui.statusbar.NotificationData.Entry; @@ -116,7 +112,6 @@ import org.mockito.MockitoAnnotations; import java.io.ByteArrayOutputStream; import java.io.PrintWriter; import java.util.ArrayList; -import java.util.function.Predicate; @SmallTest @RunWith(AndroidTestingRunner.class) diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarWindowViewTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarWindowViewTest.java index a068a5e574eb..d91561845c4a 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarWindowViewTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarWindowViewTest.java @@ -20,19 +20,14 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import android.content.Context; import android.os.SystemClock; -import android.service.notification.StatusBarNotification; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.view.MotionEvent; -import android.view.View; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.systemui.SysuiTestCase; import com.android.systemui.statusbar.DragDownHelper; -import com.android.systemui.statusbar.ExpandableNotificationRow; -import com.android.systemui.statusbar.NotificationData; import com.android.systemui.statusbar.StatusBarState; import org.junit.Before; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/SystemUIDialogTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/SystemUIDialogTest.java index dcd531dc9eb7..b2998410aba8 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/SystemUIDialogTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/SystemUIDialogTest.java @@ -15,6 +15,7 @@ package com.android.systemui.statusbar.phone; import static junit.framework.Assert.assertTrue; + import static org.mockito.Matchers.any; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; @@ -22,10 +23,11 @@ import static org.mockito.Mockito.verify; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper.RunWithLooper; +import androidx.test.filters.SmallTest; + import com.android.systemui.SysuiTestCase; import org.junit.Before; @@ -33,7 +35,6 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; - @RunWith(AndroidTestingRunner.class) @RunWithLooper(setAsMainLooper = true) @SmallTest diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/BluetoothControllerImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/BluetoothControllerImplTest.java index d2463502cb19..79db3acf7c98 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/BluetoothControllerImplTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/BluetoothControllerImplTest.java @@ -15,8 +15,8 @@ package com.android.systemui.statusbar.policy; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -25,11 +25,11 @@ import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothProfile; import android.os.Looper; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.testing.TestableLooper.RunWithLooper; -import android.util.Log; + +import androidx.test.filters.SmallTest; import com.android.settingslib.bluetooth.BluetoothEventManager; import com.android.settingslib.bluetooth.CachedBluetoothDevice; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/CallbackHandlerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/CallbackHandlerTest.java index ed0f9ab224eb..85f60338b6e8 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/CallbackHandlerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/CallbackHandlerTest.java @@ -15,29 +15,33 @@ */ package com.android.systemui.statusbar.policy; +import static junit.framework.Assert.assertEquals; +import static junit.framework.Assert.assertTrue; + +import static org.mockito.Matchers.eq; + import android.os.HandlerThread; -import android.support.test.runner.AndroidJUnit4; import android.telephony.SubscriptionInfo; import android.test.suitebuilder.annotation.SmallTest; + +import androidx.test.runner.AndroidJUnit4; + import com.android.systemui.R; import com.android.systemui.SysuiTestCase; import com.android.systemui.statusbar.policy.NetworkController.EmergencyListener; import com.android.systemui.statusbar.policy.NetworkController.IconState; import com.android.systemui.statusbar.policy.NetworkController.SignalCallback; -import java.util.ArrayList; -import java.util.List; + import org.junit.Before; -import org.junit.runner.RunWith; import org.junit.Test; +import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; -import static junit.framework.Assert.assertTrue; -import static junit.framework.Assert.assertEquals; - -import static org.mockito.Matchers.eq; +import java.util.ArrayList; +import java.util.List; @SmallTest @RunWith(AndroidJUnit4.class) diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/ExtensionControllerImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/ExtensionControllerImplTest.java index b22a6468f5fa..97eaad6151c7 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/ExtensionControllerImplTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/ExtensionControllerImplTest.java @@ -23,11 +23,12 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.content.res.Configuration; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.testing.TestableLooper.RunWithLooper; +import androidx.test.filters.SmallTest; + import com.android.systemui.Dependency; import com.android.systemui.SysuiTestCase; import com.android.systemui.plugins.OverlayPlugin; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/IconLoggerImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/IconLoggerImplTest.java index 5c347301bd8c..7e3507acdcad 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/IconLoggerImplTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/IconLoggerImplTest.java @@ -31,21 +31,20 @@ import static org.mockito.Mockito.when; import static java.lang.Thread.sleep; -import android.metrics.LogMaker; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.testing.TestableLooper.MessageHandler; import android.testing.TestableLooper.RunWithLooper; import android.util.Log; +import androidx.test.filters.SmallTest; + import com.android.internal.logging.MetricsLogger; import com.android.systemui.SysuiTestCase; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.ArgumentMatcher; @RunWith(AndroidTestingRunner.class) @RunWithLooper diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/KeyButtonViewTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/KeyButtonViewTest.java index f85923522b34..39bdf204cd65 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/KeyButtonViewTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/KeyButtonViewTest.java @@ -21,12 +21,13 @@ import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.FIELD_ import static org.mockito.ArgumentMatchers.argThat; import android.metrics.LogMaker; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.testing.TestableLooper.RunWithLooper; import android.view.KeyEvent; +import androidx.test.filters.SmallTest; + import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.systemui.SysuiTestCase; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/LocationControllerImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/LocationControllerImplTest.java index e1b97bdadadc..99023e224818 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/LocationControllerImplTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/LocationControllerImplTest.java @@ -20,11 +20,12 @@ import static org.mockito.Mockito.when; import android.content.Intent; import android.location.LocationManager; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.testing.TestableLooper.RunWithLooper; +import androidx.test.filters.SmallTest; + import com.android.systemui.SysuiTestCase; import com.android.systemui.statusbar.policy.LocationController.LocationChangeCallback; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerEthernetTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerEthernetTest.java index eefdeee1001e..93cf3e8317ce 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerEthernetTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerEthernetTest.java @@ -1,7 +1,8 @@ package com.android.systemui.statusbar.policy; +import static junit.framework.Assert.assertEquals; + import android.net.NetworkCapabilities; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper.RunWithLooper; @@ -13,8 +14,6 @@ import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import org.mockito.Mockito; -import static junit.framework.Assert.assertEquals; - @SmallTest @RunWith(AndroidTestingRunner.class) @RunWithLooper diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerSignalTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerSignalTest.java index c24336d3cbff..bcbba8b163af 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerSignalTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerSignalTest.java @@ -15,11 +15,16 @@ */ package com.android.systemui.statusbar.policy; +import static junit.framework.Assert.assertEquals; +import static junit.framework.Assert.assertFalse; +import static junit.framework.Assert.assertTrue; + +import static org.mockito.Mockito.mock; + import android.content.Intent; import android.net.ConnectivityManager; import android.net.NetworkCapabilities; import android.os.Looper; -import android.support.test.runner.AndroidJUnit4; import android.telephony.ServiceState; import android.telephony.SignalStrength; import android.telephony.SubscriptionInfo; @@ -42,11 +47,6 @@ import org.mockito.Mockito; import java.util.ArrayList; import java.util.List; -import static junit.framework.Assert.assertEquals; -import static junit.framework.Assert.assertTrue; -import static junit.framework.Assert.assertFalse; -import static org.mockito.Mockito.mock; - @SmallTest @RunWith(AndroidTestingRunner.class) @RunWithLooper diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/RemoteInputQuickSettingsDisablerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/RemoteInputQuickSettingsDisablerTest.java index 3b47eae03fa0..02c9b925c0fa 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/RemoteInputQuickSettingsDisablerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/RemoteInputQuickSettingsDisablerTest.java @@ -14,9 +14,8 @@ package com.android.systemui.statusbar.policy; -import static com.google.common.truth.Truth.assertThat; - import static junit.framework.TestCase.assertTrue; + import static org.junit.Assert.assertFalse; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.Mockito.atLeastOnce; @@ -24,9 +23,10 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import android.content.res.Configuration; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.systemui.SysuiTestCase; import com.android.systemui.statusbar.CommandQueue; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/RemoteInputViewTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/RemoteInputViewTest.java index a6fa4f54067d..36c89b8c6487 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/RemoteInputViewTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/RemoteInputViewTest.java @@ -22,13 +22,14 @@ import android.content.Intent; import android.content.IntentFilter; import android.content.pm.ShortcutManager; import android.os.Handler; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.view.View; import android.widget.EditText; import android.widget.ImageButton; +import androidx.test.filters.SmallTest; + import com.android.systemui.Dependency; import com.android.systemui.R; import com.android.systemui.SysuiTestCase; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/SecurityControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/SecurityControllerTest.java index f76de5a03d2d..552ecc617c4e 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/SecurityControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/SecurityControllerTest.java @@ -23,11 +23,9 @@ import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyInt; import static org.mockito.Matchers.argThat; import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; -import static org.mockito.Mockito.doThrow; -import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; import android.app.admin.DevicePolicyManager; import android.content.ComponentName; @@ -37,28 +35,26 @@ import android.content.pm.StringParceledListSlice; import android.content.pm.UserInfo; import android.net.ConnectivityManager; import android.net.ConnectivityManager.NetworkCallback; -import android.net.NetworkCapabilities; import android.net.NetworkRequest; import android.os.UserManager; import android.security.IKeyChainService; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; -import com.android.systemui.statusbar.policy.SecurityController.SecurityControllerCallback; -import com.android.systemui.SysuiTestCase; +import androidx.test.runner.AndroidJUnit4; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.TimeUnit; -import java.util.List; +import com.android.systemui.SysuiTestCase; +import com.android.systemui.statusbar.policy.SecurityController.SecurityControllerCallback; import org.junit.After; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; @SmallTest @RunWith(AndroidJUnit4.class) diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/SmartReplyViewTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/SmartReplyViewTest.java index c573ca88a471..dbc88a0be435 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/SmartReplyViewTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/SmartReplyViewTest.java @@ -33,7 +33,6 @@ import android.content.Intent; import android.content.IntentFilter; import android.content.res.Resources; import android.service.notification.StatusBarNotification; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.view.View; @@ -41,6 +40,8 @@ import android.view.ViewGroup; import android.widget.Button; import android.widget.LinearLayout; +import androidx.test.filters.SmallTest; + import com.android.keyguard.KeyguardHostView.OnDismissAction; import com.android.systemui.R; import com.android.systemui.SysuiTestCase; @@ -48,8 +49,6 @@ import com.android.systemui.statusbar.NotificationData; import com.android.systemui.statusbar.SmartReplyController; import com.android.systemui.statusbar.phone.KeyguardDismissUtil; -import java.util.concurrent.atomic.AtomicReference; - import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -57,6 +56,8 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; +import java.util.concurrent.atomic.AtomicReference; + @RunWith(AndroidTestingRunner.class) @TestableLooper.RunWithLooper @SmallTest diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/ZenModeControllerImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/ZenModeControllerImplTest.java index 7437e83469c6..ee5f2ed03e2c 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/ZenModeControllerImplTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/ZenModeControllerImplTest.java @@ -27,10 +27,11 @@ import android.os.Handler; import android.os.Looper; import android.provider.Settings; import android.service.notification.ZenModeConfig; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper.RunWithLooper; +import androidx.test.filters.SmallTest; + import com.android.systemui.SysuiTestCase; import com.android.systemui.statusbar.policy.ZenModeController.Callback; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/stack/NotificationChildrenContainerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/stack/NotificationChildrenContainerTest.java index 8a74019dca36..2b0ad8041893 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/stack/NotificationChildrenContainerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/stack/NotificationChildrenContainerTest.java @@ -16,13 +16,13 @@ package com.android.systemui.statusbar.stack; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper.RunWithLooper; import android.view.NotificationHeaderView; import android.view.View; +import androidx.test.filters.SmallTest; + import com.android.systemui.SysuiTestCase; import com.android.systemui.statusbar.ExpandableNotificationRow; import com.android.systemui.statusbar.NotificationTestHelper; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/stack/NotificationRoundnessManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/stack/NotificationRoundnessManagerTest.java index 16e69f455103..01df7833195d 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/stack/NotificationRoundnessManagerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/stack/NotificationRoundnessManagerTest.java @@ -20,11 +20,12 @@ import static org.mockito.Mockito.atLeast; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper.RunWithLooper; import android.view.View; +import androidx.test.filters.SmallTest; + import com.android.systemui.SysuiTestCase; import com.android.systemui.statusbar.ExpandableNotificationRow; import com.android.systemui.statusbar.NotificationTestHelper; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayoutTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayoutTest.java index 5400e3bab678..aaa691d1d9bd 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayoutTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayoutTest.java @@ -26,9 +26,9 @@ import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import android.support.test.annotation.UiThreadTest; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; +import androidx.test.annotation.UiThreadTest; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.systemui.ExpandHelper; import com.android.systemui.R; diff --git a/packages/SystemUI/tests/src/com/android/systemui/tuner/TunablePaddingTest.java b/packages/SystemUI/tests/src/com/android/systemui/tuner/TunablePaddingTest.java index 3bfefe7b4d9b..2af526bcc2f1 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/tuner/TunablePaddingTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/tuner/TunablePaddingTest.java @@ -20,14 +20,14 @@ import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import static org.mockito.Mockito.withSettings; -import android.support.test.filters.SmallTest; import android.testing.LeakCheck.Tracker; import android.util.DisplayMetrics; import android.view.View; import android.view.WindowManager; +import androidx.test.filters.SmallTest; + import com.android.systemui.utils.leaks.LeakCheckedTest; import org.junit.Before; diff --git a/packages/SystemUI/tests/src/com/android/systemui/util/AsyncSensorManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/util/AsyncSensorManagerTest.java index 469bdc0918d9..6b605d732976 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/util/AsyncSensorManagerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/util/AsyncSensorManagerTest.java @@ -24,9 +24,10 @@ import static org.mockito.Mockito.verifyNoMoreInteractions; import android.hardware.SensorEventListener; import android.hardware.SensorManager; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; +import androidx.test.filters.SmallTest; + import com.android.systemui.SysuiTestCase; import com.android.systemui.utils.hardware.FakeSensorManager; diff --git a/packages/SystemUI/tests/src/com/android/systemui/util/ChannelsTest.java b/packages/SystemUI/tests/src/com/android/systemui/util/ChannelsTest.java index 50b4f3f15d8a..f5bcb0b6976f 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/util/ChannelsTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/util/ChannelsTest.java @@ -15,22 +15,20 @@ package com.android.systemui.util; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; -import static org.mockito.Matchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; -import android.app.Notification; import android.app.NotificationChannel; import android.app.NotificationManager; import android.content.Context; import android.net.Uri; import android.provider.Settings; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; import android.util.ArraySet; + +import androidx.test.runner.AndroidJUnit4; + import com.android.systemui.SysuiTestCase; import com.android.systemui.util.NotificationChannels; diff --git a/packages/SystemUI/tests/src/com/android/systemui/util/leak/GarbageMonitorTest.java b/packages/SystemUI/tests/src/com/android/systemui/util/leak/GarbageMonitorTest.java index c095472e0c62..bcc20c2d1b37 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/util/leak/GarbageMonitorTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/util/leak/GarbageMonitorTest.java @@ -24,11 +24,12 @@ import static org.mockito.Mockito.when; import android.content.Context; import android.os.Looper; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.testing.TestableLooper.RunWithLooper; +import androidx.test.filters.SmallTest; + import com.android.systemui.SysuiTestCase; import org.junit.Before; diff --git a/packages/SystemUI/tests/src/com/android/systemui/util/leak/LeakDetectorTest.java b/packages/SystemUI/tests/src/com/android/systemui/util/leak/LeakDetectorTest.java index 11bb398501de..c68c9206a2d8 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/util/leak/LeakDetectorTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/util/leak/LeakDetectorTest.java @@ -17,8 +17,8 @@ package com.android.systemui.util.leak; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.systemui.SysuiTestCase; import com.android.systemui.util.leak.ReferenceTestUtils.CollectionWaiter; @@ -28,8 +28,6 @@ import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; -import java.io.FileDescriptor; -import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.PrintWriter; import java.util.ArrayList; diff --git a/packages/SystemUI/tests/src/com/android/systemui/util/leak/LeakReporterTest.java b/packages/SystemUI/tests/src/com/android/systemui/util/leak/LeakReporterTest.java index 6711ce8afa35..abec80eef3f9 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/util/leak/LeakReporterTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/util/leak/LeakReporterTest.java @@ -24,8 +24,9 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import android.app.NotificationManager; -import android.support.test.filters.MediumTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.MediumTest; +import androidx.test.runner.AndroidJUnit4; import com.android.systemui.SysuiTestCase; diff --git a/packages/SystemUI/tests/src/com/android/systemui/util/leak/ReferenceTestUtilsTest.java b/packages/SystemUI/tests/src/com/android/systemui/util/leak/ReferenceTestUtilsTest.java index b8a3e39f665c..726187d12e3c 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/util/leak/ReferenceTestUtilsTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/util/leak/ReferenceTestUtilsTest.java @@ -18,8 +18,8 @@ package com.android.systemui.util.leak; import static org.junit.Assert.assertEquals; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.systemui.SysuiTestCase; diff --git a/packages/SystemUI/tests/src/com/android/systemui/util/leak/WeakIdentityHashMapTest.java b/packages/SystemUI/tests/src/com/android/systemui/util/leak/WeakIdentityHashMapTest.java index ce6212ef5aae..2b28e2f590ec 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/util/leak/WeakIdentityHashMapTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/util/leak/WeakIdentityHashMapTest.java @@ -20,8 +20,8 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotSame; import static org.junit.Assert.assertTrue; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.systemui.SysuiTestCase; import com.android.systemui.util.leak.ReferenceTestUtils.CollectionWaiter; diff --git a/packages/SystemUI/tests/src/com/android/systemui/util/wakelock/KeepAwakeAnimationListenerTest.java b/packages/SystemUI/tests/src/com/android/systemui/util/wakelock/KeepAwakeAnimationListenerTest.java index 43942f72993e..f91e313fd0c8 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/util/wakelock/KeepAwakeAnimationListenerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/util/wakelock/KeepAwakeAnimationListenerTest.java @@ -20,10 +20,11 @@ import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import android.animation.Animator; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; +import androidx.test.filters.SmallTest; + import com.android.systemui.SysuiTestCase; import org.junit.Before; diff --git a/packages/SystemUI/tests/src/com/android/systemui/util/wakelock/SettableWakeLockTest.java b/packages/SystemUI/tests/src/com/android/systemui/util/wakelock/SettableWakeLockTest.java index 39316eda1565..73a9e7eaf273 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/util/wakelock/SettableWakeLockTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/util/wakelock/SettableWakeLockTest.java @@ -21,8 +21,8 @@ import static junit.framework.TestCase.assertTrue; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.systemui.SysuiTestCase; diff --git a/packages/SystemUI/tests/src/com/android/systemui/util/wakelock/WakeLockTest.java b/packages/SystemUI/tests/src/com/android/systemui/util/wakelock/WakeLockTest.java index d925364b0e69..4682b863518b 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/util/wakelock/WakeLockTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/util/wakelock/WakeLockTest.java @@ -19,11 +19,10 @@ package com.android.systemui.util.wakelock; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; -import android.content.Context; import android.os.PowerManager; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.systemui.SysuiTestCase; diff --git a/packages/SystemUI/tests/src/com/android/systemui/volume/UtilTest.java b/packages/SystemUI/tests/src/com/android/systemui/volume/UtilTest.java index 6b20a1e0b937..fb82b8fed76c 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/volume/UtilTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/volume/UtilTest.java @@ -16,7 +16,8 @@ package com.android.systemui.volume; import android.media.MediaMetadata; -import android.support.test.filters.SmallTest; + +import androidx.test.filters.SmallTest; import com.android.systemui.SysuiTestCase; diff --git a/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogControllerImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogControllerImplTest.java index a4ed45997d2a..f4d0854b2c9f 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogControllerImplTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogControllerImplTest.java @@ -25,7 +25,9 @@ import static org.mockito.Mockito.when; import android.content.Context; import android.media.AudioManager; import android.media.session.MediaSession; -import android.support.test.filters.SmallTest; + +import androidx.test.filters.SmallTest; + import com.android.systemui.SysuiTestCase; import com.android.systemui.keyguard.WakefulnessLifecycle; import com.android.systemui.statusbar.phone.StatusBar; diff --git a/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogImplTest.java index 43d60e41a6b2..329bbf4b75d9 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogImplTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogImplTest.java @@ -16,32 +16,19 @@ package com.android.systemui.volume; -import static android.media.AudioManager.RINGER_MODE_NORMAL; -import static android.media.AudioManager.RINGER_MODE_SILENT; -import static android.media.AudioManager.RINGER_MODE_VIBRATE; -import static android.media.AudioManager.STREAM_RING; - -import static com.android.systemui.volume.Events.DISMISS_REASON_UNKNOWN; -import static com.android.systemui.volume.Events.SHOW_REASON_UNKNOWN; import static com.android.systemui.volume.VolumeDialogControllerImpl.STREAMS; import static junit.framework.Assert.assertTrue; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - import android.app.KeyguardManager; import android.media.AudioManager; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; -import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; -import android.widget.ImageView; -import com.android.systemui.R; +import androidx.test.filters.SmallTest; + import com.android.systemui.SysuiTestCase; import com.android.systemui.plugins.VolumeDialogController; import com.android.systemui.plugins.VolumeDialogController.State; @@ -49,7 +36,6 @@ import com.android.systemui.statusbar.policy.AccessibilityManagerWrapper; import org.junit.Before; import org.junit.Ignore; -import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index 446d186cc123..ac71ae5c2114 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -1573,8 +1573,7 @@ public class ConnectivityService extends IConnectivityManager.Stub public boolean isActiveNetworkMetered() { enforceAccessPermission(); - final int uid = Binder.getCallingUid(); - final NetworkCapabilities caps = getUnfilteredActiveNetworkState(uid).networkCapabilities; + final NetworkCapabilities caps = getNetworkCapabilities(getActiveNetwork()); if (caps != null) { return !caps.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_METERED); } else { @@ -4096,12 +4095,14 @@ public class ConnectivityService extends IConnectivityManager.Stub } /** - * Return the information of all ongoing VPNs. This method is used by NetworkStatsService - * and not available in ConnectivityManager. + * Return the information of all ongoing VPNs. + * + * <p>This method is used to update NetworkStatsService. + * + * <p>Must be called on the handler thread. */ - @Override - public VpnInfo[] getAllVpnInfo() { - enforceConnectivityInternalPermission(); + private VpnInfo[] getAllVpnInfo() { + ensureRunningOnConnectivityServiceThread(); synchronized (mVpns) { if (mLockdownEnabled) { return new VpnInfo[0]; @@ -5563,6 +5564,8 @@ public class ConnectivityService extends IConnectivityManager.Stub } public void handleUpdateLinkProperties(NetworkAgentInfo nai, LinkProperties newLp) { + ensureRunningOnConnectivityServiceThread(); + if (getNetworkAgentInfoForNetId(nai.network.netId) != nai) { // Ignore updates for disconnected networks return; @@ -6397,6 +6400,7 @@ public class ConnectivityService extends IConnectivityManager.Stub * Must be called on the handler thread. */ private Network[] getDefaultNetworks() { + ensureRunningOnConnectivityServiceThread(); ArrayList<Network> defaultNetworks = new ArrayList<>(); NetworkAgentInfo defaultNetwork = getDefaultNetwork(); for (NetworkAgentInfo nai : mNetworkAgentInfos.values()) { @@ -6412,8 +6416,15 @@ public class ConnectivityService extends IConnectivityManager.Stub * properties tracked by NetworkStatsService on an active iface has changed. */ private void notifyIfacesChangedForNetworkStats() { + ensureRunningOnConnectivityServiceThread(); + String activeIface = null; + LinkProperties activeLinkProperties = getActiveLinkProperties(); + if (activeLinkProperties != null) { + activeIface = activeLinkProperties.getInterfaceName(); + } try { - mStatsService.forceUpdateIfaces(getDefaultNetworks()); + mStatsService.forceUpdateIfaces( + getDefaultNetworks(), getAllVpnInfo(), getAllNetworkState(), activeIface); } catch (Exception ignored) { } } diff --git a/services/core/java/com/android/server/TelephonyRegistry.java b/services/core/java/com/android/server/TelephonyRegistry.java index b4d45d475917..d8a54f7ce6a8 100644 --- a/services/core/java/com/android/server/TelephonyRegistry.java +++ b/services/core/java/com/android/server/TelephonyRegistry.java @@ -1454,7 +1454,7 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { synchronized (mRecords) { mPreciseDataConnectionState = new PreciseDataConnectionState( TelephonyManager.DATA_UNKNOWN,TelephonyManager.NETWORK_TYPE_UNKNOWN, - ApnSetting.getApnTypesBitmaskFromString(apnType), "", null, + ApnSetting.getApnTypesBitmaskFromString(apnType), null, null, DataFailCause.NONE); for (Record r : mRecords) { if (r.matchPhoneStateListenerEvent( @@ -1470,7 +1470,7 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { } broadcastDataConnectionFailed(apnType, subId); broadcastPreciseDataConnectionStateChanged(TelephonyManager.DATA_UNKNOWN, - TelephonyManager.NETWORK_TYPE_UNKNOWN, apnType, "", null, + TelephonyManager.NETWORK_TYPE_UNKNOWN, apnType, null, null, DataFailCause.NONE); } diff --git a/services/core/java/com/android/server/connectivity/TcpKeepaliveController.java b/services/core/java/com/android/server/connectivity/TcpKeepaliveController.java index 8a9ac23cf06a..65de83b2045c 100644 --- a/services/core/java/com/android/server/connectivity/TcpKeepaliveController.java +++ b/services/core/java/com/android/server/connectivity/TcpKeepaliveController.java @@ -16,10 +16,12 @@ package com.android.server.connectivity; import static android.net.SocketKeepalive.DATA_RECEIVED; +import static android.net.SocketKeepalive.ERROR_HARDWARE_UNSUPPORTED; import static android.net.SocketKeepalive.ERROR_INVALID_SOCKET; import static android.net.SocketKeepalive.ERROR_SOCKET_NOT_IDLE; import static android.os.MessageQueue.OnFileDescriptorEventListener.EVENT_ERROR; import static android.os.MessageQueue.OnFileDescriptorEventListener.EVENT_INPUT; +import static android.system.OsConstants.ENOPROTOOPT; import static android.system.OsConstants.FIONREAD; import static android.system.OsConstants.IPPROTO_TCP; import static android.system.OsConstants.TIOCOUTQ; @@ -179,12 +181,13 @@ public class TcpKeepaliveController { trw = NetworkUtils.getTcpRepairWindow(fd); } catch (ErrnoException e) { Log.e(TAG, "Exception reading TCP state from socket", e); - try { - Os.setsockoptInt(fd, IPPROTO_TCP, TCP_REPAIR, TCP_REPAIR_OFF); - } catch (ErrnoException ex) { - Log.e(TAG, "Exception while turning off repair mode due to exception", ex); + if (e.errno == ENOPROTOOPT) { + // ENOPROTOOPT may happen in kernel version lower than 4.8. + // Treat it as ERROR_HARDWARE_UNSUPPORTED. + throw new InvalidSocketException(ERROR_HARDWARE_UNSUPPORTED, e); + } else { + throw new InvalidSocketException(ERROR_INVALID_SOCKET, e); } - throw new InvalidSocketException(ERROR_INVALID_SOCKET, e); } finally { dropAllIncomingPackets(fd, false); } diff --git a/services/core/java/com/android/server/connectivity/Tethering.java b/services/core/java/com/android/server/connectivity/Tethering.java index c91e1a12078e..13ff30d6ad3e 100644 --- a/services/core/java/com/android/server/connectivity/Tethering.java +++ b/services/core/java/com/android/server/connectivity/Tethering.java @@ -289,8 +289,8 @@ public class Tethering extends BaseNetworkObserver { } private void maybeUpdateConfiguration() { - final int dunCheck = TetheringConfiguration.checkDunRequired(mContext); - if (dunCheck == mConfig.dunCheck) return; + final boolean isDunRequired = TetheringConfiguration.checkDunRequired(mContext); + if (isDunRequired == mConfig.isDunRequired) return; updateConfiguration(); } diff --git a/services/core/java/com/android/server/connectivity/tethering/TetheringConfiguration.java b/services/core/java/com/android/server/connectivity/tethering/TetheringConfiguration.java index 8a46ff18979f..935b79546d63 100644 --- a/services/core/java/com/android/server/connectivity/tethering/TetheringConfiguration.java +++ b/services/core/java/com/android/server/connectivity/tethering/TetheringConfiguration.java @@ -67,11 +67,6 @@ public class TetheringConfiguration { private static final String[] EMPTY_STRING_ARRAY = new String[0]; - @VisibleForTesting - public static final int DUN_NOT_REQUIRED = 0; - public static final int DUN_REQUIRED = 1; - public static final int DUN_UNSPECIFIED = 2; - // Default ranges used for the legacy DHCP server. // USB is 192.168.42.1 and 255.255.255.0 // Wifi is 192.168.43.1 and 255.255.255.0 @@ -90,7 +85,6 @@ public class TetheringConfiguration { public final String[] tetherableUsbRegexs; public final String[] tetherableWifiRegexs; public final String[] tetherableBluetoothRegexs; - public final int dunCheck; public final boolean isDunRequired; public final boolean chooseUpstreamAutomatically; public final Collection<Integer> preferredUpstreamIfaceTypes; @@ -116,12 +110,10 @@ public class TetheringConfiguration { tetherableWifiRegexs = getResourceStringArray(res, config_tether_wifi_regexs); tetherableBluetoothRegexs = getResourceStringArray(res, config_tether_bluetooth_regexs); - dunCheck = checkDunRequired(ctx); - configLog.log("DUN check returned: " + dunCheckString(dunCheck)); + isDunRequired = checkDunRequired(ctx); chooseUpstreamAutomatically = getResourceBoolean(res, config_tether_upstream_automatic); - preferredUpstreamIfaceTypes = getUpstreamIfaceTypes(res, dunCheck); - isDunRequired = preferredUpstreamIfaceTypes.contains(TYPE_MOBILE_DUN); + preferredUpstreamIfaceTypes = getUpstreamIfaceTypes(res, isDunRequired); legacyDhcpRanges = getLegacyDhcpRanges(res); defaultIPv4DNS = copy(DEFAULT_IPV4_DNS); @@ -230,53 +222,43 @@ public class TetheringConfiguration { return upstreamNames; } - public static int checkDunRequired(Context ctx) { + /** Check whether dun is required. */ + public static boolean checkDunRequired(Context ctx) { final TelephonyManager tm = (TelephonyManager) ctx.getSystemService(TELEPHONY_SERVICE); - return (tm != null) ? tm.getTetherApnRequired() : DUN_UNSPECIFIED; - } - - private static String dunCheckString(int dunCheck) { - switch (dunCheck) { - case DUN_NOT_REQUIRED: return "DUN_NOT_REQUIRED"; - case DUN_REQUIRED: return "DUN_REQUIRED"; - case DUN_UNSPECIFIED: return "DUN_UNSPECIFIED"; - default: - return String.format("UNKNOWN (%s)", dunCheck); - } + return (tm != null) ? tm.getTetherApnRequired() : false; } - private static Collection<Integer> getUpstreamIfaceTypes(Resources res, int dunCheck) { + private static Collection<Integer> getUpstreamIfaceTypes(Resources res, boolean dunRequired) { final int[] ifaceTypes = res.getIntArray(config_tether_upstream_types); final ArrayList<Integer> upstreamIfaceTypes = new ArrayList<>(ifaceTypes.length); for (int i : ifaceTypes) { switch (i) { case TYPE_MOBILE: case TYPE_MOBILE_HIPRI: - if (dunCheck == DUN_REQUIRED) continue; + if (dunRequired) continue; break; case TYPE_MOBILE_DUN: - if (dunCheck == DUN_NOT_REQUIRED) continue; + if (!dunRequired) continue; break; } upstreamIfaceTypes.add(i); } // Fix up upstream interface types for DUN or mobile. NOTE: independent - // of the value of |dunCheck|, cell data of one form or another is + // of the value of |dunRequired|, cell data of one form or another is // *always* an upstream, regardless of the upstream interface types // specified by configuration resources. - if (dunCheck == DUN_REQUIRED) { + if (dunRequired) { appendIfNotPresent(upstreamIfaceTypes, TYPE_MOBILE_DUN); - } else if (dunCheck == DUN_NOT_REQUIRED) { - appendIfNotPresent(upstreamIfaceTypes, TYPE_MOBILE); - appendIfNotPresent(upstreamIfaceTypes, TYPE_MOBILE_HIPRI); } else { - // Fix upstream interface types for case DUN_UNSPECIFIED. // Do not modify if a cellular interface type is already present in the // upstream interface types. Add TYPE_MOBILE and TYPE_MOBILE_HIPRI if no // cellular interface types are found in the upstream interface types. - if (!(containsOneOf(upstreamIfaceTypes, - TYPE_MOBILE_DUN, TYPE_MOBILE, TYPE_MOBILE_HIPRI))) { + // This preserves backwards compatibility and prevents the DUN and default + // mobile types incorrectly appearing together, which could happen on + // previous releases in the common case where checkDunRequired returned + // DUN_UNSPECIFIED. + if (!containsOneOf(upstreamIfaceTypes, TYPE_MOBILE, TYPE_MOBILE_HIPRI)) { upstreamIfaceTypes.add(TYPE_MOBILE); upstreamIfaceTypes.add(TYPE_MOBILE_HIPRI); } diff --git a/services/core/java/com/android/server/net/NetworkStatsService.java b/services/core/java/com/android/server/net/NetworkStatsService.java index 2e7cbc684c3e..8fa435cd9381 100644 --- a/services/core/java/com/android/server/net/NetworkStatsService.java +++ b/services/core/java/com/android/server/net/NetworkStatsService.java @@ -82,7 +82,6 @@ import android.content.IntentFilter; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.net.DataUsageRequest; -import android.net.IConnectivityManager; import android.net.INetworkManagementEventObserver; import android.net.INetworkStatsService; import android.net.INetworkStatsSession; @@ -195,8 +194,6 @@ public class NetworkStatsService extends INetworkStatsService.Stub { private final boolean mUseBpfTrafficStats; - private IConnectivityManager mConnManager; - @VisibleForTesting public static final String ACTION_NETWORK_STATS_POLL = "com.android.server.action.NETWORK_STATS_POLL"; @@ -258,6 +255,7 @@ public class NetworkStatsService extends INetworkStatsService.Stub { private final ArrayMap<String, NetworkIdentitySet> mActiveUidIfaces = new ArrayMap<>(); /** Current default active iface. */ + @GuardedBy("mStatsLock") private String mActiveIface; /** Set of any ifaces associated with mobile networks since boot. */ @@ -268,6 +266,10 @@ public class NetworkStatsService extends INetworkStatsService.Stub { @GuardedBy("mStatsLock") private Network[] mDefaultNetworks = new Network[0]; + /** Set containing info about active VPNs and their underlying networks. */ + @GuardedBy("mStatsLock") + private VpnInfo[] mVpnInfos = new VpnInfo[0]; + private final DropBoxNonMonotonicObserver mNonMonotonicObserver = new DropBoxNonMonotonicObserver(); @@ -375,10 +377,6 @@ public class NetworkStatsService extends INetworkStatsService.Stub { mHandlerCallback = callback; } - public void bindConnectivityManager(IConnectivityManager connManager) { - mConnManager = checkNotNull(connManager, "missing IConnectivityManager"); - } - public void systemReady() { mSystemReady = true; @@ -857,13 +855,17 @@ public class NetworkStatsService extends INetworkStatsService.Stub { } @Override - public void forceUpdateIfaces(Network[] defaultNetworks) { + public void forceUpdateIfaces( + Network[] defaultNetworks, + VpnInfo[] vpnArray, + NetworkState[] networkStates, + String activeIface) { mContext.enforceCallingOrSelfPermission(READ_NETWORK_USAGE_HISTORY, TAG); assertBandwidthControlEnabled(); final long token = Binder.clearCallingIdentity(); try { - updateIfaces(defaultNetworks); + updateIfaces(defaultNetworks, vpnArray, networkStates, activeIface); } finally { Binder.restoreCallingIdentity(token); } @@ -1127,11 +1129,17 @@ public class NetworkStatsService extends INetworkStatsService.Stub { } }; - private void updateIfaces(Network[] defaultNetworks) { + private void updateIfaces( + Network[] defaultNetworks, + VpnInfo[] vpnArray, + NetworkState[] networkStates, + String activeIface) { synchronized (mStatsLock) { mWakeLock.acquire(); try { - updateIfacesLocked(defaultNetworks); + mVpnInfos = vpnArray; + mActiveIface = activeIface; + updateIfacesLocked(defaultNetworks, networkStates); } finally { mWakeLock.release(); } @@ -1145,7 +1153,7 @@ public class NetworkStatsService extends INetworkStatsService.Stub { * {@link NetworkIdentitySet}. */ @GuardedBy("mStatsLock") - private void updateIfacesLocked(Network[] defaultNetworks) { + private void updateIfacesLocked(Network[] defaultNetworks, NetworkState[] states) { if (!mSystemReady) return; if (LOGV) Slog.v(TAG, "updateIfacesLocked()"); @@ -1157,18 +1165,6 @@ public class NetworkStatsService extends INetworkStatsService.Stub { // will be persisted during next alarm poll event. performPollLocked(FLAG_PERSIST_NETWORK); - final NetworkState[] states; - final LinkProperties activeLink; - try { - states = mConnManager.getAllNetworkState(); - activeLink = mConnManager.getActiveLinkProperties(); - } catch (RemoteException e) { - // ignored; service lives in system_server - return; - } - - mActiveIface = activeLink != null ? activeLink.getInterfaceName() : null; - // Rebuild active interfaces based on connected networks mActiveIfaces.clear(); mActiveUidIfaces.clear(); @@ -1280,7 +1276,7 @@ public class NetworkStatsService extends INetworkStatsService.Stub { Trace.traceEnd(TRACE_TAG_NETWORK); // For per-UID stats, pass the VPN info so VPN traffic is reattributed to responsible apps. - VpnInfo[] vpnArray = mConnManager.getAllVpnInfo(); + VpnInfo[] vpnArray = mVpnInfos; Trace.traceBegin(TRACE_TAG_NETWORK, "recordUid"); mUidRecorder.recordSnapshotLocked(uidSnapshot, mActiveUidIfaces, vpnArray, currentTime); Trace.traceEnd(TRACE_TAG_NETWORK); diff --git a/services/core/java/com/android/server/pm/PackageDexOptimizer.java b/services/core/java/com/android/server/pm/PackageDexOptimizer.java index 248a2f6301cd..8018c2b7c27d 100644 --- a/services/core/java/com/android/server/pm/PackageDexOptimizer.java +++ b/services/core/java/com/android/server/pm/PackageDexOptimizer.java @@ -25,10 +25,12 @@ import android.content.pm.dex.ArtManager; import android.content.pm.dex.DexMetadataHelper; import android.os.FileUtils; import android.os.PowerManager; +import android.os.Process; import android.os.SystemClock; import android.os.SystemProperties; import android.os.UserHandle; import android.os.WorkSource; +import android.os.storage.StorageManager; import android.util.Log; import android.util.Slog; @@ -148,6 +150,51 @@ public class PackageDexOptimizer { } } + int performDexOpt(SharedLibraryInfo info, String[] instructionSets, DexoptOptions options) { + String classLoaderContext = DexoptUtils.getClassLoaderContext(info); + final String[] dexCodeInstructionSets = getDexCodeInstructionSets(instructionSets); + String compilerFilter = PackageManagerServiceCompilerMapping.getCompilerFilterForReason( + PackageManagerService.REASON_SHARED); + int result = DEX_OPT_SKIPPED; + for (String instructionSet : dexCodeInstructionSets) { + int dexoptNeeded = getDexoptNeeded( + info.getPath(), instructionSet, compilerFilter, + classLoaderContext, false /* newProfile */, + false /* downgrade */); + if (Math.abs(dexoptNeeded) == DexFile.NO_DEXOPT_NEEDED) { + continue; + } + // Special string recognized by installd. + final String packageName = "*"; + final String outputPath = null; + int dexFlags = DEXOPT_PUBLIC + | (options.isBootComplete() ? DEXOPT_BOOTCOMPLETE : 0) + | (options.isDexoptIdleBackgroundJob() ? DEXOPT_IDLE_BACKGROUND_JOB : 0); + dexFlags = adjustDexoptFlags(dexFlags); + final String uuid = StorageManager.UUID_SYSTEM; + final String seInfo = null; + final int targetSdkVersion = 0; // Builtin libraries targets the system's SDK version + try { + mInstaller.dexopt(info.getPath(), Process.SYSTEM_UID, packageName, + instructionSet, dexoptNeeded, outputPath, dexFlags, compilerFilter, + uuid, classLoaderContext, seInfo, false /* downgrade */, + targetSdkVersion, /*profileName*/ null, /*dexMetadataPath*/ null, + getReasonName(options.getCompilationReason())); + // The end result is: + // - FAILED if any path failed, + // - PERFORMED if at least one path needed compilation, + // - SKIPPED when all paths are up to date + if (result != DEX_OPT_FAILED) { + result = DEX_OPT_PERFORMED; + } + } catch (InstallerException e) { + Slog.w(TAG, "Failed to dexopt", e); + result = DEX_OPT_FAILED; + } + } + return result; + } + /** * Performs dexopt on all code paths of the given package. * It assumes the install lock is held. diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 96441c5f7d18..a98e2d3fd0da 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -9443,18 +9443,27 @@ public class PackageManagerService extends IPackageManager.Stub // at boot, or background job), the passed 'targetCompilerFilter' stays the same, // and the first package that uses the library will dexopt it. The // others will see that the compiled code for the library is up to date. - Collection<PackageParser.Package> deps = findSharedNonSystemLibraries(p); + Collection<SharedLibraryInfo> deps = findSharedLibraries(p); final String[] instructionSets = getAppDexInstructionSets(p.applicationInfo); if (!deps.isEmpty()) { DexoptOptions libraryOptions = new DexoptOptions(options.getPackageName(), options.getCompilationReason(), options.getCompilerFilter(), options.getSplitName(), options.getFlags() | DexoptOptions.DEXOPT_AS_SHARED_LIBRARY); - for (PackageParser.Package depPackage : deps) { - // TODO: Analyze and investigate if we (should) profile libraries. - pdo.performDexOpt(depPackage, instructionSets, - getOrCreateCompilerPackageStats(depPackage), - mDexManager.getPackageUseInfoOrDefault(depPackage.packageName), libraryOptions); + for (SharedLibraryInfo info : deps) { + PackageParser.Package depPackage = null; + synchronized (mPackages) { + depPackage = mPackages.get(info.getPackageName()); + } + if (depPackage != null) { + // TODO: Analyze and investigate if we (should) profile libraries. + pdo.performDexOpt(depPackage, instructionSets, + getOrCreateCompilerPackageStats(depPackage), + mDexManager.getPackageUseInfoOrDefault(depPackage.packageName), + libraryOptions); + } else { + pdo.performDexOpt(info, instructionSets, libraryOptions); + } } } return pdo.performDexOpt(p, instructionSets, @@ -9494,63 +9503,48 @@ public class PackageManagerService extends IPackageManager.Stub return BackgroundDexOptService.runIdleOptimizationsNow(this, mContext, packageNames); } - List<PackageParser.Package> findSharedNonSystemLibraries(PackageParser.Package p) { - if (p.usesLibraries != null || p.usesOptionalLibraries != null - || p.usesStaticLibraries != null) { - ArrayList<PackageParser.Package> retValue = new ArrayList<>(); + private static List<SharedLibraryInfo> findSharedLibraries(PackageParser.Package p) { + if (p.usesLibraryInfos != null) { + ArrayList<SharedLibraryInfo> retValue = new ArrayList<>(); Set<String> collectedNames = new HashSet<>(); - findSharedNonSystemLibrariesRecursive(p, retValue, collectedNames); - - retValue.remove(p); - + for (SharedLibraryInfo info : p.usesLibraryInfos) { + findSharedLibrariesRecursive(info, retValue, collectedNames); + } return retValue; } else { return Collections.emptyList(); } } - private void findSharedNonSystemLibrariesRecursive(PackageParser.Package p, - ArrayList<PackageParser.Package> collected, Set<String> collectedNames) { - if (!collectedNames.contains(p.packageName)) { - collectedNames.add(p.packageName); - collected.add(p); - - if (p.usesLibraries != null) { - findSharedNonSystemLibrariesRecursive(p.usesLibraries, - null, collected, collectedNames); - } - if (p.usesOptionalLibraries != null) { - findSharedNonSystemLibrariesRecursive(p.usesOptionalLibraries, - null, collected, collectedNames); - } - if (p.usesStaticLibraries != null) { - findSharedNonSystemLibrariesRecursive(p.usesStaticLibraries, - p.usesStaticLibrariesVersions, collected, collectedNames); - } - } - } + private static void findSharedLibrariesRecursive(SharedLibraryInfo info, + ArrayList<SharedLibraryInfo> collected, Set<String> collectedNames) { + if (!collectedNames.contains(info.getName())) { + collectedNames.add(info.getName()); + collected.add(info); - private void findSharedNonSystemLibrariesRecursive(ArrayList<String> libs, long[] versions, - ArrayList<PackageParser.Package> collected, Set<String> collectedNames) { - final int libNameCount = libs.size(); - for (int i = 0; i < libNameCount; i++) { - String libName = libs.get(i); - long version = (versions != null && versions.length == libNameCount) - ? versions[i] : PackageManager.VERSION_CODE_HIGHEST; - PackageParser.Package libPkg = findSharedNonSystemLibrary(libName, version); - if (libPkg != null) { - findSharedNonSystemLibrariesRecursive(libPkg, collected, collectedNames); + if (info.getDependencies() != null) { + for (SharedLibraryInfo dep : info.getDependencies()) { + findSharedLibrariesRecursive(dep, collected, collectedNames); + } } } } - private PackageParser.Package findSharedNonSystemLibrary(String name, long version) { - synchronized (mPackages) { - SharedLibraryInfo libraryInfo = getSharedLibraryInfoLPr(name, version); - if (libraryInfo != null) { - return mPackages.get(libraryInfo.getPackageName()); + List<PackageParser.Package> findSharedNonSystemLibraries(PackageParser.Package pkg) { + List<SharedLibraryInfo> deps = findSharedLibraries(pkg); + if (!deps.isEmpty()) { + ArrayList<PackageParser.Package> retValue = new ArrayList<>(); + synchronized (mPackages) { + for (SharedLibraryInfo info : deps) { + PackageParser.Package depPackage = mPackages.get(info.getPackageName()); + if (depPackage != null) { + retValue.add(depPackage); + } + } } - return null; + return retValue; + } else { + return Collections.emptyList(); } } diff --git a/services/core/java/com/android/server/pm/dex/DexoptUtils.java b/services/core/java/com/android/server/pm/dex/DexoptUtils.java index 91ad11e53538..5a473c1819c1 100644 --- a/services/core/java/com/android/server/pm/dex/DexoptUtils.java +++ b/services/core/java/com/android/server/pm/dex/DexoptUtils.java @@ -174,6 +174,18 @@ public final class DexoptUtils { } /** + * Creates the class loader context for the given shared library. + */ + public static String getClassLoaderContext(SharedLibraryInfo info) { + String sharedLibrariesContext = ""; + if (info.getDependencies() != null) { + sharedLibrariesContext = encodeSharedLibraries(info.getDependencies()); + } + return encodeClassLoader( + "", SHARED_LIBRARY_LOADER_TYPE, sharedLibrariesContext); + } + + /** * Recursive method to generate the class loader context dependencies for the split with the * given index. {@param classLoaderContexts} acts as an accumulator. Upton return * {@code classLoaderContexts[index]} will contain the split dependency. diff --git a/services/core/xsd/Android.bp b/services/core/xsd/Android.bp new file mode 100644 index 000000000000..5e1ea897b86e --- /dev/null +++ b/services/core/xsd/Android.bp @@ -0,0 +1,6 @@ +xsd_config { + name: "default-permissions", + srcs: ["default-permissions.xsd"], + api_dir: "schema", + package_name: "com.android.server.pm.permission", +} diff --git a/services/core/xsd/default-permissions.xsd b/services/core/xsd/default-permissions.xsd new file mode 100644 index 000000000000..d800a26cdceb --- /dev/null +++ b/services/core/xsd/default-permissions.xsd @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Copyright (C) 2019 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<!-- TODO: define a targetNamespace. Note that it will break retrocompatibility --> +<xs:schema version="2.0" + elementFormDefault="qualified" + attributeFormDefault="unqualified" + xmlns:xs="http://www.w3.org/2001/XMLSchema"> + <xs:element name="exceptions"> + <xs:complexType> + <xs:sequence> + <xs:element name="exception" type="exception" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:complexType name="exception"> + <xs:sequence> + <xs:element name="permission" type="permission"/> + </xs:sequence> + <xs:attribute name="package" type="xs:string"/> + <xs:attribute name="sha256-cert-digest" type="xs:string"/> + <xs:attribute name="brand" type="xs:string"/> + </xs:complexType> + <xs:complexType name="permission"> + <xs:attribute name="name" type="xs:string"/> + <xs:attribute name="fixed" type="xs:boolean"/> + </xs:complexType> +</xs:schema> diff --git a/services/core/xsd/schema/README.md b/services/core/xsd/schema/README.md new file mode 100644 index 000000000000..f52d93d2b65a --- /dev/null +++ b/services/core/xsd/schema/README.md @@ -0,0 +1 @@ +Please see the [README](https://android.googlesource.com/platform/system/tools/xsdc/+/refs/heads/master/README.md) for details regarding the Configfile as API. diff --git a/services/core/xsd/schema/current.txt b/services/core/xsd/schema/current.txt new file mode 100644 index 000000000000..4e67e5c235a0 --- /dev/null +++ b/services/core/xsd/schema/current.txt @@ -0,0 +1,37 @@ +// Signature format: 2.0 +package com.android.server.pm.permission { + + public class Exception { + ctor public Exception(); + method public String getBrand(); + method public com.android.server.pm.permission.Permission getPermission(); + method public String getSha256CertDigest(); + method public String get_package(); + method public void setBrand(String); + method public void setPermission(com.android.server.pm.permission.Permission); + method public void setSha256CertDigest(String); + method public void set_package(String); + } + + public class Exceptions { + ctor public Exceptions(); + method public java.util.List<com.android.server.pm.permission.Exception> getException(); + } + + public class Permission { + ctor public Permission(); + method public boolean getFixed(); + method public String getName(); + method public void setFixed(boolean); + method public void setName(String); + } + + public class XmlParser { + ctor public XmlParser(); + method public static com.android.server.pm.permission.Exceptions read(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException; + method public static String readText(org.xmlpull.v1.XmlPullParser) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException; + method public static void skip(org.xmlpull.v1.XmlPullParser) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException; + } + +} + diff --git a/services/core/xsd/schema/last_current.txt b/services/core/xsd/schema/last_current.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/services/core/xsd/schema/last_current.txt diff --git a/services/core/xsd/schema/last_removed.txt b/services/core/xsd/schema/last_removed.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/services/core/xsd/schema/last_removed.txt diff --git a/services/core/xsd/schema/removed.txt b/services/core/xsd/schema/removed.txt new file mode 100644 index 000000000000..d802177e249b --- /dev/null +++ b/services/core/xsd/schema/removed.txt @@ -0,0 +1 @@ +// Signature format: 2.0 diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java index 2733da92f932..d288910871bc 100644 --- a/services/java/com/android/server/SystemServer.java +++ b/services/java/com/android/server/SystemServer.java @@ -1235,7 +1235,6 @@ public final class SystemServer { ServiceManager.addService(Context.CONNECTIVITY_SERVICE, connectivity, /* allowIsolated= */ false, DUMP_FLAG_PRIORITY_HIGH | DUMP_FLAG_PRIORITY_NORMAL); - networkStats.bindConnectivityManager(connectivity); networkPolicy.bindConnectivityManager(connectivity); } catch (Throwable e) { reportWtf("starting Connectivity Service", e); @@ -1683,19 +1682,6 @@ public final class SystemServer { mSystemServiceManager.startService(StatsCompanionService.Lifecycle.class); traceEnd(); - if (safeMode) { - traceBeginAndSlog("EnterSafeModeAndDisableJitCompilation"); - mActivityManagerService.enterSafeMode(); - // Disable the JIT for the system_server process - VMRuntime.getRuntime().disableJitCompilation(); - traceEnd(); - } else { - // Enable the JIT for the system_server process - traceBeginAndSlog("StartJitCompilation"); - VMRuntime.getRuntime().startJitCompilation(); - traceEnd(); - } - // MMS service broker traceBeginAndSlog("StartMmsService"); mmsService = mSystemServiceManager.startService(MmsServiceBroker.class); diff --git a/services/tests/servicestests/Android.bp b/services/tests/servicestests/Android.bp index d2d6e32fb1b0..d148ea1d9734 100644 --- a/services/tests/servicestests/Android.bp +++ b/services/tests/servicestests/Android.bp @@ -27,7 +27,7 @@ android_test { "services.net", "services.usage", "guava", - "android-support-test", + "androidx.test.rules", "mockito-target-minus-junit4", "platform-test-annotations", "ShortcutManagerTestUtils", @@ -85,7 +85,7 @@ java_library { "utils/**/*.java", ], static_libs: [ - "android-support-test", + "androidx.test.rules", "mockito-target-minus-junit4", ], libs: [ diff --git a/services/tests/servicestests/AndroidManifest.xml b/services/tests/servicestests/AndroidManifest.xml index 13ba2293de85..5a0f3a46da56 100644 --- a/services/tests/servicestests/AndroidManifest.xml +++ b/services/tests/servicestests/AndroidManifest.xml @@ -222,7 +222,7 @@ </application> <instrumentation - android:name="android.support.test.runner.AndroidJUnitRunner" + android:name="androidx.test.runner.AndroidJUnitRunner" android:targetPackage="com.android.frameworks.servicestests" android:label="Frameworks Services Tests" /> </manifest> diff --git a/services/tests/servicestests/AndroidTest.xml b/services/tests/servicestests/AndroidTest.xml index 5ac68d4b69d4..4d653b99439c 100644 --- a/services/tests/servicestests/AndroidTest.xml +++ b/services/tests/servicestests/AndroidTest.xml @@ -28,7 +28,7 @@ <option name="test-tag" value="FrameworksServicesTests" /> <test class="com.android.tradefed.testtype.AndroidJUnitTest" > <option name="package" value="com.android.frameworks.servicestests" /> - <option name="runner" value="android.support.test.runner.AndroidJUnitRunner" /> + <option name="runner" value="androidx.test.runner.AndroidJUnitRunner" /> <option name="hidden-api-checks" value="false"/> </test> </configuration> diff --git a/services/tests/servicestests/src/com/android/server/AlarmManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/AlarmManagerServiceTest.java index 918807d0392c..1f63d6165617 100644 --- a/services/tests/servicestests/src/com/android/server/AlarmManagerServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/AlarmManagerServiceTest.java @@ -20,10 +20,11 @@ import static android.app.AlarmManager.RTC_WAKEUP; import static org.junit.Assert.assertEquals; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.util.SparseArray; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.internal.util.ObjectUtils; import com.android.server.AlarmManagerService.Alarm; diff --git a/services/tests/servicestests/src/com/android/server/AppOpsUpgradeTest.java b/services/tests/servicestests/src/com/android/server/AppOpsUpgradeTest.java index 4d77fab808ba..aac96a1dd847 100644 --- a/services/tests/servicestests/src/com/android/server/AppOpsUpgradeTest.java +++ b/services/tests/servicestests/src/com/android/server/AppOpsUpgradeTest.java @@ -25,13 +25,14 @@ import android.content.Context; import android.content.res.AssetManager; import android.os.Handler; import android.os.HandlerThread; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.util.Log; import android.util.SparseArray; import android.util.Xml; +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/servicestests/src/com/android/server/BatteryServiceTest.java b/services/tests/servicestests/src/com/android/server/BatteryServiceTest.java index 106f9e8c2705..cb12ba7d7679 100644 --- a/services/tests/servicestests/src/com/android/server/BatteryServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/BatteryServiceTest.java @@ -17,27 +17,24 @@ package com.android.server; import static junit.framework.Assert.*; + import static org.mockito.Mockito.*; import android.hardware.health.V2_0.IHealth; import android.hidl.manager.V1_0.IServiceManager; import android.hidl.manager.V1_0.IServiceNotification; -import android.os.RemoteException; -import android.support.test.filters.SmallTest; import android.test.AndroidTestCase; -import android.util.Slog; -import java.util.Arrays; -import java.util.Collection; -import java.util.NoSuchElementException; +import androidx.test.filters.SmallTest; -import org.junit.runner.RunWith; import org.mockito.ArgumentMatcher; import org.mockito.Mock; import org.mockito.MockitoAnnotations; -import org.mockito.Spy; import org.mockito.invocation.InvocationOnMock; +import java.util.Arrays; +import java.util.Collection; +import java.util.NoSuchElementException; public class BatteryServiceTest extends AndroidTestCase { diff --git a/services/tests/servicestests/src/com/android/server/BootReceiverFixFsckFsStatTest.java b/services/tests/servicestests/src/com/android/server/BootReceiverFixFsckFsStatTest.java index 69c149912034..9ba3308622ed 100644 --- a/services/tests/servicestests/src/com/android/server/BootReceiverFixFsckFsStatTest.java +++ b/services/tests/servicestests/src/com/android/server/BootReceiverFixFsckFsStatTest.java @@ -18,10 +18,8 @@ package com.android.server; import static junit.framework.Assert.*; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; - -import junit.framework.Assert; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/servicestests/src/com/android/server/GestureLauncherServiceTest.java b/services/tests/servicestests/src/com/android/server/GestureLauncherServiceTest.java index 33e4165718a5..2ec6830b7755 100644 --- a/services/tests/servicestests/src/com/android/server/GestureLauncherServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/GestureLauncherServiceTest.java @@ -33,12 +33,13 @@ import android.os.Looper; import android.os.UserHandle; import android.platform.test.annotations.Presubmit; import android.provider.Settings; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.test.mock.MockContentResolver; -import android.view.KeyEvent; import android.util.MutableBoolean; +import android.view.KeyEvent; + +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; @@ -46,17 +47,16 @@ import com.android.internal.util.test.FakeSettingsProvider; import com.android.server.LocalServices; import com.android.server.statusbar.StatusBarManagerInternal; -import java.util.List; - import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; +import java.util.List; + /** * Unit tests for {@link GestureLauncherService}. * runtest frameworks-services -c com.android.server.GestureLauncherServiceTest diff --git a/services/tests/servicestests/src/com/android/server/NetworkManagementInternalTest.java b/services/tests/servicestests/src/com/android/server/NetworkManagementInternalTest.java index a5ac20e951ec..ebbebcb02923 100644 --- a/services/tests/servicestests/src/com/android/server/NetworkManagementInternalTest.java +++ b/services/tests/servicestests/src/com/android/server/NetworkManagementInternalTest.java @@ -29,10 +29,11 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import android.net.NetworkPolicyManager; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.util.ArrayMap; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -52,7 +53,7 @@ import java.util.function.BiFunction; * Install: adb install -r \ * ${ANDROID_PRODUCT_OUT}/data/app/FrameworksServicesTests/FrameworksServicesTests.apk * Run: adb shell am instrument -e class com.android.server.NetworkManagementInternalTest -w \ - * com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner + * com.android.frameworks.servicestests/androidx.test.runner.AndroidJUnitRunner */ @SmallTest @RunWith(AndroidJUnit4.class) diff --git a/services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java index 39b639168f82..85d0c4cddff1 100644 --- a/services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java @@ -122,8 +122,6 @@ import android.os.RemoteException; import android.os.SimpleClock; import android.os.SystemClock; import android.os.UserHandle; -import android.support.test.InstrumentationRegistry; -import android.support.test.runner.AndroidJUnit4; import android.telephony.CarrierConfigManager; import android.telephony.SubscriptionManager; import android.telephony.SubscriptionPlan; @@ -137,6 +135,9 @@ import android.util.Pair; import android.util.Range; import android.util.RecurrenceRule; +import androidx.test.InstrumentationRegistry; +import androidx.test.runner.AndroidJUnit4; + import com.android.internal.telephony.PhoneConstants; import com.android.internal.util.test.BroadcastInterceptingContext; import com.android.internal.util.test.BroadcastInterceptingContext.FutureIntent; @@ -144,11 +145,11 @@ import com.android.server.net.NetworkPolicyManagerInternal; import com.android.server.net.NetworkPolicyManagerService; import com.android.server.net.NetworkStatsManagerInternal; +import com.google.common.util.concurrent.AbstractFuture; + import libcore.io.IoUtils; import libcore.io.Streams; -import com.google.common.util.concurrent.AbstractFuture; - import org.junit.After; import org.junit.Before; import org.junit.Rule; @@ -200,7 +201,7 @@ import java.util.stream.Collectors; m -j32 FrameworksServicesTests && adb install -r -g \ ${ANDROID_PRODUCT_OUT}/data/app/FrameworksServicesTests/FrameworksServicesTests.apk && \ adb shell am instrument -e class "com.android.server.NetworkPolicyManagerServiceTest" -w \ - "com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner" + "com.android.frameworks.servicestests/androidx.test.runner.AndroidJUnitRunner" * </code></pre> */ @RunWith(AndroidJUnit4.class) diff --git a/services/tests/servicestests/src/com/android/server/NetworkScoreServiceTest.java b/services/tests/servicestests/src/com/android/server/NetworkScoreServiceTest.java index 4176d2a7d9d5..e9e96c9c7efb 100644 --- a/services/tests/servicestests/src/com/android/server/NetworkScoreServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/NetworkScoreServiceTest.java @@ -24,14 +24,12 @@ import static junit.framework.Assert.assertTrue; import static junit.framework.Assert.fail; import static org.mockito.Matchers.any; -import static org.mockito.Matchers.anyBoolean; import static org.mockito.Matchers.anyListOf; import static org.mockito.Matchers.anyString; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.atLeastOnce; import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.never; -import static org.mockito.Mockito.spy; import static org.mockito.Mockito.timeout; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; @@ -47,7 +45,6 @@ import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.PackageManagerInternal; import android.content.res.Resources; -import android.database.ContentObserver; import android.net.INetworkRecommendationProvider; import android.net.INetworkScoreCache; import android.net.NetworkKey; @@ -69,9 +66,10 @@ import android.os.Message; import android.os.RemoteException; import android.os.UserHandle; import android.provider.Settings; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.MediumTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.MediumTest; +import androidx.test.runner.AndroidJUnit4; import com.android.server.devicepolicy.MockUtils; diff --git a/services/tests/servicestests/src/com/android/server/NetworkScorerAppManagerTest.java b/services/tests/servicestests/src/com/android/server/NetworkScorerAppManagerTest.java index 6874624ae193..52428e8bc478 100644 --- a/services/tests/servicestests/src/com/android/server/NetworkScorerAppManagerTest.java +++ b/services/tests/servicestests/src/com/android/server/NetworkScorerAppManagerTest.java @@ -34,7 +34,6 @@ import android.Manifest.permission; import android.app.AppOpsManager; import android.content.ComponentName; import android.content.Context; -import android.content.Intent; import android.content.pm.ActivityInfo; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; @@ -45,14 +44,14 @@ import android.net.NetworkScoreManager; import android.net.NetworkScorerAppData; import android.os.Bundle; import android.provider.Settings; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.runner.AndroidJUnit4; import com.android.internal.R; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.ArgumentMatcher; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; diff --git a/services/tests/servicestests/src/com/android/server/WatchdogDiagnosticsTest.java b/services/tests/servicestests/src/com/android/server/WatchdogDiagnosticsTest.java index 6e76b679940b..4d229efc8328 100644 --- a/services/tests/servicestests/src/com/android/server/WatchdogDiagnosticsTest.java +++ b/services/tests/servicestests/src/com/android/server/WatchdogDiagnosticsTest.java @@ -18,14 +18,14 @@ package com.android.server; import static org.junit.Assert.assertEquals; -import android.support.test.runner.AndroidJUnit4; - -import java.io.PrintWriter; -import java.io.StringWriter; +import androidx.test.runner.AndroidJUnit4; import org.junit.Test; import org.junit.runner.RunWith; +import java.io.PrintWriter; +import java.io.StringWriter; + /** * Unit tests for {@link WatchdogDiagnostics} */ diff --git a/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityManagerTest.java b/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityManagerTest.java index 5d09e31a3dc7..4c0f38aa2998 100644 --- a/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityManagerTest.java +++ b/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityManagerTest.java @@ -18,6 +18,7 @@ package com.android.server.accessibility; import static junit.framework.TestCase.assertFalse; import static junit.framework.TestCase.assertSame; + import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; @@ -30,13 +31,14 @@ import android.accessibilityservice.AccessibilityServiceInfo; import android.app.Instrumentation; import android.os.Looper; import android.os.UserHandle; -import android.support.test.InstrumentationRegistry; -import android.support.test.runner.AndroidJUnit4; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityManager; import android.view.accessibility.IAccessibilityManager; import android.view.accessibility.IAccessibilityManagerClient; +import androidx.test.InstrumentationRegistry; +import androidx.test.runner.AndroidJUnit4; + import com.android.internal.util.IntPair; import org.junit.Before; diff --git a/services/tests/servicestests/src/com/android/server/accessibility/KeyEventDispatcherTest.java b/services/tests/servicestests/src/com/android/server/accessibility/KeyEventDispatcherTest.java index 18193984dd19..236b45894fb3 100644 --- a/services/tests/servicestests/src/com/android/server/accessibility/KeyEventDispatcherTest.java +++ b/services/tests/servicestests/src/com/android/server/accessibility/KeyEventDispatcherTest.java @@ -19,6 +19,7 @@ package com.android.server.accessibility; import static junit.framework.TestCase.assertEquals; import static junit.framework.TestCase.assertFalse; import static junit.framework.TestCase.assertTrue; + import static org.mockito.Matchers.anyInt; import static org.mockito.Matchers.anyLong; import static org.mockito.Matchers.anyObject; @@ -30,11 +31,6 @@ import static org.mockito.Mockito.verifyZeroInteractions; import static org.mockito.Mockito.when; import static org.mockito.hamcrest.MockitoHamcrest.argThat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - import android.content.Context; import android.os.Handler; import android.os.IPowerManager; @@ -42,9 +38,10 @@ import android.os.Looper; import android.os.Message; import android.os.PowerManager; import android.os.RemoteException; -import android.support.test.runner.AndroidJUnit4; import android.view.KeyEvent; +import androidx.test.runner.AndroidJUnit4; + import com.android.server.accessibility.KeyEventDispatcher.KeyEventFilter; import com.android.server.policy.WindowManagerPolicy; @@ -56,6 +53,11 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + /** * Tests for KeyEventDispatcher */ diff --git a/services/tests/servicestests/src/com/android/server/accessibility/KeyboardInterceptorTest.java b/services/tests/servicestests/src/com/android/server/accessibility/KeyboardInterceptorTest.java index ceb3f9d23ce7..851e22173420 100644 --- a/services/tests/servicestests/src/com/android/server/accessibility/KeyboardInterceptorTest.java +++ b/services/tests/servicestests/src/com/android/server/accessibility/KeyboardInterceptorTest.java @@ -23,14 +23,19 @@ import static org.junit.Assert.assertFalse; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Matchers.anyInt; import static org.mockito.Matchers.anyObject; -import static org.mockito.Matchers.isNull; -import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static org.mockito.hamcrest.MockitoHamcrest.argThat; -import org.hamcrest.BaseMatcher; +import android.os.Looper; +import android.view.KeyEvent; + +import androidx.test.runner.AndroidJUnit4; + +import com.android.server.policy.WindowManagerPolicy; +import com.android.server.policy.WindowManagerPolicy.WindowState; + import org.hamcrest.Description; import org.hamcrest.TypeSafeMatcher; import org.junit.Before; @@ -42,13 +47,6 @@ import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; -import android.os.Looper; -import android.support.test.runner.AndroidJUnit4; -import android.view.KeyEvent; - -import com.android.server.policy.WindowManagerPolicy; -import com.android.server.policy.WindowManagerPolicy.WindowState; - /** * Tests for KeyboardInterceptor */ diff --git a/services/tests/servicestests/src/com/android/server/accessibility/MagnificationControllerTest.java b/services/tests/servicestests/src/com/android/server/accessibility/MagnificationControllerTest.java index d3a3090956a7..cda4a4bd96cf 100644 --- a/services/tests/servicestests/src/com/android/server/accessibility/MagnificationControllerTest.java +++ b/services/tests/servicestests/src/com/android/server/accessibility/MagnificationControllerTest.java @@ -17,9 +17,9 @@ package com.android.server.accessibility; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; -import static org.junit.Assert.assertFalse; import static org.mockito.ArgumentMatchers.anyFloat; import static org.mockito.Matchers.anyObject; import static org.mockito.Matchers.eq; @@ -43,9 +43,10 @@ import android.graphics.Region; import android.os.Handler; import android.os.Looper; import android.os.Message; -import android.support.test.runner.AndroidJUnit4; import android.view.MagnificationSpec; +import androidx.test.runner.AndroidJUnit4; + import com.android.internal.R; import com.android.server.wm.WindowManagerInternal; import com.android.server.wm.WindowManagerInternal.MagnificationCallbacks; diff --git a/services/tests/servicestests/src/com/android/server/accessibility/MagnificationGestureHandlerTest.java b/services/tests/servicestests/src/com/android/server/accessibility/MagnificationGestureHandlerTest.java index 23fe0ffda60e..79e4d705db19 100644 --- a/services/tests/servicestests/src/com/android/server/accessibility/MagnificationGestureHandlerTest.java +++ b/services/tests/servicestests/src/com/android/server/accessibility/MagnificationGestureHandlerTest.java @@ -35,12 +35,13 @@ import static org.mockito.Mockito.verify; import android.annotation.NonNull; import android.content.Context; import android.os.Message; -import android.support.test.InstrumentationRegistry; -import android.support.test.runner.AndroidJUnit4; import android.util.DebugUtils; import android.view.InputDevice; import android.view.MotionEvent; +import androidx.test.InstrumentationRegistry; +import androidx.test.runner.AndroidJUnit4; + import com.android.server.testutils.OffsettableClock; import com.android.server.testutils.TestHandler; @@ -50,7 +51,6 @@ import org.junit.runner.RunWith; import java.util.function.IntConsumer; - /** * Tests the state transitions of {@link MagnificationGestureHandler} * diff --git a/services/tests/servicestests/src/com/android/server/accessibility/MotionEventInjectorTest.java b/services/tests/servicestests/src/com/android/server/accessibility/MotionEventInjectorTest.java index 6cacb1fe0c06..5f0fa874b7da 100644 --- a/services/tests/servicestests/src/com/android/server/accessibility/MotionEventInjectorTest.java +++ b/services/tests/servicestests/src/com/android/server/accessibility/MotionEventInjectorTest.java @@ -19,6 +19,7 @@ package com.android.server.accessibility; import static android.view.MotionEvent.ACTION_DOWN; import static android.view.MotionEvent.ACTION_UP; import static android.view.WindowManagerPolicyConstants.FLAG_PASS_TO_USER; + import static org.hamcrest.CoreMatchers.allOf; import static org.hamcrest.CoreMatchers.anyOf; import static org.hamcrest.CoreMatchers.everyItem; @@ -45,18 +46,14 @@ import android.os.Handler; import android.os.Looper; import android.os.Message; import android.os.RemoteException; -import android.support.test.runner.AndroidJUnit4; import android.util.Log; -import android.util.Pair; import android.view.InputDevice; import android.view.KeyEvent; import android.view.MotionEvent; +import android.view.accessibility.AccessibilityEvent; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import androidx.test.runner.AndroidJUnit4; -import android.view.accessibility.AccessibilityEvent; import org.hamcrest.Description; import org.hamcrest.Matcher; import org.hamcrest.TypeSafeMatcher; @@ -66,6 +63,10 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + /** * Tests for MotionEventInjector */ diff --git a/services/tests/servicestests/src/com/android/server/accounts/AccountManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/accounts/AccountManagerServiceTest.java index f2057c5e6971..7a96f4cf1bc8 100644 --- a/services/tests/servicestests/src/com/android/server/accounts/AccountManagerServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/accounts/AccountManagerServiceTest.java @@ -17,6 +17,7 @@ package com.android.server.accounts; import static android.database.sqlite.SQLiteDatabase.deleteDatabase; + import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyBoolean; import static org.mockito.Matchers.anyInt; @@ -25,7 +26,6 @@ import static org.mockito.Matchers.eq; import static org.mockito.Mockito.atLeast; import static org.mockito.Mockito.never; import static org.mockito.Mockito.nullable; -import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -35,11 +35,10 @@ import android.accounts.AccountManagerInternal; import android.accounts.CantAddAccountActivity; import android.accounts.IAccountManagerResponse; import android.app.AppOpsManager; +import android.app.INotificationManager; import android.app.admin.DevicePolicyManager; import android.app.admin.DevicePolicyManagerInternal; -import android.app.INotificationManager; import android.content.BroadcastReceiver; -import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; @@ -68,7 +67,6 @@ import android.test.mock.MockContext; import android.test.suitebuilder.annotation.SmallTest; import android.util.Log; -import com.android.frameworks.servicestests.R; import com.android.server.LocalServices; import org.mockito.ArgumentCaptor; @@ -91,7 +89,6 @@ import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicLong; - /** * Tests for {@link AccountManagerService}. * <p>Run with:<pre> @@ -99,7 +96,7 @@ import java.util.concurrent.atomic.AtomicLong; * adb install -r ${OUT}/data/app/FrameworksServicesTests/FrameworksServicesTests.apk * adb shell am instrument -w -e package com.android.server.accounts \ * com.android.frameworks.servicestests\ - * /android.support.test.runner.AndroidJUnitRunner + * /androidx.test.runner.AndroidJUnitRunner * </pre> */ public class AccountManagerServiceTest extends AndroidTestCase { diff --git a/services/tests/servicestests/src/com/android/server/accounts/AccountsDbTest.java b/services/tests/servicestests/src/com/android/server/accounts/AccountsDbTest.java index 65920fda946e..6b530026f8ae 100644 --- a/services/tests/servicestests/src/com/android/server/accounts/AccountsDbTest.java +++ b/services/tests/servicestests/src/com/android/server/accounts/AccountsDbTest.java @@ -30,11 +30,12 @@ import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteStatement; import android.os.Build; -import android.support.test.InstrumentationRegistry; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; import android.util.Pair; +import androidx.test.InstrumentationRegistry; +import androidx.test.runner.AndroidJUnit4; + import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -55,7 +56,7 @@ import java.util.Map; * adb install \ * -r out/target/product/marlin/data/app/FrameworksServicesTests/FrameworksServicesTests.apk && * adb shell am instrument -e class com.android.server.accounts.AccountsDbTest \ - * -w com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner + * -w com.android.frameworks.servicestests/androidx.test.runner.AndroidJUnitRunner * </pre> */ @RunWith(AndroidJUnit4.class) diff --git a/services/tests/servicestests/src/com/android/server/am/ActivityLaunchParamsModifierTests.java b/services/tests/servicestests/src/com/android/server/am/ActivityLaunchParamsModifierTests.java index f741c70e4821..d75a3fc8d20b 100644 --- a/services/tests/servicestests/src/com/android/server/am/ActivityLaunchParamsModifierTests.java +++ b/services/tests/servicestests/src/com/android/server/am/ActivityLaunchParamsModifierTests.java @@ -16,28 +16,29 @@ package com.android.server.am; +import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD; +import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; + +import static com.android.server.am.LaunchParamsController.LaunchParamsModifier.RESULT_DONE; +import static com.android.server.am.LaunchParamsController.LaunchParamsModifier.RESULT_SKIP; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + import android.app.ActivityOptions; import android.content.pm.ActivityInfo; import android.graphics.Rect; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.MediumTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.MediumTest; +import androidx.test.runner.AndroidJUnit4; import com.android.server.am.LaunchParamsController.LaunchParams; -import org.junit.runner.RunWith; + import org.junit.Before; import org.junit.Test; - -import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD; -import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; -import static com.android.server.am.LaunchParamsController.LaunchParamsModifier.RESULT_DONE; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.doAnswer; - -import static com.android.server.am.LaunchParamsController.LaunchParamsModifier.RESULT_SKIP; +import org.junit.runner.RunWith; /** * Tests for exercising resizing bounds due to activity options. diff --git a/services/tests/servicestests/src/com/android/server/am/ActivityManagerInternalTest.java b/services/tests/servicestests/src/com/android/server/am/ActivityManagerInternalTest.java index bce87dc58819..9a7488e42326 100644 --- a/services/tests/servicestests/src/com/android/server/am/ActivityManagerInternalTest.java +++ b/services/tests/servicestests/src/com/android/server/am/ActivityManagerInternalTest.java @@ -21,8 +21,9 @@ import static org.junit.Assert.assertTrue; import android.app.ActivityManagerInternal; import android.os.SystemClock; -import android.support.test.filters.MediumTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.MediumTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.Before; import org.junit.Test; @@ -43,7 +44,7 @@ import org.mockito.MockitoAnnotations; * Install: adb install -r \ * ${ANDROID_PRODUCT_OUT}/data/app/FrameworksServicesTests/FrameworksServicesTests.apk * Run: adb shell am instrument -e class com.android.server.am.ActivityManagerInternalTest -w \ - * com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner + * com.android.frameworks.servicestests/androidx.test.runner.AndroidJUnitRunner */ @RunWith(AndroidJUnit4.class) public class ActivityManagerInternalTest { diff --git a/services/tests/servicestests/src/com/android/server/am/ActivityManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/am/ActivityManagerServiceTest.java index 7ca06f983bfa..c1df6afeaf3c 100644 --- a/services/tests/servicestests/src/com/android/server/am/ActivityManagerServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/am/ActivityManagerServiceTest.java @@ -28,6 +28,7 @@ import static android.app.ActivityManager.PROCESS_STATE_RECEIVER; import static android.app.ActivityManager.PROCESS_STATE_SERVICE; import static android.app.ActivityManager.PROCESS_STATE_TOP; import static android.util.DebugUtils.valueToString; + import static com.android.server.am.ActivityManagerInternalTest.CustomThread; import static com.android.server.am.ActivityManagerService.DISPATCH_UIDS_CHANGED_UI_MSG; import static com.android.server.am.ActivityManagerService.Injector; @@ -62,10 +63,11 @@ import android.os.Message; import android.os.Process; import android.os.RemoteException; import android.os.SystemClock; -import android.support.test.filters.FlakyTest; -import android.support.test.filters.MediumTest; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.FlakyTest; +import androidx.test.filters.MediumTest; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.internal.os.BatteryStatsImpl; import com.android.server.AppOpsService; @@ -99,7 +101,7 @@ import java.util.function.Function; * Install: adb install -r \ * ${ANDROID_PRODUCT_OUT}/data/app/FrameworksServicesTests/FrameworksServicesTests.apk * Run: adb shell am instrument -e class com.android.server.am.ActivityManagerServiceTest -w \ - * com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner + * com.android.frameworks.servicestests/androidx.test.runner.AndroidJUnitRunner */ @SmallTest @FlakyTest(bugId = 113616538) diff --git a/services/tests/servicestests/src/com/android/server/am/ActivityRecordTests.java b/services/tests/servicestests/src/com/android/server/am/ActivityRecordTests.java index 5ee1c405bb0e..5ee7477b486c 100644 --- a/services/tests/servicestests/src/com/android/server/am/ActivityRecordTests.java +++ b/services/tests/servicestests/src/com/android/server/am/ActivityRecordTests.java @@ -22,11 +22,7 @@ import static android.content.pm.ActivityInfo.RESIZE_MODE_RESIZEABLE; import static android.content.pm.ActivityInfo.RESIZE_MODE_UNRESIZEABLE; import static android.view.Display.DEFAULT_DISPLAY; -import static com.android.server.am.ActivityStack.ActivityState.DESTROYED; -import static com.android.server.am.ActivityStack.ActivityState.DESTROYING; -import static com.android.server.am.ActivityStack.ActivityState.FINISHING; import static com.android.server.am.ActivityStack.ActivityState.INITIALIZING; -import static com.android.server.am.ActivityStack.ActivityState.PAUSED; import static com.android.server.am.ActivityStack.ActivityState.PAUSING; import static com.android.server.am.ActivityStack.ActivityState.STOPPED; import static com.android.server.am.ActivityStack.REMOVE_TASK_MODE_MOVING; @@ -53,14 +49,14 @@ import android.app.servertransaction.ClientTransaction; import android.app.servertransaction.PauseActivityItem; import android.graphics.Rect; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.MediumTest; -import android.support.test.runner.AndroidJUnit4; import android.util.MutableBoolean; -import org.junit.runner.RunWith; +import androidx.test.filters.MediumTest; +import androidx.test.runner.AndroidJUnit4; + import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; +import org.junit.runner.RunWith; import org.mockito.invocation.InvocationOnMock; /** diff --git a/services/tests/servicestests/src/com/android/server/am/ActivityStackSupervisorTests.java b/services/tests/servicestests/src/com/android/server/am/ActivityStackSupervisorTests.java index 1ce41a641935..f36c57973240 100644 --- a/services/tests/servicestests/src/com/android/server/am/ActivityStackSupervisorTests.java +++ b/services/tests/servicestests/src/com/android/server/am/ActivityStackSupervisorTests.java @@ -47,10 +47,11 @@ import android.app.ActivityOptions; import android.app.WaitResult; import android.graphics.Rect; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.MediumTest; -import android.support.test.runner.AndroidJUnit4; import android.util.SparseIntArray; +import androidx.test.filters.MediumTest; +import androidx.test.runner.AndroidJUnit4; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/servicestests/src/com/android/server/am/ActivityStackTests.java b/services/tests/servicestests/src/com/android/server/am/ActivityStackTests.java index e2b7c063714a..be0c689ab89f 100644 --- a/services/tests/servicestests/src/com/android/server/am/ActivityStackTests.java +++ b/services/tests/servicestests/src/com/android/server/am/ActivityStackTests.java @@ -33,23 +33,20 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.anyInt; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; import android.content.pm.ActivityInfo; import android.os.UserHandle; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; -import org.junit.runner.RunWith; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import org.junit.Before; import org.junit.Test; +import org.junit.runner.RunWith; /** * Tests for the {@link ActivityStack} class. diff --git a/services/tests/servicestests/src/com/android/server/am/ActivityStartControllerTests.java b/services/tests/servicestests/src/com/android/server/am/ActivityStartControllerTests.java index 7948e4cfcaaa..3464ac2a3044 100644 --- a/services/tests/servicestests/src/com/android/server/am/ActivityStartControllerTests.java +++ b/services/tests/servicestests/src/com/android/server/am/ActivityStartControllerTests.java @@ -19,23 +19,24 @@ package com.android.server.am; import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; + import android.content.Intent; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.server.am.ActivityStackSupervisor.PendingActivityLaunch; import com.android.server.am.ActivityStarter.Factory; -import org.junit.runner.RunWith; import org.junit.Test; - -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.times; +import org.junit.runner.RunWith; import java.util.Random; diff --git a/services/tests/servicestests/src/com/android/server/am/ActivityStartInterceptorTest.java b/services/tests/servicestests/src/com/android/server/am/ActivityStartInterceptorTest.java index b4b34c507942..d1550d736e0b 100644 --- a/services/tests/servicestests/src/com/android/server/am/ActivityStartInterceptorTest.java +++ b/services/tests/servicestests/src/com/android/server/am/ActivityStartInterceptorTest.java @@ -37,9 +37,10 @@ import android.content.pm.PackageManagerInternal; import android.content.pm.UserInfo; import android.os.UserHandle; import android.os.UserManager; -import android.support.test.filters.SmallTest; import android.testing.DexmakerShareClassLoaderRule; +import androidx.test.filters.SmallTest; + import com.android.internal.app.SuspendedAppActivity; import com.android.internal.app.UnlaunchableAppActivity; import com.android.server.LocalServices; diff --git a/services/tests/servicestests/src/com/android/server/am/ActivityStarterTests.java b/services/tests/servicestests/src/com/android/server/am/ActivityStarterTests.java index 8d056fc4a8c0..f956a364315b 100644 --- a/services/tests/servicestests/src/com/android/server/am/ActivityStarterTests.java +++ b/services/tests/servicestests/src/com/android/server/am/ActivityStarterTests.java @@ -32,29 +32,9 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED; import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY; import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_SECONDARY; - -import android.app.ActivityOptions; -import android.app.IApplicationThread; -import android.content.ComponentName; -import android.content.Intent; -import android.content.pm.ActivityInfo; -import android.content.pm.ActivityInfo.WindowLayout; -import android.content.pm.ApplicationInfo; -import android.content.pm.IPackageManager; -import android.graphics.Rect; -import android.os.IBinder; -import android.os.RemoteException; -import android.platform.test.annotations.Presubmit; -import android.service.voice.IVoiceInteractionSession; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; -import android.view.Gravity; - -import org.junit.runner.RunWith; -import org.junit.Test; - import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK; import static android.content.Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED; + import static com.android.server.am.ActivityManagerService.ANIMATE; import static org.junit.Assert.assertEquals; @@ -65,21 +45,37 @@ import static org.mockito.Mockito.anyInt; import static org.mockito.Mockito.anyObject; import static org.mockito.Mockito.clearInvocations; import static org.mockito.Mockito.doAnswer; -import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; + +import android.app.ActivityOptions; +import android.app.IApplicationThread; +import android.content.Intent; +import android.content.pm.ActivityInfo; +import android.content.pm.ActivityInfo.WindowLayout; +import android.content.pm.ApplicationInfo; +import android.content.pm.IPackageManager; +import android.graphics.Rect; +import android.os.IBinder; +import android.os.RemoteException; +import android.platform.test.annotations.Presubmit; +import android.service.voice.IVoiceInteractionSession; +import android.view.Gravity; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.internal.os.BatteryStatsImpl; -import com.android.server.am.ActivityStarter.Factory; import com.android.server.am.LaunchParamsController.LaunchParamsModifier; import com.android.server.am.TaskRecord.TaskRecordFactory; -import java.util.ArrayList; +import org.junit.Test; +import org.junit.runner.RunWith; /** * Tests for the {@link ActivityStarter} class. diff --git a/services/tests/servicestests/src/com/android/server/am/ActivityTestsBase.java b/services/tests/servicestests/src/com/android/server/am/ActivityTestsBase.java index 1cd111fce0ec..deb9f62ad67d 100644 --- a/services/tests/servicestests/src/com/android/server/am/ActivityTestsBase.java +++ b/services/tests/servicestests/src/com/android/server/am/ActivityTestsBase.java @@ -21,21 +21,17 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED; import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY; import static android.view.Display.DEFAULT_DISPLAY; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.doNothing; -import static org.mockito.Mockito.doReturn; + import static org.mockito.Mockito.any; import static org.mockito.Mockito.anyBoolean; import static org.mockito.Mockito.anyInt; import static org.mockito.Mockito.doAnswer; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import android.app.ActivityOptions; -import com.android.server.wm.DisplayWindowController; - -import org.junit.Rule; -import org.mockito.invocation.InvocationOnMock; - import android.app.IApplicationThread; import android.content.ComponentName; import android.content.Context; @@ -49,23 +45,25 @@ import android.hardware.display.DisplayManager; import android.os.HandlerThread; import android.os.Looper; import android.service.voice.IVoiceInteractionSession; -import android.support.test.InstrumentationRegistry; import android.testing.DexmakerShareClassLoaderRule; +import androidx.test.InstrumentationRegistry; import com.android.internal.app.IVoiceInteractor; - import com.android.server.AttributeCache; import com.android.server.wm.AppWindowContainerController; +import com.android.server.wm.DisplayWindowController; import com.android.server.wm.PinnedStackWindowController; import com.android.server.wm.StackWindowController; import com.android.server.wm.TaskWindowContainerController; import com.android.server.wm.WindowManagerService; import com.android.server.wm.WindowTestUtils; + import org.junit.After; import org.junit.Before; +import org.junit.Rule; import org.mockito.MockitoAnnotations; - +import org.mockito.invocation.InvocationOnMock; /** * A base class to handle common operations in activity related unit tests. diff --git a/services/tests/servicestests/src/com/android/server/am/AppErrorDialogTest.java b/services/tests/servicestests/src/com/android/server/am/AppErrorDialogTest.java index eee8ef3a9ee7..d08cac130bf7 100644 --- a/services/tests/servicestests/src/com/android/server/am/AppErrorDialogTest.java +++ b/services/tests/servicestests/src/com/android/server/am/AppErrorDialogTest.java @@ -18,11 +18,12 @@ package com.android.server.am; import android.content.Context; import android.os.Handler; -import android.support.test.InstrumentationRegistry; -import android.support.test.annotation.UiThreadTest; -import android.support.test.filters.FlakyTest; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.InstrumentationRegistry; +import androidx.test.annotation.UiThreadTest; +import androidx.test.filters.FlakyTest; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.server.AppOpsService; diff --git a/services/tests/servicestests/src/com/android/server/am/AssistDataRequesterTest.java b/services/tests/servicestests/src/com/android/server/am/AssistDataRequesterTest.java index 5b1c26016df5..d985364a7cee 100644 --- a/services/tests/servicestests/src/com/android/server/am/AssistDataRequesterTest.java +++ b/services/tests/servicestests/src/com/android/server/am/AssistDataRequesterTest.java @@ -41,13 +41,14 @@ import android.os.Bundle; import android.os.Handler; import android.os.IBinder; import android.os.Looper; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.FlakyTest; -import android.support.test.filters.MediumTest; -import android.support.test.runner.AndroidJUnit4; import android.util.Log; import android.view.IWindowManager; +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.FlakyTest; +import androidx.test.filters.MediumTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.server.am.AssistDataRequester.AssistDataRequesterCallbacks; import org.junit.Before; diff --git a/services/tests/servicestests/src/com/android/server/am/ClientLifecycleManagerTests.java b/services/tests/servicestests/src/com/android/server/am/ClientLifecycleManagerTests.java index ef6d5e81b472..b4ad183db386 100644 --- a/services/tests/servicestests/src/com/android/server/am/ClientLifecycleManagerTests.java +++ b/services/tests/servicestests/src/com/android/server/am/ClientLifecycleManagerTests.java @@ -9,8 +9,9 @@ import android.app.IApplicationThread; import android.app.servertransaction.ClientTransaction; import android.os.Binder; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/servicestests/src/com/android/server/am/CoreSettingsObserverTest.java b/services/tests/servicestests/src/com/android/server/am/CoreSettingsObserverTest.java index da30c11be81a..fe8256eeb977 100644 --- a/services/tests/servicestests/src/com/android/server/am/CoreSettingsObserverTest.java +++ b/services/tests/servicestests/src/com/android/server/am/CoreSettingsObserverTest.java @@ -26,18 +26,18 @@ import android.content.Context; import android.os.Bundle; import android.os.Handler; import android.provider.Settings; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.test.mock.MockContentResolver; +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.internal.util.test.FakeSettingsProvider; import com.android.server.AppOpsService; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; -import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; @@ -58,7 +58,7 @@ import java.io.File; * Install: adb install -r \ * ${ANDROID_PRODUCT_OUT}/data/app/FrameworksServicesTests/FrameworksServicesTests.apk * Run: adb shell am instrument -e class com.android.server.am.CoreSettingsObserverTest -w \ - * com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner + * com.android.frameworks.servicestests/androidx.test.runner.AndroidJUnitRunner */ @SmallTest @RunWith(AndroidJUnit4.class) diff --git a/services/tests/servicestests/src/com/android/server/am/GlobalSettingsToPropertiesMapperTest.java b/services/tests/servicestests/src/com/android/server/am/GlobalSettingsToPropertiesMapperTest.java index d9b3e1c0173b..765aaad45efb 100644 --- a/services/tests/servicestests/src/com/android/server/am/GlobalSettingsToPropertiesMapperTest.java +++ b/services/tests/servicestests/src/com/android/server/am/GlobalSettingsToPropertiesMapperTest.java @@ -18,11 +18,12 @@ package com.android.server.am; import android.content.ContentResolver; import android.provider.Settings; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.test.mock.MockContentResolver; +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.internal.util.Preconditions; import com.android.internal.util.test.FakeSettingsProvider; diff --git a/services/tests/servicestests/src/com/android/server/am/LaunchParamsControllerTests.java b/services/tests/servicestests/src/com/android/server/am/LaunchParamsControllerTests.java index 161c2875bf49..8d675dd3032d 100644 --- a/services/tests/servicestests/src/com/android/server/am/LaunchParamsControllerTests.java +++ b/services/tests/servicestests/src/com/android/server/am/LaunchParamsControllerTests.java @@ -16,20 +16,14 @@ package com.android.server.am; -import android.app.ActivityOptions; -import android.content.pm.ActivityInfo.WindowLayout; -import android.platform.test.annotations.Presubmit; -import android.support.test.filters.MediumTest; -import android.support.test.runner.AndroidJUnit4; - -import com.android.server.am.LaunchParamsController.LaunchParams; -import org.junit.runner.RunWith; -import org.junit.Before; -import org.junit.Test; +import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; -import com.android.server.am.LaunchParamsController.LaunchParamsModifier; +import static com.android.server.am.LaunchParamsController.LaunchParamsModifier.RESULT_CONTINUE; +import static com.android.server.am.LaunchParamsController.LaunchParamsModifier.RESULT_DONE; +import static com.android.server.am.LaunchParamsController.LaunchParamsModifier.RESULT_SKIP; -import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; import static org.mockito.Mockito.any; import static org.mockito.Mockito.anyInt; import static org.mockito.Mockito.doNothing; @@ -40,12 +34,19 @@ import static org.mockito.Mockito.spy; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; -import static com.android.server.am.LaunchParamsController.LaunchParamsModifier.RESULT_DONE; -import static com.android.server.am.LaunchParamsController.LaunchParamsModifier.RESULT_CONTINUE; -import static com.android.server.am.LaunchParamsController.LaunchParamsModifier.RESULT_SKIP; +import android.app.ActivityOptions; +import android.content.pm.ActivityInfo.WindowLayout; +import android.platform.test.annotations.Presubmit; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; +import androidx.test.filters.MediumTest; +import androidx.test.runner.AndroidJUnit4; + +import com.android.server.am.LaunchParamsController.LaunchParams; +import com.android.server.am.LaunchParamsController.LaunchParamsModifier; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; /** * Tests for exercising {@link LaunchParamsController}. diff --git a/services/tests/servicestests/src/com/android/server/am/LockTaskControllerTest.java b/services/tests/servicestests/src/com/android/server/am/LockTaskControllerTest.java index f46d712df65b..863a0d8d34a4 100644 --- a/services/tests/servicestests/src/com/android/server/am/LockTaskControllerTest.java +++ b/services/tests/servicestests/src/com/android/server/am/LockTaskControllerTest.java @@ -52,12 +52,13 @@ import android.os.Message; import android.os.UserHandle; import android.platform.test.annotations.Presubmit; import android.provider.Settings; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; import android.telecom.TelecomManager; import android.testing.DexmakerShareClassLoaderRule; import android.util.Pair; +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; + import com.android.internal.statusbar.IStatusBarService; import com.android.internal.widget.LockPatternUtils; import com.android.server.LocalServices; diff --git a/services/tests/servicestests/src/com/android/server/am/MemoryStatUtilTest.java b/services/tests/servicestests/src/com/android/server/am/MemoryStatUtilTest.java index 5518ca5bd8cc..06c74371eb51 100644 --- a/services/tests/servicestests/src/com/android/server/am/MemoryStatUtilTest.java +++ b/services/tests/servicestests/src/com/android/server/am/MemoryStatUtilTest.java @@ -16,15 +16,15 @@ package com.android.server.am; +import static com.android.server.am.MemoryStatUtil.MemoryStat; import static com.android.server.am.MemoryStatUtil.parseMemoryStatFromMemcg; import static com.android.server.am.MemoryStatUtil.parseMemoryStatFromProcfs; -import static com.android.server.am.MemoryStatUtil.MemoryStat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/servicestests/src/com/android/server/am/PendingRemoteAnimationRegistryTest.java b/services/tests/servicestests/src/com/android/server/am/PendingRemoteAnimationRegistryTest.java index 2baf9952cb9e..f5f507f8b210 100644 --- a/services/tests/servicestests/src/com/android/server/am/PendingRemoteAnimationRegistryTest.java +++ b/services/tests/servicestests/src/com/android/server/am/PendingRemoteAnimationRegistryTest.java @@ -20,16 +20,14 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; -import android.annotation.Nullable; import android.app.ActivityOptions; -import android.os.Handler; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.FlakyTest; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; -import android.util.ArrayMap; import android.view.RemoteAnimationAdapter; +import androidx.test.filters.FlakyTest; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.server.testutils.OffsettableClock; import com.android.server.testutils.TestHandler; diff --git a/services/tests/servicestests/src/com/android/server/am/RecentTasksTest.java b/services/tests/servicestests/src/com/android/server/am/RecentTasksTest.java index b73ac8934cb0..aa9123b16aa7 100644 --- a/services/tests/servicestests/src/com/android/server/am/RecentTasksTest.java +++ b/services/tests/servicestests/src/com/android/server/am/RecentTasksTest.java @@ -35,16 +35,10 @@ import static org.junit.Assert.fail; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.spy; -import static java.lang.Integer.MAX_VALUE; - -import android.annotation.TestApi; import android.app.ActivityManager; import android.app.ActivityManager.RecentTaskInfo; import android.app.ActivityManager.RunningTaskInfo; -import android.app.WindowConfiguration; import android.content.ComponentName; import android.content.Context; import android.content.pm.PackageManager; @@ -53,24 +47,26 @@ import android.content.pm.UserInfo; import android.content.res.Configuration; import android.graphics.Rect; import android.os.Bundle; -import android.os.Debug; import android.os.Looper; import android.os.RemoteException; import android.os.SystemClock; import android.platform.test.annotations.Presubmit; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.MediumTest; -import android.support.test.runner.AndroidJUnit4; import android.util.MutableLong; import android.util.SparseArray; import android.util.SparseBooleanArray; +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.MediumTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.server.am.RecentTasks.Callbacks; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import static java.lang.Integer.MAX_VALUE; + import java.io.File; import java.util.ArrayList; import java.util.Arrays; diff --git a/services/tests/servicestests/src/com/android/server/am/RecentsAnimationTest.java b/services/tests/servicestests/src/com/android/server/am/RecentsAnimationTest.java index eefd973112f5..fa6a95ce275c 100644 --- a/services/tests/servicestests/src/com/android/server/am/RecentsAnimationTest.java +++ b/services/tests/servicestests/src/com/android/server/am/RecentsAnimationTest.java @@ -16,15 +16,13 @@ package com.android.server.am; -import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME; import static android.app.WindowConfiguration.ACTIVITY_TYPE_RECENTS; import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; -import static android.content.Intent.FLAG_ACTIVITY_MULTIPLE_TASK; -import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK; + import static com.android.server.wm.RecentsAnimationController.REORDER_KEEP_IN_PLACE; + import static org.mockito.Mockito.any; -import static org.mockito.Mockito.anyInt; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; @@ -35,11 +33,14 @@ import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.platform.test.annotations.Presubmit; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.MediumTest; -import android.support.test.runner.AndroidJUnit4; import android.view.IRecentsAnimationRunner; + +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.MediumTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.server.AttributeCache; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/servicestests/src/com/android/server/am/RunningTasksTest.java b/services/tests/servicestests/src/com/android/server/am/RunningTasksTest.java index c6ce7e1188e8..19288a9c28d7 100644 --- a/services/tests/servicestests/src/com/android/server/am/RunningTasksTest.java +++ b/services/tests/servicestests/src/com/android/server/am/RunningTasksTest.java @@ -30,11 +30,12 @@ import android.app.ActivityManager.RunningTaskInfo; import android.content.ComponentName; import android.content.Context; import android.platform.test.annotations.Presubmit; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.MediumTest; -import android.support.test.runner.AndroidJUnit4; import android.util.SparseArray; +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.MediumTest; +import androidx.test.runner.AndroidJUnit4; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/servicestests/src/com/android/server/am/SafeActivityOptionsTest.java b/services/tests/servicestests/src/com/android/server/am/SafeActivityOptionsTest.java index 168bc1782d56..8e4e7e6b63c3 100644 --- a/services/tests/servicestests/src/com/android/server/am/SafeActivityOptionsTest.java +++ b/services/tests/servicestests/src/com/android/server/am/SafeActivityOptionsTest.java @@ -20,9 +20,10 @@ import static org.junit.Assert.assertEquals; import android.app.ActivityOptions; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.FlakyTest; -import android.support.test.filters.MediumTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.FlakyTest; +import androidx.test.filters.MediumTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/servicestests/src/com/android/server/am/TaskLaunchParamsModifierTests.java b/services/tests/servicestests/src/com/android/server/am/TaskLaunchParamsModifierTests.java index 3d323f0eb783..eec55b162b3e 100644 --- a/services/tests/servicestests/src/com/android/server/am/TaskLaunchParamsModifierTests.java +++ b/services/tests/servicestests/src/com/android/server/am/TaskLaunchParamsModifierTests.java @@ -16,31 +16,24 @@ package com.android.server.am; -import android.content.pm.ActivityInfo.WindowLayout; -import android.graphics.Rect; -import android.platform.test.annotations.Presubmit; -import android.support.test.filters.MediumTest; -import android.support.test.runner.AndroidJUnit4; - -import android.view.Gravity; - -import org.junit.runner.RunWith; -import org.junit.Before; -import org.junit.Test; - -import org.mockito.invocation.InvocationOnMock; - import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD; import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; import static com.android.server.am.LaunchParamsController.LaunchParamsModifier.RESULT_CONTINUE; -import static org.mockito.Mockito.any; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; -import static org.mockito.Mockito.doAnswer; import static org.junit.Assert.assertEquals; +import android.content.pm.ActivityInfo.WindowLayout; +import android.graphics.Rect; +import android.platform.test.annotations.Presubmit; +import android.view.Gravity; + +import androidx.test.filters.MediumTest; +import androidx.test.runner.AndroidJUnit4; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; /** * Tests for exercising resizing task bounds. diff --git a/services/tests/servicestests/src/com/android/server/am/TaskRecordTests.java b/services/tests/servicestests/src/com/android/server/am/TaskRecordTests.java index 057fdc8c10bb..5aecec005fdb 100644 --- a/services/tests/servicestests/src/com/android/server/am/TaskRecordTests.java +++ b/services/tests/servicestests/src/com/android/server/am/TaskRecordTests.java @@ -29,20 +29,17 @@ import android.app.ActivityManager; import android.content.ComponentName; import android.content.Intent; import android.content.pm.ActivityInfo; -import android.content.res.XmlResourceParser; import android.graphics.Rect; import android.platform.test.annotations.Presubmit; import android.service.voice.IVoiceInteractionSession; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.MediumTest; -import android.support.test.runner.AndroidJUnit4; import android.util.Xml; -import com.android.frameworks.servicestests.R; +import androidx.test.filters.MediumTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.internal.app.IVoiceInteractor; import com.android.server.am.TaskRecord.TaskRecordFactory; -import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -57,9 +54,7 @@ import java.io.FileReader; import java.io.IOException; import java.io.OutputStream; import java.io.Reader; -import java.nio.file.Files; import java.util.ArrayList; -import java.util.Comparator; /** * Tests for exercising {@link TaskRecord}. diff --git a/services/tests/servicestests/src/com/android/server/am/TaskStackChangedListenerTest.java b/services/tests/servicestests/src/com/android/server/am/TaskStackChangedListenerTest.java index 0359096892bb..9406160b52ca 100644 --- a/services/tests/servicestests/src/com/android/server/am/TaskStackChangedListenerTest.java +++ b/services/tests/servicestests/src/com/android/server/am/TaskStackChangedListenerTest.java @@ -16,7 +16,8 @@ package com.android.server.am; -import static android.support.test.InstrumentationRegistry.getInstrumentation; +import static androidx.test.InstrumentationRegistry.getInstrumentation; + import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @@ -32,23 +33,25 @@ import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.pm.ActivityInfo; -import android.content.res.Resources.Theme; import android.os.RemoteException; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.MediumTest; -import android.support.test.runner.AndroidJUnit4; import android.support.test.uiautomator.UiDevice; import android.text.TextUtils; -import android.util.Pair; + +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.MediumTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.internal.annotations.GuardedBy; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.TimeUnit; + import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; + @MediumTest @RunWith(AndroidJUnit4.class) public class TaskStackChangedListenerTest { diff --git a/services/tests/servicestests/src/com/android/server/appops/AppOpsActiveWatcherTest.java b/services/tests/servicestests/src/com/android/server/appops/AppOpsActiveWatcherTest.java index 7f397d6a2cfc..7e0dfcfd73f0 100644 --- a/services/tests/servicestests/src/com/android/server/appops/AppOpsActiveWatcherTest.java +++ b/services/tests/servicestests/src/com/android/server/appops/AppOpsActiveWatcherTest.java @@ -31,9 +31,10 @@ import android.app.AppOpsManager; import android.app.AppOpsManager.OnOpActiveChangedListener; import android.content.Context; import android.os.Process; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/servicestests/src/com/android/server/appops/AppOpsServiceTest.java b/services/tests/servicestests/src/com/android/server/appops/AppOpsServiceTest.java index ad21a789b201..2c255cb75498 100644 --- a/services/tests/servicestests/src/com/android/server/appops/AppOpsServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/appops/AppOpsServiceTest.java @@ -29,9 +29,10 @@ import android.content.Context; import android.os.Handler; import android.os.HandlerThread; import android.os.Process; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.Before; import org.junit.Test; diff --git a/services/tests/servicestests/src/com/android/server/appwidget/AppWidgetServiceImplTest.java b/services/tests/servicestests/src/com/android/server/appwidget/AppWidgetServiceImplTest.java index 1bb93ccef093..f3c76b609c25 100644 --- a/services/tests/servicestests/src/com/android/server/appwidget/AppWidgetServiceImplTest.java +++ b/services/tests/servicestests/src/com/android/server/appwidget/AppWidgetServiceImplTest.java @@ -53,7 +53,6 @@ import java.util.List; import java.util.Random; import java.util.concurrent.CountDownLatch; - /** * Tests for {@link AppWidgetManager} and {@link AppWidgetServiceImpl}. * @@ -61,7 +60,7 @@ import java.util.concurrent.CountDownLatch; adb install \ -r -g ${ANDROID_PRODUCT_OUT}/data/app/FrameworksServicesTests/FrameworksServicesTests.apk && adb shell am instrument -e class com.android.server.appwidget.AppWidgetServiceImplTest \ - -w com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner + -w com.android.frameworks.servicestests/androidx.test.runner.AndroidJUnitRunner */ @SmallTest public class AppWidgetServiceImplTest extends InstrumentationTestCase { diff --git a/services/tests/servicestests/src/com/android/server/backup/BackupPasswordManagerTest.java b/services/tests/servicestests/src/com/android/server/backup/BackupPasswordManagerTest.java index bc162977de2b..bcf4c08d9bc4 100644 --- a/services/tests/servicestests/src/com/android/server/backup/BackupPasswordManagerTest.java +++ b/services/tests/servicestests/src/com/android/server/backup/BackupPasswordManagerTest.java @@ -25,8 +25,9 @@ import static org.mockito.Mockito.doThrow; import android.content.Context; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.server.backup.utils.PasswordUtils; diff --git a/services/tests/servicestests/src/com/android/server/backup/DataChangedJournalTest.java b/services/tests/servicestests/src/com/android/server/backup/DataChangedJournalTest.java index c27fd079bb89..ff450afbe972 100644 --- a/services/tests/servicestests/src/com/android/server/backup/DataChangedJournalTest.java +++ b/services/tests/servicestests/src/com/android/server/backup/DataChangedJournalTest.java @@ -19,8 +19,9 @@ package com.android.server.backup; import static com.google.common.truth.Truth.assertThat; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.Before; import org.junit.Rule; diff --git a/services/tests/servicestests/src/com/android/server/backup/ProcessedPackagesJournalTest.java b/services/tests/servicestests/src/com/android/server/backup/ProcessedPackagesJournalTest.java index b4a1f1857d77..cf4f9753ad9f 100644 --- a/services/tests/servicestests/src/com/android/server/backup/ProcessedPackagesJournalTest.java +++ b/services/tests/servicestests/src/com/android/server/backup/ProcessedPackagesJournalTest.java @@ -19,8 +19,9 @@ package com.android.server.backup; import static com.google.common.truth.Truth.assertThat; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.google.android.collect.Sets; diff --git a/services/tests/servicestests/src/com/android/server/backup/TrampolineTest.java b/services/tests/servicestests/src/com/android/server/backup/TrampolineTest.java index bbd999bdc466..79eba680c998 100644 --- a/services/tests/servicestests/src/com/android/server/backup/TrampolineTest.java +++ b/services/tests/servicestests/src/com/android/server/backup/TrampolineTest.java @@ -43,8 +43,9 @@ import android.os.Process; import android.os.RemoteException; import android.os.UserHandle; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.Before; import org.junit.Test; diff --git a/services/tests/servicestests/src/com/android/server/backup/restore/PerformAdbRestoreTaskTest.java b/services/tests/servicestests/src/com/android/server/backup/restore/PerformAdbRestoreTaskTest.java index 05f4c1339265..00c63915c83d 100644 --- a/services/tests/servicestests/src/com/android/server/backup/restore/PerformAdbRestoreTaskTest.java +++ b/services/tests/servicestests/src/com/android/server/backup/restore/PerformAdbRestoreTaskTest.java @@ -20,9 +20,10 @@ import static com.google.common.truth.Truth.assertThat; import android.content.Context; import android.platform.test.annotations.Presubmit; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.frameworks.servicestests.R; diff --git a/services/tests/servicestests/src/com/android/server/backup/utils/AppBackupUtilsTest.java b/services/tests/servicestests/src/com/android/server/backup/utils/AppBackupUtilsTest.java index 4f18be728d85..944a5585ffdc 100644 --- a/services/tests/servicestests/src/com/android/server/backup/utils/AppBackupUtilsTest.java +++ b/services/tests/servicestests/src/com/android/server/backup/utils/AppBackupUtilsTest.java @@ -20,7 +20,6 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; @@ -31,8 +30,9 @@ import android.content.pm.Signature; import android.content.pm.SigningInfo; import android.os.Process; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.server.backup.BackupManagerService; import com.android.server.backup.testutils.PackageManagerStub; diff --git a/services/tests/servicestests/src/com/android/server/backup/utils/BackupManagerMonitorUtilsTest.java b/services/tests/servicestests/src/com/android/server/backup/utils/BackupManagerMonitorUtilsTest.java index c40b411a21d7..d3fd89c3018a 100644 --- a/services/tests/servicestests/src/com/android/server/backup/utils/BackupManagerMonitorUtilsTest.java +++ b/services/tests/servicestests/src/com/android/server/backup/utils/BackupManagerMonitorUtilsTest.java @@ -18,9 +18,9 @@ package com.android.server.backup.utils; import static android.app.backup.BackupManagerMonitor.EXTRA_LOG_EVENT_CATEGORY; import static android.app.backup.BackupManagerMonitor.EXTRA_LOG_EVENT_ID; +import static android.app.backup.BackupManagerMonitor.EXTRA_LOG_EVENT_PACKAGE_LONG_VERSION; import static android.app.backup.BackupManagerMonitor.EXTRA_LOG_EVENT_PACKAGE_NAME; import static android.app.backup.BackupManagerMonitor.EXTRA_LOG_EVENT_PACKAGE_VERSION; -import static android.app.backup.BackupManagerMonitor.EXTRA_LOG_EVENT_PACKAGE_LONG_VERSION; import static com.google.common.truth.Truth.assertThat; @@ -33,8 +33,9 @@ import android.content.pm.PackageInfo; import android.os.Bundle; import android.os.RemoteException; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.Before; import org.junit.Test; diff --git a/services/tests/servicestests/src/com/android/server/backup/utils/BackupObserverUtilsTest.java b/services/tests/servicestests/src/com/android/server/backup/utils/BackupObserverUtilsTest.java index ebe6133e3bc7..cdffd35ab8d8 100644 --- a/services/tests/servicestests/src/com/android/server/backup/utils/BackupObserverUtilsTest.java +++ b/services/tests/servicestests/src/com/android/server/backup/utils/BackupObserverUtilsTest.java @@ -23,8 +23,9 @@ import android.app.backup.BackupProgress; import android.app.backup.IBackupObserver; import android.os.RemoteException; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.Before; import org.junit.Test; diff --git a/services/tests/servicestests/src/com/android/server/backup/utils/DataStreamFileCodecTest.java b/services/tests/servicestests/src/com/android/server/backup/utils/DataStreamFileCodecTest.java index bfb95c1a3eda..efd460387b85 100644 --- a/services/tests/servicestests/src/com/android/server/backup/utils/DataStreamFileCodecTest.java +++ b/services/tests/servicestests/src/com/android/server/backup/utils/DataStreamFileCodecTest.java @@ -19,8 +19,10 @@ package com.android.server.backup.utils; import static com.google.common.truth.Truth.assertThat; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; diff --git a/services/tests/servicestests/src/com/android/server/backup/utils/FullBackupRestoreObserverUtilsTest.java b/services/tests/servicestests/src/com/android/server/backup/utils/FullBackupRestoreObserverUtilsTest.java index 2f56598a0b86..9b861a4dbf03 100644 --- a/services/tests/servicestests/src/com/android/server/backup/utils/FullBackupRestoreObserverUtilsTest.java +++ b/services/tests/servicestests/src/com/android/server/backup/utils/FullBackupRestoreObserverUtilsTest.java @@ -24,8 +24,9 @@ import static org.mockito.Mockito.verify; import android.app.backup.IFullBackupRestoreObserver; import android.os.RemoteException; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.Before; import org.junit.Test; diff --git a/services/tests/servicestests/src/com/android/server/backup/utils/FullBackupUtilsTest.java b/services/tests/servicestests/src/com/android/server/backup/utils/FullBackupUtilsTest.java index 4e3de6415c10..ae0452a60161 100644 --- a/services/tests/servicestests/src/com/android/server/backup/utils/FullBackupUtilsTest.java +++ b/services/tests/servicestests/src/com/android/server/backup/utils/FullBackupUtilsTest.java @@ -25,8 +25,9 @@ import static org.mockito.Mockito.verifyZeroInteractions; import android.os.ParcelFileDescriptor; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.After; import org.junit.Before; @@ -40,7 +41,6 @@ import java.io.DataOutputStream; import java.io.EOFException; import java.io.File; import java.io.FileOutputStream; -import java.io.IOException; import java.io.OutputStream; import java.util.Random; diff --git a/services/tests/servicestests/src/com/android/server/backup/utils/SparseArrayUtilsTest.java b/services/tests/servicestests/src/com/android/server/backup/utils/SparseArrayUtilsTest.java index db55120dc023..679e098e782e 100644 --- a/services/tests/servicestests/src/com/android/server/backup/utils/SparseArrayUtilsTest.java +++ b/services/tests/servicestests/src/com/android/server/backup/utils/SparseArrayUtilsTest.java @@ -19,10 +19,11 @@ package com.android.server.backup.utils; import static com.google.common.truth.Truth.assertThat; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.util.SparseArray; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.google.android.collect.Sets; import org.junit.Test; diff --git a/services/tests/servicestests/src/com/android/server/backup/utils/TarBackupReaderTest.java b/services/tests/servicestests/src/com/android/server/backup/utils/TarBackupReaderTest.java index 2830a7459dc8..12f2991b3fea 100644 --- a/services/tests/servicestests/src/com/android/server/backup/utils/TarBackupReaderTest.java +++ b/services/tests/servicestests/src/com/android/server/backup/utils/TarBackupReaderTest.java @@ -29,8 +29,6 @@ import static android.app.backup.BackupManagerMonitor.LOG_EVENT_ID_VERSION_OF_BA import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.verifyZeroInteractions; @@ -47,13 +45,14 @@ import android.content.pm.SigningInfo; import android.os.Bundle; import android.os.Process; import android.platform.test.annotations.Presubmit; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.frameworks.servicestests.R; -import com.android.server.backup.FileMetadata; import com.android.server.backup.BackupManagerService; +import com.android.server.backup.FileMetadata; import com.android.server.backup.restore.PerformAdbRestoreTask; import com.android.server.backup.restore.RestorePolicy; import com.android.server.backup.testutils.PackageManagerStub; diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyConstantsTest.java b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyConstantsTest.java index 175fdd84fb04..be05245deea1 100644 --- a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyConstantsTest.java +++ b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyConstantsTest.java @@ -28,7 +28,7 @@ import android.test.suitebuilder.annotation.SmallTest; -w com.android.frameworks.servicestests - -w com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner + -w com.android.frameworks.servicestests/androidx.test.runner.AndroidJUnitRunner */ @SmallTest public class DevicePolicyConstantsTest extends AndroidTestCase { diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerServiceTestable.java b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerServiceTestable.java index cd3928558c4b..3f470548f5d2 100644 --- a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerServiceTestable.java +++ b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerServiceTestable.java @@ -37,12 +37,13 @@ import android.os.UserHandle; import android.os.UserManager; import android.os.UserManagerInternal; import android.security.KeyChain; -import android.support.annotation.NonNull; import android.telephony.TelephonyManager; import android.util.ArrayMap; import android.util.Pair; import android.view.IWindowManager; +import androidx.annotation.NonNull; + import com.android.internal.util.FunctionalUtils.ThrowingRunnable; import com.android.internal.widget.LockPatternUtils; import com.android.server.net.NetworkPolicyManagerInternal; diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java index 26ce7e4cb77c..7c2c841da2ad 100644 --- a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java +++ b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java @@ -117,7 +117,7 @@ import java.util.concurrent.TimeUnit; adb install \ -r ${ANDROID_PRODUCT_OUT}/data/app/FrameworksServicesTests/FrameworksServicesTests.apk && adb shell am instrument -e class com.android.server.devicepolicy.DevicePolicyManagerTest \ - -w com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner + -w com.android.frameworks.servicestests/androidx.test.runner.AndroidJUnitRunner (mmma frameworks/base/services/tests/servicestests/ for non-ninja build) * diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/DpmMockContext.java b/services/tests/servicestests/src/com/android/server/devicepolicy/DpmMockContext.java index 213961c1e1d9..be00bb662d17 100644 --- a/services/tests/servicestests/src/com/android/server/devicepolicy/DpmMockContext.java +++ b/services/tests/servicestests/src/com/android/server/devicepolicy/DpmMockContext.java @@ -30,11 +30,12 @@ import android.os.Bundle; import android.os.Handler; import android.os.UserHandle; import android.os.UserManagerInternal; -import android.support.annotation.NonNull; import android.test.mock.MockContext; import android.util.ArrayMap; import android.util.ExceptionUtils; +import androidx.annotation.NonNull; + import com.android.internal.util.FunctionalUtils; import org.junit.Assert; diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/OverlayPackagesProviderTest.java b/services/tests/servicestests/src/com/android/server/devicepolicy/OverlayPackagesProviderTest.java index 939a2725fb07..34edd9fb020b 100644 --- a/services/tests/servicestests/src/com/android/server/devicepolicy/OverlayPackagesProviderTest.java +++ b/services/tests/servicestests/src/com/android/server/devicepolicy/OverlayPackagesProviderTest.java @@ -33,11 +33,12 @@ import android.content.pm.ResolveInfo; import android.content.pm.ServiceInfo; import android.content.res.Resources; import android.os.RemoteException; -import android.support.test.InstrumentationRegistry; import android.test.AndroidTestCase; import android.test.mock.MockPackageManager; import android.view.inputmethod.InputMethodInfo; +import androidx.test.InstrumentationRegistry; + import com.android.internal.R; import com.android.internal.view.IInputMethodManager; diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/OwnersTest.java b/services/tests/servicestests/src/com/android/server/devicepolicy/OwnersTest.java index cb6a7472d3bc..5899bb0e94fe 100644 --- a/services/tests/servicestests/src/com/android/server/devicepolicy/OwnersTest.java +++ b/services/tests/servicestests/src/com/android/server/devicepolicy/OwnersTest.java @@ -16,12 +16,12 @@ package com.android.server.devicepolicy; -import com.android.server.devicepolicy.DevicePolicyManagerServiceTestable.OwnersTestable; - import android.content.ComponentName; import android.os.UserHandle; import android.test.suitebuilder.annotation.SmallTest; +import com.android.server.devicepolicy.DevicePolicyManagerServiceTestable.OwnersTestable; + /** * Tests for the DeviceOwner object that saves & loads device and policy owner information. * run this test with: @@ -29,7 +29,7 @@ import android.test.suitebuilder.annotation.SmallTest; adb install \ -r out/target/product/hammerhead/data/app/FrameworksServicesTests/FrameworksServicesTests.apk && adb shell am instrument -e class com.android.server.devicepolicy.OwnersTest \ - -w com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner + -w com.android.frameworks.servicestests/androidx.test.runner.AndroidJUnitRunner (mmma frameworks/base/services/tests/servicestests/ for non-ninja build) */ diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/SystemUpdatePolicyTest.java b/services/tests/servicestests/src/com/android/server/devicepolicy/SystemUpdatePolicyTest.java index e4e97012367a..e51859b5c829 100644 --- a/services/tests/servicestests/src/com/android/server/devicepolicy/SystemUpdatePolicyTest.java +++ b/services/tests/servicestests/src/com/android/server/devicepolicy/SystemUpdatePolicyTest.java @@ -20,6 +20,7 @@ import static android.app.admin.SystemUpdatePolicy.ValidationFailedException.ERR import static android.app.admin.SystemUpdatePolicy.ValidationFailedException.ERROR_DUPLICATE_OR_OVERLAP; import static android.app.admin.SystemUpdatePolicy.ValidationFailedException.ERROR_NEW_FREEZE_PERIOD_TOO_CLOSE; import static android.app.admin.SystemUpdatePolicy.ValidationFailedException.ERROR_NEW_FREEZE_PERIOD_TOO_LONG; + import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; @@ -27,10 +28,10 @@ import static org.junit.Assert.fail; import android.app.admin.FreezePeriod; import android.app.admin.SystemUpdatePolicy; import android.os.Parcel; -import android.support.test.runner.AndroidJUnit4; -import android.util.Pair; import android.util.Xml; +import androidx.test.runner.AndroidJUnit4; + import com.android.internal.util.FastXmlSerializer; import org.junit.Test; @@ -50,7 +51,6 @@ import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; - /** * Unit tests for {@link android.app.admin.SystemUpdatePolicy}. * Throughout this test, we use "MM-DD" format to denote dates without year. diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/TransferOwnershipMetadataManagerTest.java b/services/tests/servicestests/src/com/android/server/devicepolicy/TransferOwnershipMetadataManagerTest.java index e3e61ac29cce..257acb88141e 100644 --- a/services/tests/servicestests/src/com/android/server/devicepolicy/TransferOwnershipMetadataManagerTest.java +++ b/services/tests/servicestests/src/com/android/server/devicepolicy/TransferOwnershipMetadataManagerTest.java @@ -30,9 +30,10 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import android.os.Environment; -import android.support.test.runner.AndroidJUnit4; import android.util.Log; +import androidx.test.runner.AndroidJUnit4; + import com.android.server.devicepolicy.TransferOwnershipMetadataManager.Injector; import com.android.server.devicepolicy.TransferOwnershipMetadataManager.Metadata; diff --git a/services/tests/servicestests/src/com/android/server/display/AmbientBrightnessStatsTrackerTest.java b/services/tests/servicestests/src/com/android/server/display/AmbientBrightnessStatsTrackerTest.java index 8502e69dd060..e8e6dedaa258 100644 --- a/services/tests/servicestests/src/com/android/server/display/AmbientBrightnessStatsTrackerTest.java +++ b/services/tests/servicestests/src/com/android/server/display/AmbientBrightnessStatsTrackerTest.java @@ -25,9 +25,10 @@ import static org.junit.Assert.assertTrue; import android.hardware.display.AmbientBrightnessDayStats; import android.os.SystemClock; import android.os.UserManager; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.Before; import org.junit.Test; diff --git a/services/tests/servicestests/src/com/android/server/display/BrightnessMappingStrategyTest.java b/services/tests/servicestests/src/com/android/server/display/BrightnessMappingStrategyTest.java index 284d443bbcf9..ccdb76d74b05 100644 --- a/services/tests/servicestests/src/com/android/server/display/BrightnessMappingStrategyTest.java +++ b/services/tests/servicestests/src/com/android/server/display/BrightnessMappingStrategyTest.java @@ -30,11 +30,11 @@ import android.content.res.Resources; import android.content.res.TypedArray; import android.hardware.display.BrightnessConfiguration; import android.os.PowerManager; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.util.MathUtils; import android.util.Spline; -import android.util.Slog; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/servicestests/src/com/android/server/display/BrightnessTrackerTest.java b/services/tests/servicestests/src/com/android/server/display/BrightnessTrackerTest.java index 75dc96f13da4..ece9f42bd0eb 100644 --- a/services/tests/servicestests/src/com/android/server/display/BrightnessTrackerTest.java +++ b/services/tests/servicestests/src/com/android/server/display/BrightnessTrackerTest.java @@ -46,11 +46,12 @@ import android.os.RemoteException; import android.os.SystemClock; import android.os.UserManager; import android.provider.Settings; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.util.AtomicFile; +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/servicestests/src/com/android/server/display/ColorDisplayServiceTest.java b/services/tests/servicestests/src/com/android/server/display/ColorDisplayServiceTest.java index 6bd8011f1aa9..53711a623704 100644 --- a/services/tests/servicestests/src/com/android/server/display/ColorDisplayServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/display/ColorDisplayServiceTest.java @@ -16,6 +16,10 @@ package com.android.server.display; +import static com.google.common.truth.Truth.assertWithMessage; + +import static org.mockito.Mockito.doReturn; + import android.annotation.NonNull; import android.app.ActivityManager; import android.app.AlarmManager; @@ -26,10 +30,11 @@ import android.os.UserHandle; import android.provider.Settings; import android.provider.Settings.Secure; import android.provider.Settings.System; -import android.support.test.InstrumentationRegistry; -import android.support.test.runner.AndroidJUnit4; import android.test.mock.MockContentResolver; +import androidx.test.InstrumentationRegistry; +import androidx.test.runner.AndroidJUnit4; + import com.android.internal.app.ColorDisplayController; import com.android.internal.util.test.FakeSettingsProvider; import com.android.server.LocalServices; @@ -37,24 +42,22 @@ import com.android.server.SystemService; import com.android.server.twilight.TwilightListener; import com.android.server.twilight.TwilightManager; import com.android.server.twilight.TwilightState; -import java.time.LocalDateTime; -import java.time.ZoneId; + import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mockito; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.ZoneId; import java.util.Calendar; import java.util.HashMap; -import java.time.LocalTime; import java.util.Map; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; -import static com.google.common.truth.Truth.assertWithMessage; -import static org.mockito.Mockito.doReturn; - @RunWith(AndroidJUnit4.class) public class ColorDisplayServiceTest { diff --git a/services/tests/servicestests/src/com/android/server/display/PersistentDataStoreTest.java b/services/tests/servicestests/src/com/android/server/display/PersistentDataStoreTest.java index 675000e91a1c..196454bd32ce 100644 --- a/services/tests/servicestests/src/com/android/server/display/PersistentDataStoreTest.java +++ b/services/tests/servicestests/src/com/android/server/display/PersistentDataStoreTest.java @@ -22,23 +22,21 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import android.hardware.display.BrightnessConfiguration; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; -import android.util.AtomicFile; import android.util.Pair; +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.io.FileInputStream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.FileNotFoundException; -import java.io.InputStream; import java.io.IOException; +import java.io.InputStream; import java.io.OutputStream; -import java.io.PrintWriter; import java.nio.charset.StandardCharsets; @SmallTest diff --git a/services/tests/servicestests/src/com/android/server/job/BackgroundRestrictionsTest.java b/services/tests/servicestests/src/com/android/server/job/BackgroundRestrictionsTest.java index 14b118ebd2e1..be8e569c7a45 100644 --- a/services/tests/servicestests/src/com/android/server/job/BackgroundRestrictionsTest.java +++ b/services/tests/servicestests/src/com/android/server/job/BackgroundRestrictionsTest.java @@ -38,11 +38,12 @@ import android.os.ServiceManager; import android.os.SystemClock; import android.os.UserHandle; import android.provider.Settings; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.LargeTest; -import android.support.test.runner.AndroidJUnit4; import android.util.Log; +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.LargeTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.servicestests.apps.jobtestapp.TestJobActivity; import org.junit.After; diff --git a/services/tests/servicestests/src/com/android/server/job/JobSetTest.java b/services/tests/servicestests/src/com/android/server/job/JobSetTest.java index 83bd9fc2f648..e62e07d6858f 100644 --- a/services/tests/servicestests/src/com/android/server/job/JobSetTest.java +++ b/services/tests/servicestests/src/com/android/server/job/JobSetTest.java @@ -29,13 +29,14 @@ import android.content.Context; import android.content.pm.PackageManagerInternal; import android.os.Build; import android.os.UserHandle; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.util.ArraySet; import android.util.Log; import android.util.SparseArray; +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.server.LocalServices; import com.android.server.job.controllers.JobStatus; diff --git a/services/tests/servicestests/src/com/android/server/job/JobStoreTest.java b/services/tests/servicestests/src/com/android/server/job/JobStoreTest.java index 4ee2ff48fd62..543f51cba41f 100644 --- a/services/tests/servicestests/src/com/android/server/job/JobStoreTest.java +++ b/services/tests/servicestests/src/com/android/server/job/JobStoreTest.java @@ -22,12 +22,13 @@ import android.os.Parcel; import android.os.Parcelable; import android.os.PersistableBundle; import android.os.SystemClock; -import android.support.test.InstrumentationRegistry; -import android.support.test.runner.AndroidJUnit4; import android.test.RenamingDelegatingContext; import android.util.Log; import android.util.Pair; +import androidx.test.InstrumentationRegistry; +import androidx.test.runner.AndroidJUnit4; + import com.android.internal.util.HexDump; import com.android.server.IoThread; import com.android.server.LocalServices; diff --git a/services/tests/servicestests/src/com/android/server/job/controllers/JobStatusTest.java b/services/tests/servicestests/src/com/android/server/job/controllers/JobStatusTest.java index d78af22e49c9..1752479ade35 100644 --- a/services/tests/servicestests/src/com/android/server/job/controllers/JobStatusTest.java +++ b/services/tests/servicestests/src/com/android/server/job/controllers/JobStatusTest.java @@ -21,7 +21,8 @@ import static org.junit.Assert.assertEquals; import android.app.job.JobInfo; import android.content.ComponentName; import android.os.SystemClock; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.runner.AndroidJUnit4; import com.android.server.job.JobSchedulerService; diff --git a/services/tests/servicestests/src/com/android/server/locksettings/LockSettingsShellCommandTest.java b/services/tests/servicestests/src/com/android/server/locksettings/LockSettingsShellCommandTest.java index 424c08c4c931..9b6975c338db 100644 --- a/services/tests/servicestests/src/com/android/server/locksettings/LockSettingsShellCommandTest.java +++ b/services/tests/servicestests/src/com/android/server/locksettings/LockSettingsShellCommandTest.java @@ -29,24 +29,20 @@ import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import static java.io.FileDescriptor.*; - import android.app.ActivityManager; import android.content.Context; import android.os.Binder; -import android.os.Debug; import android.os.Handler; import android.os.Looper; import android.os.ResultReceiver; import android.os.ShellCallback; import android.platform.test.annotations.Presubmit; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; -import com.android.internal.widget.LockPatternUtils; +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; -import junit.framework.Assert; +import com.android.internal.widget.LockPatternUtils; import org.junit.Before; import org.junit.Test; @@ -54,7 +50,9 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; -import java.io.FileDescriptor; +import static java.io.FileDescriptor.err; +import static java.io.FileDescriptor.in; +import static java.io.FileDescriptor.out; /** * Test class for {@link LockSettingsShellCommand}. diff --git a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/KeySyncTaskTest.java b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/KeySyncTaskTest.java index 90947f44ef2b..a82c25028bc4 100644 --- a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/KeySyncTaskTest.java +++ b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/KeySyncTaskTest.java @@ -20,6 +20,7 @@ import static android.security.keystore.recovery.KeyChainProtectionParams.TYPE_L import static android.security.keystore.recovery.KeyChainProtectionParams.UI_FORMAT_PASSWORD; import static android.security.keystore.recovery.KeyChainProtectionParams.UI_FORMAT_PATTERN; import static android.security.keystore.recovery.KeyChainProtectionParams.UI_FORMAT_PIN; + import static com.android.internal.widget.LockPatternUtils.CREDENTIAL_TYPE_PASSWORD; import static com.android.internal.widget.LockPatternUtils.CREDENTIAL_TYPE_PATTERN; @@ -31,7 +32,6 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; - import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.eq; @@ -50,9 +50,10 @@ import android.security.keystore.recovery.KeyDerivationParams; import android.security.keystore.recovery.RecoveryController; import android.security.keystore.recovery.TrustedRootCertificates; import android.security.keystore.recovery.WrappedApplicationKey; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.server.locksettings.recoverablekeystore.storage.RecoverableKeyStoreDb; import com.android.server.locksettings.recoverablekeystore.storage.RecoverySnapshotStorage; diff --git a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/KeySyncUtilsTest.java b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/KeySyncUtilsTest.java index fae48c68b8db..f832d3ceef8e 100644 --- a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/KeySyncUtilsTest.java +++ b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/KeySyncUtilsTest.java @@ -22,8 +22,8 @@ import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.google.common.collect.ImmutableMap; diff --git a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/PlatformKeyManagerTest.java b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/PlatformKeyManagerTest.java index 0f0e3f386fec..13436e7f8674 100644 --- a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/PlatformKeyManagerTest.java +++ b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/PlatformKeyManagerTest.java @@ -32,9 +32,10 @@ import android.app.KeyguardManager; import android.content.Context; import android.security.keystore.KeyProperties; import android.security.keystore.KeyProtection; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.server.locksettings.recoverablekeystore.storage.RecoverableKeyStoreDb; diff --git a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/RecoverableKeyGeneratorTest.java b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/RecoverableKeyGeneratorTest.java index fd8b319b74ca..48afb8b6abcb 100644 --- a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/RecoverableKeyGeneratorTest.java +++ b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/RecoverableKeyGeneratorTest.java @@ -25,9 +25,10 @@ import android.content.Context; import android.security.keystore.AndroidKeyStoreSecretKey; import android.security.keystore.KeyGenParameterSpec; import android.security.keystore.KeyProperties; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.server.locksettings.recoverablekeystore.storage.RecoverableKeyStoreDb; diff --git a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManagerTest.java b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManagerTest.java index 8e86a87915e8..b15863dd3613 100644 --- a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManagerTest.java +++ b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManagerTest.java @@ -23,6 +23,7 @@ import static android.security.keystore.recovery.RecoveryController.ERROR_DOWNGR import static android.security.keystore.recovery.RecoveryController.ERROR_INVALID_CERTIFICATE; import static com.google.common.truth.Truth.assertThat; + import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; @@ -35,16 +36,14 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import android.Manifest; import android.app.KeyguardManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; -import android.Manifest; import android.os.Binder; import android.os.ServiceSpecificException; import android.os.UserHandle; -import android.security.KeyStore; -import android.security.keystore.AndroidKeyStoreProvider; import android.security.keystore.AndroidKeyStoreSecretKey; import android.security.keystore.KeyGenParameterSpec; import android.security.keystore.KeyProperties; @@ -53,9 +52,10 @@ import android.security.keystore.recovery.KeyDerivationParams; import android.security.keystore.recovery.RecoveryCertPath; import android.security.keystore.recovery.TrustedRootCertificates; import android.security.keystore.recovery.WrappedApplicationKey; -import android.support.test.filters.SmallTest; -import android.support.test.InstrumentationRegistry; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.server.locksettings.recoverablekeystore.storage.ApplicationKeyStorage; import com.android.server.locksettings.recoverablekeystore.storage.RecoverableKeyStoreDb; @@ -75,19 +75,16 @@ import org.mockito.Spy; import java.io.File; import java.nio.charset.StandardCharsets; -import java.security.UnrecoverableKeyException; import java.security.cert.CertPath; import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; import java.util.ArrayList; -import java.util.concurrent.Executors; import java.util.Map; import java.util.Random; +import java.util.concurrent.Executors; -import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; -import javax.crypto.spec.GCMParameterSpec; import javax.crypto.spec.SecretKeySpec; @SmallTest diff --git a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/RecoverySnapshotListenersStorageTest.java b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/RecoverySnapshotListenersStorageTest.java index acc200fa81ad..33038aa18337 100644 --- a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/RecoverySnapshotListenersStorageTest.java +++ b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/RecoverySnapshotListenersStorageTest.java @@ -8,9 +8,10 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/SecureBoxTest.java b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/SecureBoxTest.java index 35ec23b2ee6b..15b070829cdb 100644 --- a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/SecureBoxTest.java +++ b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/SecureBoxTest.java @@ -17,11 +17,16 @@ package com.android.server.locksettings.recoverablekeystore; import static com.google.common.truth.Truth.assertThat; + import static org.testng.Assert.assertThrows; import static org.testng.Assert.expectThrows; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + import java.math.BigInteger; import java.nio.charset.StandardCharsets; import java.security.InvalidKeyException; @@ -31,9 +36,8 @@ import java.security.KeyPairGenerator; import java.security.PrivateKey; import java.security.PublicKey; import java.security.spec.ECPrivateKeySpec; + import javax.crypto.AEADBadTagException; -import org.junit.Test; -import org.junit.runner.RunWith; @SmallTest @RunWith(AndroidJUnit4.class) diff --git a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/TestOnlyInsecureCertificateHelperTest.java b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/TestOnlyInsecureCertificateHelperTest.java index 67436cc4c853..944d6e0512eb 100644 --- a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/TestOnlyInsecureCertificateHelperTest.java +++ b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/TestOnlyInsecureCertificateHelperTest.java @@ -3,8 +3,9 @@ package com.android.server.locksettings.recoverablekeystore; import static com.google.common.truth.Truth.assertThat; import android.security.keystore.recovery.TrustedRootCertificates; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.internal.widget.LockPatternUtils; @@ -13,6 +14,7 @@ import org.junit.runner.RunWith; import java.util.HashMap; import java.util.Map; + import javax.crypto.SecretKey; @SmallTest diff --git a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/WrappedKeyTest.java b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/WrappedKeyTest.java index 56122a7d6d4c..b5ee60e7ec24 100644 --- a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/WrappedKeyTest.java +++ b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/WrappedKeyTest.java @@ -24,8 +24,9 @@ import static org.junit.Assert.fail; import android.security.keystore.AndroidKeyStoreSecretKey; import android.security.keystore.KeyGenParameterSpec; import android.security.keystore.KeyProperties; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.After; import org.junit.Test; diff --git a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/certificate/CertUtilsTest.java b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/certificate/CertUtilsTest.java index 9279698c6004..1cbebffb2a1c 100644 --- a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/certificate/CertUtilsTest.java +++ b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/certificate/CertUtilsTest.java @@ -18,13 +18,17 @@ package com.android.server.locksettings.recoverablekeystore.certificate; import static com.google.common.truth.Truth.assertThat; -import static java.nio.charset.StandardCharsets.UTF_8; - import static org.testng.Assert.assertThrows; import static org.testng.Assert.expectThrows; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.w3c.dom.Element; + +import static java.nio.charset.StandardCharsets.UTF_8; import java.io.InputStream; import java.security.KeyPairGenerator; @@ -39,10 +43,6 @@ import java.util.Base64; import java.util.Collections; import java.util.List; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.w3c.dom.Element; - @SmallTest @RunWith(AndroidJUnit4.class) public final class CertUtilsTest { diff --git a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/certificate/CertXmlTest.java b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/certificate/CertXmlTest.java index 52269d98da21..bbcc41113f5a 100644 --- a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/certificate/CertXmlTest.java +++ b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/certificate/CertXmlTest.java @@ -21,17 +21,17 @@ import static com.google.common.truth.Truth.assertThat; import static org.testng.Assert.assertThrows; import static org.testng.Assert.expectThrows; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; - -import java.security.cert.CertPath; -import java.security.cert.X509Certificate; -import java.util.List; +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.security.cert.CertPath; +import java.security.cert.X509Certificate; +import java.util.List; + @SmallTest @RunWith(AndroidJUnit4.class) public final class CertXmlTest { diff --git a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/certificate/SigXmlTest.java b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/certificate/SigXmlTest.java index 4d87006d4fe3..45adb4ba7a26 100644 --- a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/certificate/SigXmlTest.java +++ b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/certificate/SigXmlTest.java @@ -21,8 +21,8 @@ import static com.google.common.truth.Truth.assertThat; import static org.testng.Assert.assertThrows; import static org.testng.Assert.expectThrows; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.Before; import org.junit.Test; diff --git a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/certificate/TestData.java b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/certificate/TestData.java index 5eb416639b5a..c5792adea1ed 100644 --- a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/certificate/TestData.java +++ b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/certificate/TestData.java @@ -17,7 +17,8 @@ package com.android.server.locksettings.recoverablekeystore.certificate; import android.content.Context; -import android.support.test.InstrumentationRegistry; + +import androidx.test.InstrumentationRegistry; import com.google.common.io.ByteStreams; diff --git a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotSerializerTest.java b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotSerializerTest.java index a23ac0fce6ab..880255d79eb7 100644 --- a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotSerializerTest.java +++ b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotSerializerTest.java @@ -22,9 +22,9 @@ import android.security.keystore.recovery.KeyChainProtectionParams; import android.security.keystore.recovery.KeyChainSnapshot; import android.security.keystore.recovery.KeyDerivationParams; import android.security.keystore.recovery.WrappedApplicationKey; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.server.locksettings.recoverablekeystore.TestData; diff --git a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDbHelperTest.java b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDbHelperTest.java index 9b09dd1ae6ad..7130b4226ef1 100644 --- a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDbHelperTest.java +++ b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDbHelperTest.java @@ -18,25 +18,26 @@ package com.android.server.locksettings.recoverablekeystore.storage; import static com.google.common.truth.Truth.assertThat; -import static java.nio.charset.StandardCharsets.UTF_8; - -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; - import android.content.ContentValues; import android.content.Context; import android.database.sqlite.SQLiteDatabase; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.server.locksettings.recoverablekeystore.storage.RecoverableKeyStoreDbContract.KeysEntry; import com.android.server.locksettings.recoverablekeystore.storage.RecoverableKeyStoreDbContract.RecoveryServiceMetadataEntry; import com.android.server.locksettings.recoverablekeystore.storage.RecoverableKeyStoreDbContract.RootOfTrustEntry; import com.android.server.locksettings.recoverablekeystore.storage.RecoverableKeyStoreDbContract.UserMetadataEntry; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; + +import static java.nio.charset.StandardCharsets.UTF_8; + @SmallTest @RunWith(AndroidJUnit4.class) public class RecoverableKeyStoreDbHelperTest { diff --git a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDbTest.java b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDbTest.java index 940745e955e4..6a26f8c72e81 100644 --- a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDbTest.java +++ b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDbTest.java @@ -17,25 +17,27 @@ package com.android.server.locksettings.recoverablekeystore.storage; import static com.google.common.truth.Truth.assertThat; + import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; - import android.content.Context; import android.security.keystore.recovery.RecoveryController; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.server.locksettings.recoverablekeystore.TestData; import com.android.server.locksettings.recoverablekeystore.WrappedKey; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; + import java.io.File; import java.nio.charset.StandardCharsets; import java.security.KeyPairGenerator; diff --git a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/storage/RecoverySessionStorageTest.java b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/storage/RecoverySessionStorageTest.java index bb0474efee58..c2d1440c553e 100644 --- a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/storage/RecoverySessionStorageTest.java +++ b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/storage/RecoverySessionStorageTest.java @@ -22,8 +22,8 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorageTest.java b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorageTest.java index ad14c3a8adef..e8614af387b3 100644 --- a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorageTest.java +++ b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorageTest.java @@ -12,9 +12,10 @@ import android.security.keystore.recovery.KeyChainProtectionParams; import android.security.keystore.recovery.KeyChainSnapshot; import android.security.keystore.recovery.KeyDerivationParams; import android.security.keystore.recovery.WrappedApplicationKey; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.server.locksettings.recoverablekeystore.TestData; diff --git a/services/tests/servicestests/src/com/android/server/net/ConnOnActivityStartTest.java b/services/tests/servicestests/src/com/android/server/net/ConnOnActivityStartTest.java index 28b54ef84a91..fe7a376d9e8d 100644 --- a/services/tests/servicestests/src/com/android/server/net/ConnOnActivityStartTest.java +++ b/services/tests/servicestests/src/com/android/server/net/ConnOnActivityStartTest.java @@ -20,10 +20,6 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; -import com.android.frameworks.servicestests.R; -import com.android.servicestests.aidl.ICmdReceiverService; -import com.android.servicestests.aidl.INetworkStateObserver; - import android.content.ComponentName; import android.content.Context; import android.content.Intent; @@ -34,13 +30,17 @@ import android.os.Bundle; import android.os.IBinder; import android.os.SystemClock; import android.provider.Settings; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.LargeTest; -import android.support.test.runner.AndroidJUnit4; import android.support.test.uiautomator.UiDevice; import android.text.TextUtils; import android.util.Log; +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.LargeTest; +import androidx.test.runner.AndroidJUnit4; + +import com.android.servicestests.aidl.ICmdReceiverService; +import com.android.servicestests.aidl.INetworkStateObserver; + import org.junit.AfterClass; import org.junit.Assert; import org.junit.BeforeClass; @@ -64,7 +64,7 @@ import java.util.concurrent.TimeUnit; * Install: adb install -r \ * ${ANDROID_PRODUCT_OUT}/data/app/FrameworksServicesTests/FrameworksServicesTests.apk * Run: adb shell am instrument -e class com.android.server.net.ConnOnActivityStartTest -w \ - * com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner + * com.android.frameworks.servicestests/androidx.test.runner.AndroidJUnitRunner */ @LargeTest @RunWith(AndroidJUnit4.class) diff --git a/services/tests/servicestests/src/com/android/server/net/IpConfigStoreTest.java b/services/tests/servicestests/src/com/android/server/net/IpConfigStoreTest.java index 9f4b75462134..7767a2810ac2 100644 --- a/services/tests/servicestests/src/com/android/server/net/IpConfigStoreTest.java +++ b/services/tests/servicestests/src/com/android/server/net/IpConfigStoreTest.java @@ -27,9 +27,10 @@ import android.net.LinkAddress; import android.net.NetworkUtils; import android.net.ProxyInfo; import android.net.StaticIpConfiguration; -import android.support.test.runner.AndroidJUnit4; import android.util.ArrayMap; +import androidx.test.runner.AndroidJUnit4; + import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/servicestests/src/com/android/server/net/watchlist/HarmfulDigestsTests.java b/services/tests/servicestests/src/com/android/server/net/watchlist/HarmfulDigestsTests.java index a34f95eed040..be56855d93da 100644 --- a/services/tests/servicestests/src/com/android/server/net/watchlist/HarmfulDigestsTests.java +++ b/services/tests/servicestests/src/com/android/server/net/watchlist/HarmfulDigestsTests.java @@ -19,8 +19,8 @@ package com.android.server.net.watchlist; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.internal.util.HexDump; diff --git a/services/tests/servicestests/src/com/android/server/net/watchlist/NetworkWatchlistServiceTests.java b/services/tests/servicestests/src/com/android/server/net/watchlist/NetworkWatchlistServiceTests.java index a802ff75a19f..9c8a38219a9c 100644 --- a/services/tests/servicestests/src/com/android/server/net/watchlist/NetworkWatchlistServiceTests.java +++ b/services/tests/servicestests/src/com/android/server/net/watchlist/NetworkWatchlistServiceTests.java @@ -17,7 +17,6 @@ package com.android.server.net.watchlist; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; @@ -30,9 +29,10 @@ import android.os.IBinder; import android.os.Message; import android.os.Process; import android.os.RemoteException; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.MediumTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.MediumTest; +import androidx.test.runner.AndroidJUnit4; import com.android.server.ServiceThread; diff --git a/services/tests/servicestests/src/com/android/server/net/watchlist/PrivacyUtilsTests.java b/services/tests/servicestests/src/com/android/server/net/watchlist/PrivacyUtilsTests.java index 6f2237f1baef..9d2c40961ce4 100644 --- a/services/tests/servicestests/src/com/android/server/net/watchlist/PrivacyUtilsTests.java +++ b/services/tests/servicestests/src/com/android/server/net/watchlist/PrivacyUtilsTests.java @@ -21,8 +21,9 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import android.privacy.DifferentialPrivacyEncoder; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/servicestests/src/com/android/server/net/watchlist/ReportEncoderTests.java b/services/tests/servicestests/src/com/android/server/net/watchlist/ReportEncoderTests.java index cb4f6c5f9351..bf125f8f4c71 100644 --- a/services/tests/servicestests/src/com/android/server/net/watchlist/ReportEncoderTests.java +++ b/services/tests/servicestests/src/com/android/server/net/watchlist/ReportEncoderTests.java @@ -19,9 +19,13 @@ package com.android.server.net.watchlist; import static org.junit.Assert.assertEquals; import android.content.Context; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + +import com.android.service.nano.NetworkWatchlistAppResultProto; +import com.android.service.nano.NetworkWatchlistReportProto; import org.junit.After; import org.junit.Before; @@ -35,9 +39,6 @@ import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; -import com.android.service.nano.NetworkWatchlistReportProto; -import com.android.service.nano.NetworkWatchlistAppResultProto; - /** * runtest frameworks-services -c com.android.server.net.watchlist.ReportEncoderTests */ diff --git a/services/tests/servicestests/src/com/android/server/net/watchlist/WatchlistConfigTests.java b/services/tests/servicestests/src/com/android/server/net/watchlist/WatchlistConfigTests.java index 678f0188e485..fa61c59852f3 100644 --- a/services/tests/servicestests/src/com/android/server/net/watchlist/WatchlistConfigTests.java +++ b/services/tests/servicestests/src/com/android/server/net/watchlist/WatchlistConfigTests.java @@ -18,13 +18,14 @@ package com.android.server.net.watchlist; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; import android.content.Context; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.internal.util.HexDump; @@ -40,8 +41,6 @@ import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; -import java.util.Arrays; - /** * runtest frameworks-services -c com.android.server.net.watchlist.WatchlistConfigTests diff --git a/services/tests/servicestests/src/com/android/server/net/watchlist/WatchlistLoggingHandlerTests.java b/services/tests/servicestests/src/com/android/server/net/watchlist/WatchlistLoggingHandlerTests.java index 8399dac17699..8bbad8d6abde 100644 --- a/services/tests/servicestests/src/com/android/server/net/watchlist/WatchlistLoggingHandlerTests.java +++ b/services/tests/servicestests/src/com/android/server/net/watchlist/WatchlistLoggingHandlerTests.java @@ -17,11 +17,12 @@ package com.android.server.net.watchlist; import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.doAnswer; - import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; +import static org.mockito.ArgumentMatchers.anyInt; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.doAnswer; +import static org.mockito.Mockito.mock; import android.content.Context; import android.content.ContextWrapper; @@ -32,21 +33,18 @@ import android.content.pm.UserInfo; import android.os.FileUtils; import android.os.Looper; import android.os.UserManager; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; -import android.support.test.InstrumentationRegistry; + +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.mockito.invocation.InvocationOnMock; -import static org.mockito.ArgumentMatchers.anyInt; -import static org.mockito.ArgumentMatchers.anyString; - import java.io.File; import java.util.ArrayList; import java.util.Arrays; diff --git a/services/tests/servicestests/src/com/android/server/net/watchlist/WatchlistSettingsTests.java b/services/tests/servicestests/src/com/android/server/net/watchlist/WatchlistSettingsTests.java index 07158afbaaff..03b1c41c7a6b 100644 --- a/services/tests/servicestests/src/com/android/server/net/watchlist/WatchlistSettingsTests.java +++ b/services/tests/servicestests/src/com/android/server/net/watchlist/WatchlistSettingsTests.java @@ -20,9 +20,10 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; import android.content.Context; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.internal.util.HexDump; diff --git a/services/tests/servicestests/src/com/android/server/pm/InstallerTest.java b/services/tests/servicestests/src/com/android/server/pm/InstallerTest.java index b2eb57267cec..6591d6f67ac8 100644 --- a/services/tests/servicestests/src/com/android/server/pm/InstallerTest.java +++ b/services/tests/servicestests/src/com/android/server/pm/InstallerTest.java @@ -22,10 +22,11 @@ import android.content.pm.PackageManager; import android.content.pm.PackageStats; import android.os.SystemClock; import android.os.UserHandle; -import android.support.test.InstrumentationRegistry; -import android.support.test.runner.AndroidJUnit4; import android.util.Log; +import androidx.test.InstrumentationRegistry; +import androidx.test.runner.AndroidJUnit4; + import com.android.internal.util.ArrayUtils; import org.junit.After; diff --git a/services/tests/servicestests/src/com/android/server/pm/PackageManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/pm/PackageManagerServiceTest.java index cdac516c9577..e379cd09f0f8 100644 --- a/services/tests/servicestests/src/com/android/server/pm/PackageManagerServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/pm/PackageManagerServiceTest.java @@ -18,7 +18,8 @@ package com.android.server.pm; import android.content.IIntentReceiver; import android.os.Bundle; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.runner.AndroidJUnit4; import org.junit.After; import org.junit.Assert; diff --git a/services/tests/servicestests/src/com/android/server/pm/PackageManagerSettingsTests.java b/services/tests/servicestests/src/com/android/server/pm/PackageManagerSettingsTests.java index 97ff94fdab56..ee41c0bdac82 100644 --- a/services/tests/servicestests/src/com/android/server/pm/PackageManagerSettingsTests.java +++ b/services/tests/servicestests/src/com/android/server/pm/PackageManagerSettingsTests.java @@ -42,14 +42,15 @@ import android.os.BaseBundle; import android.os.PersistableBundle; import android.os.UserHandle; import android.os.UserManagerInternal; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.util.ArrayMap; import android.util.ArraySet; import android.util.Log; import android.util.LongSparseArray; +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.internal.os.AtomicFile; import com.android.server.LocalServices; import com.android.server.pm.permission.PermissionManagerInternal; diff --git a/services/tests/servicestests/src/com/android/server/pm/PackageParserTest.java b/services/tests/servicestests/src/com/android/server/pm/PackageParserTest.java index 69c0c0f74b8a..9736e68144ae 100644 --- a/services/tests/servicestests/src/com/android/server/pm/PackageParserTest.java +++ b/services/tests/servicestests/src/com/android/server/pm/PackageParserTest.java @@ -15,6 +15,8 @@ */ package com.android.server.pm; +import static org.junit.Assert.*; + import android.content.pm.ActivityInfo; import android.content.pm.ApplicationInfo; import android.content.pm.ConfigurationInfo; @@ -29,9 +31,18 @@ import android.content.pm.Signature; import android.os.Bundle; import android.os.Parcel; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.MediumTest; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; +import android.util.ArrayMap; +import android.util.ArraySet; + +import androidx.test.filters.MediumTest; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + +import libcore.io.IoUtils; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; import java.io.File; import java.lang.reflect.Array; @@ -43,16 +54,6 @@ import java.util.HashSet; import java.util.List; import java.util.Set; -import static org.junit.Assert.*; - -import android.util.ArrayMap; -import android.util.ArraySet; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; - -import libcore.io.IoUtils; - @RunWith(AndroidJUnit4.class) @MediumTest public class PackageParserTest { diff --git a/services/tests/servicestests/src/com/android/server/pm/PackageUserStateTest.java b/services/tests/servicestests/src/com/android/server/pm/PackageUserStateTest.java index 2a4ea8ccead3..4a33ca37f767 100644 --- a/services/tests/servicestests/src/com/android/server/pm/PackageUserStateTest.java +++ b/services/tests/servicestests/src/com/android/server/pm/PackageUserStateTest.java @@ -24,10 +24,11 @@ import static org.junit.Assert.assertThat; import android.content.pm.PackageUserState; import android.os.PersistableBundle; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.util.ArraySet; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/servicestests/src/com/android/server/pm/ParallelPackageParserTest.java b/services/tests/servicestests/src/com/android/server/pm/ParallelPackageParserTest.java index d665094c5a26..41489dc42a6a 100644 --- a/services/tests/servicestests/src/com/android/server/pm/ParallelPackageParserTest.java +++ b/services/tests/servicestests/src/com/android/server/pm/ParallelPackageParserTest.java @@ -17,9 +17,10 @@ package com.android.server.pm; import android.content.pm.PackageParser; -import android.support.test.runner.AndroidJUnit4; import android.util.Log; +import androidx.test.runner.AndroidJUnit4; + import junit.framework.Assert; import org.junit.Before; diff --git a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java index 7815004c18f9..c42c5962f755 100644 --- a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java +++ b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java @@ -117,7 +117,7 @@ import java.util.function.BiConsumer; adb install \ -r -g ${ANDROID_PRODUCT_OUT}/data/app/FrameworksServicesTests/FrameworksServicesTests.apk && adb shell am instrument -e class com.android.server.pm.ShortcutManagerTest1 \ - -w com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner + -w com.android.frameworks.servicestests/androidx.test.runner.AndroidJUnitRunner */ @SmallTest public class ShortcutManagerTest1 extends BaseShortcutManagerTest { diff --git a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest10.java b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest10.java index ca1e6afd11ed..ae01b409d322 100644 --- a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest10.java +++ b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest10.java @@ -37,7 +37,7 @@ import static org.mockito.Mockito.*; adb install \ -r -g ${ANDROID_PRODUCT_OUT}/data/app/FrameworksServicesTests/FrameworksServicesTests.apk && adb shell am instrument -e class com.android.server.pm.ShortcutManagerTest10 \ - -w com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner + -w com.android.frameworks.servicestests/androidx.test.runner.AndroidJUnitRunner */ @SmallTest public class ShortcutManagerTest10 extends BaseShortcutManagerTest { diff --git a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest2.java b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest2.java index fcdadaccd2ac..76d52fd48431 100644 --- a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest2.java +++ b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest2.java @@ -50,8 +50,6 @@ import com.android.server.pm.ShortcutUser.PackageWithUser; import java.io.File; import java.io.FileWriter; import java.io.IOException; -import java.io.PrintWriter; -import java.io.StringWriter; import java.io.Writer; import java.util.Locale; @@ -62,7 +60,7 @@ import java.util.Locale; adb install \ -r -g ${ANDROID_PRODUCT_OUT}/data/app/FrameworksServicesTests/FrameworksServicesTests.apk && adb shell am instrument -e class com.android.server.pm.ShortcutManagerTest2 \ - -w com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner + -w com.android.frameworks.servicestests/androidx.test.runner.AndroidJUnitRunner */ @SmallTest public class ShortcutManagerTest2 extends BaseShortcutManagerTest { diff --git a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest8.java b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest8.java index e9a329ca5a04..8a489d209887 100644 --- a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest8.java +++ b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest8.java @@ -56,7 +56,7 @@ import org.mockito.ArgumentCaptor; adb install \ -r -g ${ANDROID_PRODUCT_OUT}/data/app/FrameworksServicesTests/FrameworksServicesTests.apk && adb shell am instrument -e class com.android.server.pm.ShortcutManagerTest8 \ - -w com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner + -w com.android.frameworks.servicestests/androidx.test.runner.AndroidJUnitRunner * TODO for CTS * - Foreground check. diff --git a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest9.java b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest9.java index 012024f1b822..edb9df585aec 100644 --- a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest9.java +++ b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest9.java @@ -44,7 +44,7 @@ import org.mockito.ArgumentCaptor; adb install \ -r -g ${ANDROID_PRODUCT_OUT}/data/app/FrameworksServicesTests/FrameworksServicesTests.apk && adb shell am instrument -e class com.android.server.pm.ShortcutManagerTest9 \ - -w com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner + -w com.android.frameworks.servicestests/androidx.test.runner.AndroidJUnitRunner */ @SmallTest public class ShortcutManagerTest9 extends BaseShortcutManagerTest { diff --git a/services/tests/servicestests/src/com/android/server/pm/SuspendPackagesTest.java b/services/tests/servicestests/src/com/android/server/pm/SuspendPackagesTest.java index c186e48e8794..f115b9cd0fc5 100644 --- a/services/tests/servicestests/src/com/android/server/pm/SuspendPackagesTest.java +++ b/services/tests/servicestests/src/com/android/server/pm/SuspendPackagesTest.java @@ -41,9 +41,6 @@ import android.os.Looper; import android.os.PersistableBundle; import android.os.RemoteException; import android.os.UserHandle; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.LargeTest; -import android.support.test.runner.AndroidJUnit4; import android.support.test.uiautomator.By; import android.support.test.uiautomator.UiDevice; import android.support.test.uiautomator.UiObject2; @@ -52,6 +49,10 @@ import android.util.Log; import android.view.IWindowManager; import android.view.WindowManagerGlobal; +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.LargeTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.servicestests.apps.suspendtestapp.SuspendTestActivity; import com.android.servicestests.apps.suspendtestapp.SuspendTestReceiver; diff --git a/services/tests/servicestests/src/com/android/server/pm/UserDataPreparerTest.java b/services/tests/servicestests/src/com/android/server/pm/UserDataPreparerTest.java index bb35beb20a23..c489cf0a138d 100644 --- a/services/tests/servicestests/src/com/android/server/pm/UserDataPreparerTest.java +++ b/services/tests/servicestests/src/com/android/server/pm/UserDataPreparerTest.java @@ -16,15 +16,22 @@ package com.android.server.pm; +import static org.junit.Assert.assertEquals; +import static org.mockito.Matchers.eq; +import static org.mockito.Matchers.isNull; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + import android.content.Context; import android.content.pm.UserInfo; import android.os.FileUtils; import android.os.storage.StorageManager; import android.os.storage.VolumeInfo; import android.platform.test.annotations.Presubmit; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.Before; import org.junit.Test; @@ -39,19 +46,13 @@ import java.nio.charset.Charset; import java.util.Arrays; import java.util.Collections; -import static org.junit.Assert.assertEquals; -import static org.mockito.Matchers.eq; -import static org.mockito.Matchers.isNull; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - /** * <p>Run with:<pre> * m FrameworksServicesTests && * adb install \ * -r out/target/product/hammerhead/data/app/FrameworksServicesTests/FrameworksServicesTests.apk && * adb shell am instrument -e class com.android.server.pm.UserDataPreparerTest \ - * -w com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner + * -w com.android.frameworks.servicestests/androidx.test.runner.AndroidJUnitRunner * </pre> */ @RunWith(AndroidJUnit4.class) diff --git a/services/tests/servicestests/src/com/android/server/pm/UserLifecycleStressTest.java b/services/tests/servicestests/src/com/android/server/pm/UserLifecycleStressTest.java index 304e0e98790e..d6f7e37fcb39 100644 --- a/services/tests/servicestests/src/com/android/server/pm/UserLifecycleStressTest.java +++ b/services/tests/servicestests/src/com/android/server/pm/UserLifecycleStressTest.java @@ -24,11 +24,12 @@ import android.content.Context; import android.content.pm.UserInfo; import android.os.RemoteException; import android.os.UserManager; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.LargeTest; -import android.support.test.runner.AndroidJUnit4; import android.util.Log; +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.LargeTest; +import androidx.test.runner.AndroidJUnit4; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/servicestests/src/com/android/server/pm/UserManagerServiceCreateProfileTest.java b/services/tests/servicestests/src/com/android/server/pm/UserManagerServiceCreateProfileTest.java index c314de4f13eb..8dd896713834 100644 --- a/services/tests/servicestests/src/com/android/server/pm/UserManagerServiceCreateProfileTest.java +++ b/services/tests/servicestests/src/com/android/server/pm/UserManagerServiceCreateProfileTest.java @@ -24,20 +24,21 @@ import android.content.pm.UserInfo; import android.os.Looper; import android.os.UserHandle; import android.os.UserManagerInternal; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.MediumTest; -import android.support.test.runner.AndroidJUnit4; import android.util.IconDrawableFactory; -import com.android.server.LocalServices; +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.MediumTest; +import androidx.test.runner.AndroidJUnit4; -import java.util.List; +import com.android.server.LocalServices; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import java.util.List; + /** * <p>Run with:<pre> * runtest -c com.android.server.pm.UserManagerServiceCreateProfileTest frameworks-services diff --git a/services/tests/servicestests/src/com/android/server/pm/UserManagerServiceIdRecyclingTest.java b/services/tests/servicestests/src/com/android/server/pm/UserManagerServiceIdRecyclingTest.java index 35967fbaca3a..a9ce6187b9ac 100644 --- a/services/tests/servicestests/src/com/android/server/pm/UserManagerServiceIdRecyclingTest.java +++ b/services/tests/servicestests/src/com/android/server/pm/UserManagerServiceIdRecyclingTest.java @@ -16,12 +16,17 @@ package com.android.server.pm; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + import android.content.pm.UserInfo; import android.os.Looper; import android.os.UserManagerInternal; -import android.support.test.InstrumentationRegistry; -import android.support.test.runner.AndroidJUnit4; -import android.support.test.filters.MediumTest; + +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.MediumTest; +import androidx.test.runner.AndroidJUnit4; import com.android.server.LocalServices; @@ -31,17 +36,13 @@ import org.junit.runner.RunWith; import java.util.LinkedHashSet; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; - /** * <p>Run with:<pre> * m FrameworksServicesTests && * adb install \ * -r out/target/product/hammerhead/data/app/FrameworksServicesTests/FrameworksServicesTests.apk && * adb shell am instrument -e class com.android.server.pm.UserManagerServiceIdRecyclingTest \ - * -w com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner + * -w com.android.frameworks.servicestests/androidx.test.runner.AndroidJUnitRunner * </pre> */ @RunWith(AndroidJUnit4.class) diff --git a/services/tests/servicestests/src/com/android/server/pm/UserManagerServiceUserInfoTest.java b/services/tests/servicestests/src/com/android/server/pm/UserManagerServiceUserInfoTest.java index 092119e7ad71..806c71a7a9b8 100644 --- a/services/tests/servicestests/src/com/android/server/pm/UserManagerServiceUserInfoTest.java +++ b/services/tests/servicestests/src/com/android/server/pm/UserManagerServiceUserInfoTest.java @@ -16,16 +16,21 @@ package com.android.server.pm; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + import android.content.pm.UserInfo; import android.os.Looper; import android.os.Parcel; -import android.os.UserManagerInternal; import android.os.UserHandle; -import android.support.test.InstrumentationRegistry; -import android.support.test.runner.AndroidJUnit4; -import android.support.test.filters.MediumTest; +import android.os.UserManagerInternal; import android.text.TextUtils; +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.MediumTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.server.LocalServices; import com.android.server.pm.UserManagerService.UserData; @@ -38,10 +43,6 @@ import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.util.List; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - /** * <p>Run with:<pre> * runtest -c com.android.server.pm.UserManagerServiceUserInfoTest frameworks-services diff --git a/services/tests/servicestests/src/com/android/server/pm/UserRestrictionsUtilsTest.java b/services/tests/servicestests/src/com/android/server/pm/UserRestrictionsUtilsTest.java index 882bf32fcb68..2cc5323e56a2 100644 --- a/services/tests/servicestests/src/com/android/server/pm/UserRestrictionsUtilsTest.java +++ b/services/tests/servicestests/src/com/android/server/pm/UserRestrictionsUtilsTest.java @@ -35,7 +35,7 @@ import android.util.SparseArray; adb install \ -r out/target/product/hammerhead/data/app/FrameworksServicesTests/FrameworksServicesTests.apk && adb shell am instrument -e class com.android.server.pm.UserRestrictionsUtilsTest \ - -w com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner + -w com.android.frameworks.servicestests/androidx.test.runner.AndroidJUnitRunner * </pre> */ @SmallTest diff --git a/services/tests/servicestests/src/com/android/server/pm/backup/BackupUtilsTest.java b/services/tests/servicestests/src/com/android/server/pm/backup/BackupUtilsTest.java index caa1d02b47f0..13612a1f93f7 100644 --- a/services/tests/servicestests/src/com/android/server/pm/backup/BackupUtilsTest.java +++ b/services/tests/servicestests/src/com/android/server/pm/backup/BackupUtilsTest.java @@ -17,24 +17,22 @@ package com.android.server.pm.backup; import static com.google.common.truth.Truth.assertThat; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManagerInternal; import android.content.pm.PackageParser; -import android.content.pm.PackageParser.Package; import android.content.pm.Signature; import android.content.pm.SigningInfo; -import android.test.MoreAsserts; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; +import android.test.MoreAsserts; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.server.backup.BackupUtils; diff --git a/services/tests/servicestests/src/com/android/server/pm/dex/DexLoggerTests.java b/services/tests/servicestests/src/com/android/server/pm/dex/DexLoggerTests.java index bf8d4056ee55..792b25aea205 100644 --- a/services/tests/servicestests/src/com/android/server/pm/dex/DexLoggerTests.java +++ b/services/tests/servicestests/src/com/android/server/pm/dex/DexLoggerTests.java @@ -16,13 +16,20 @@ package com.android.server.pm.dex; +import static com.android.server.pm.dex.PackageDexUsage.DexUseInfo; + +import static com.google.common.truth.Truth.assertThat; + +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.doThrow; + import android.content.pm.ApplicationInfo; import android.content.pm.IPackageManager; -import android.content.pm.PackageInfo; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.os.storage.StorageManager; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.server.pm.Installer; import com.android.server.pm.Installer.InstallerException; @@ -40,14 +47,6 @@ import org.mockito.quality.Strictness; import java.util.Arrays; -import static com.google.common.truth.Truth.assertThat; - -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.doThrow; - -import static com.android.server.pm.dex.PackageDexUsage.PackageUseInfo; -import static com.android.server.pm.dex.PackageDexUsage.DexUseInfo; - @RunWith(AndroidJUnit4.class) @SmallTest public class DexLoggerTests { diff --git a/services/tests/servicestests/src/com/android/server/pm/dex/DexManagerTests.java b/services/tests/servicestests/src/com/android/server/pm/dex/DexManagerTests.java index b30c04309955..2a3ccbd965bc 100644 --- a/services/tests/servicestests/src/com/android/server/pm/dex/DexManagerTests.java +++ b/services/tests/servicestests/src/com/android/server/pm/dex/DexManagerTests.java @@ -16,13 +16,28 @@ package com.android.server.pm.dex; +import static com.android.server.pm.dex.PackageDexUsage.DexUseInfo; +import static com.android.server.pm.dex.PackageDexUsage.PackageUseInfo; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyInt; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + import android.content.pm.ApplicationInfo; import android.content.pm.IPackageManager; import android.content.pm.PackageInfo; import android.os.Build; import android.os.UserHandle; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.server.pm.Installer; @@ -30,14 +45,6 @@ import dalvik.system.DelegateLastClassLoader; import dalvik.system.PathClassLoader; import dalvik.system.VMRuntime; -import java.io.File; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -47,21 +54,13 @@ import org.mockito.junit.MockitoJUnit; import org.mockito.junit.MockitoRule; import org.mockito.quality.Strictness; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyInt; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import static com.android.server.pm.dex.PackageDexUsage.PackageUseInfo; -import static com.android.server.pm.dex.PackageDexUsage.DexUseInfo; +import java.io.File; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; @RunWith(AndroidJUnit4.class) @SmallTest diff --git a/services/tests/servicestests/src/com/android/server/pm/dex/DexoptOptionsTests.java b/services/tests/servicestests/src/com/android/server/pm/dex/DexoptOptionsTests.java index 93064bc4ab92..62589ebb92fe 100644 --- a/services/tests/servicestests/src/com/android/server/pm/dex/DexoptOptionsTests.java +++ b/services/tests/servicestests/src/com/android/server/pm/dex/DexoptOptionsTests.java @@ -19,19 +19,19 @@ package com.android.server.pm.dex; import static com.android.server.pm.PackageManagerServiceCompilerMapping.getCompilerFilterForReason; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; - -import org.junit.Test; -import org.junit.runner.RunWith; - import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.server.pm.PackageManagerService; import com.android.server.pm.PackageManagerServiceCompilerMapping; +import org.junit.Test; +import org.junit.runner.RunWith; + @RunWith(AndroidJUnit4.class) @SmallTest public class DexoptOptionsTests { diff --git a/services/tests/servicestests/src/com/android/server/pm/dex/DexoptUtilsTest.java b/services/tests/servicestests/src/com/android/server/pm/dex/DexoptUtilsTest.java index aa51ecdca40b..3a55c2290157 100644 --- a/services/tests/servicestests/src/com/android/server/pm/dex/DexoptUtilsTest.java +++ b/services/tests/servicestests/src/com/android/server/pm/dex/DexoptUtilsTest.java @@ -23,11 +23,12 @@ import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import android.content.pm.ApplicationInfo; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.content.pm.SharedLibraryInfo; import android.util.SparseArray; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import dalvik.system.DelegateLastClassLoader; import dalvik.system.DexClassLoader; import dalvik.system.PathClassLoader; @@ -36,8 +37,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import java.io.File; -import java.util.Arrays; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -332,6 +333,20 @@ public class DexoptUtilsTest { } @Test + public void testSharedLibraryContext() { + SharedLibraryInfo sharedLibrary = + createMockSharedLibrary(new String[] {"a.dex", "b.dex"}).get(0); + String context = DexoptUtils.getClassLoaderContext(sharedLibrary); + assertEquals("PCL[]", context); + + SharedLibraryInfo otherSharedLibrary = + createMockSharedLibrary(new String[] {"c.dex"}).get(0); + otherSharedLibrary.addDependency(sharedLibrary); + context = DexoptUtils.getClassLoaderContext(otherSharedLibrary); + assertEquals("PCL[]{PCL[a.dex:b.dex]}", context); + } + + @Test public void testProcessContextForDexLoad() { List<String> classLoaders = Arrays.asList( DELEGATE_LAST_CLASS_LOADER_NAME, diff --git a/services/tests/servicestests/src/com/android/server/pm/dex/PackageDexUsageTests.java b/services/tests/servicestests/src/com/android/server/pm/dex/PackageDexUsageTests.java index 0de0503aa85f..3107813dd9d5 100644 --- a/services/tests/servicestests/src/com/android/server/pm/dex/PackageDexUsageTests.java +++ b/services/tests/servicestests/src/com/android/server/pm/dex/PackageDexUsageTests.java @@ -16,12 +16,23 @@ package com.android.server.pm.dex; +import static com.android.server.pm.dex.PackageDexUsage.DexUseInfo; +import static com.android.server.pm.dex.PackageDexUsage.PackageUseInfo; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + import android.os.Build; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import dalvik.system.VMRuntime; -import java.util.Collections; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -35,16 +46,6 @@ import java.util.HashSet; import java.util.Map; import java.util.Set; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; - -import static com.android.server.pm.dex.PackageDexUsage.PackageUseInfo; -import static com.android.server.pm.dex.PackageDexUsage.DexUseInfo; - @RunWith(AndroidJUnit4.class) @SmallTest public class PackageDexUsageTests { diff --git a/services/tests/servicestests/src/com/android/server/policy/PhoneWindowManagerInsetsTest.java b/services/tests/servicestests/src/com/android/server/policy/PhoneWindowManagerInsetsTest.java index 7e18ce78c9d1..cce6ba718400 100644 --- a/services/tests/servicestests/src/com/android/server/policy/PhoneWindowManagerInsetsTest.java +++ b/services/tests/servicestests/src/com/android/server/policy/PhoneWindowManagerInsetsTest.java @@ -22,16 +22,15 @@ import static android.view.Surface.ROTATION_270; import static android.view.Surface.ROTATION_90; import static org.hamcrest.Matchers.equalTo; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; import android.graphics.Rect; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.view.Display; import android.view.DisplayInfo; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import org.junit.Before; import org.junit.Rule; import org.junit.Test; diff --git a/services/tests/servicestests/src/com/android/server/policy/PhoneWindowManagerLayoutTest.java b/services/tests/servicestests/src/com/android/server/policy/PhoneWindowManagerLayoutTest.java index 97a716f6bd99..64ec9addde97 100644 --- a/services/tests/servicestests/src/com/android/server/policy/PhoneWindowManagerLayoutTest.java +++ b/services/tests/servicestests/src/com/android/server/policy/PhoneWindowManagerLayoutTest.java @@ -22,7 +22,6 @@ import static android.view.View.SYSTEM_UI_FLAG_FULLSCREEN; import static android.view.View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN; import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; import static android.view.WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS; -import static android.view.WindowManager.LayoutParams.FLAG_FULLSCREEN; import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR; import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN; import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS; @@ -40,11 +39,12 @@ import static org.junit.Assert.assertThat; import android.graphics.PixelFormat; import android.graphics.Rect; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.view.DisplayCutout; import android.view.WindowManager; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/servicestests/src/com/android/server/policy/PhoneWindowManagerTest.java b/services/tests/servicestests/src/com/android/server/policy/PhoneWindowManagerTest.java index 30665b56c8dc..d92d7e03ef3b 100644 --- a/services/tests/servicestests/src/com/android/server/policy/PhoneWindowManagerTest.java +++ b/services/tests/servicestests/src/com/android/server/policy/PhoneWindowManagerTest.java @@ -19,6 +19,10 @@ package com.android.server.policy; import static android.view.View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR; import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT; +import static android.view.WindowManager.DOCKED_BOTTOM; +import static android.view.WindowManager.DOCKED_LEFT; +import static android.view.WindowManager.DOCKED_RIGHT; +import static android.view.WindowManager.DOCKED_TOP; import static android.view.WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM; import static android.view.WindowManager.LayoutParams.FLAG_DIM_BEHIND; import static android.view.WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS; @@ -28,13 +32,9 @@ import static android.view.WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION; import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION; import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD; -import static android.view.WindowManager.DOCKED_BOTTOM; -import static android.view.WindowManager.DOCKED_LEFT; -import static android.view.WindowManager.DOCKED_RIGHT; -import static android.view.WindowManager.DOCKED_TOP; -import static com.android.server.policy.WindowManagerPolicy.NAV_BAR_LEFT; import static com.android.server.policy.WindowManagerPolicy.NAV_BAR_BOTTOM; +import static com.android.server.policy.WindowManagerPolicy.NAV_BAR_LEFT; import static com.android.server.policy.WindowManagerPolicy.NAV_BAR_RIGHT; import static org.junit.Assert.assertEquals; @@ -44,10 +44,11 @@ import static org.junit.Assert.assertTrue; import android.graphics.PixelFormat; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.view.WindowManager; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/servicestests/src/com/android/server/policy/PhoneWindowManagerTestBase.java b/services/tests/servicestests/src/com/android/server/policy/PhoneWindowManagerTestBase.java index 1d378020fa4f..140e4ba1c94f 100644 --- a/services/tests/servicestests/src/com/android/server/policy/PhoneWindowManagerTestBase.java +++ b/services/tests/servicestests/src/com/android/server/policy/PhoneWindowManagerTestBase.java @@ -34,13 +34,11 @@ import android.content.ContextWrapper; import android.content.pm.PackageManager; import android.content.res.Resources; import android.graphics.Matrix; -import android.graphics.Path; import android.graphics.PixelFormat; import android.graphics.Rect; import android.graphics.RectF; import android.os.IBinder; import android.os.UserHandle; -import android.support.test.InstrumentationRegistry; import android.testing.TestableResources; import android.util.Pair; import android.view.Display; @@ -53,6 +51,8 @@ import android.view.WindowManagerGlobal; import android.view.accessibility.AccessibilityManager; import android.view.accessibility.IAccessibilityManager; +import androidx.test.InstrumentationRegistry; + import com.android.server.policy.keyguard.KeyguardServiceDelegate; import com.android.server.wm.DisplayFrames; import com.android.server.wm.utils.WmDisplayCutout; diff --git a/services/tests/servicestests/src/com/android/server/power/batterysaver/BatterySaverStateMachineTest.java b/services/tests/servicestests/src/com/android/server/power/batterysaver/BatterySaverStateMachineTest.java index 5b247253fd9c..e8394fe11d2e 100644 --- a/services/tests/servicestests/src/com/android/server/power/batterysaver/BatterySaverStateMachineTest.java +++ b/services/tests/servicestests/src/com/android/server/power/batterysaver/BatterySaverStateMachineTest.java @@ -24,10 +24,11 @@ import static org.mockito.Mockito.when; import android.content.ContentResolver; import android.provider.Settings.Global; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.test.mock.MockContext; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.google.common.base.Objects; import org.junit.Before; diff --git a/services/tests/servicestests/src/com/android/server/power/batterysaver/BatterySavingStatsTest.java b/services/tests/servicestests/src/com/android/server/power/batterysaver/BatterySavingStatsTest.java index 9bd4cc34662a..ba61fd2597a4 100644 --- a/services/tests/servicestests/src/com/android/server/power/batterysaver/BatterySavingStatsTest.java +++ b/services/tests/servicestests/src/com/android/server/power/batterysaver/BatterySavingStatsTest.java @@ -25,8 +25,9 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import android.metrics.LogMaker; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; diff --git a/services/tests/servicestests/src/com/android/server/power/batterysaver/CpuFrequenciesTest.java b/services/tests/servicestests/src/com/android/server/power/batterysaver/CpuFrequenciesTest.java index f72ec3411461..8371e9c85244 100644 --- a/services/tests/servicestests/src/com/android/server/power/batterysaver/CpuFrequenciesTest.java +++ b/services/tests/servicestests/src/com/android/server/power/batterysaver/CpuFrequenciesTest.java @@ -17,10 +17,11 @@ package com.android.server.power.batterysaver; import static org.junit.Assert.assertEquals; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.util.ArrayMap; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/servicestests/src/com/android/server/power/batterysaver/FileUpdaterTest.java b/services/tests/servicestests/src/com/android/server/power/batterysaver/FileUpdaterTest.java index 7324fe6de9d8..89c7dd45e9d3 100644 --- a/services/tests/servicestests/src/com/android/server/power/batterysaver/FileUpdaterTest.java +++ b/services/tests/servicestests/src/com/android/server/power/batterysaver/FileUpdaterTest.java @@ -27,14 +27,14 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import android.content.Context; -import android.hardware.camera2.impl.GetCommand; import android.os.Handler; import android.os.Looper; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.util.ArrayMap; +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -48,7 +48,6 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; - /** atest $ANDROID_BUILD_TOP/frameworks/base/services/tests/servicestests/src/com/android/server/power/batterysaver/FileUpdaterTest.java */ diff --git a/services/tests/servicestests/src/com/android/server/timedetector/SimpleTimeZoneDetectorStrategyTest.java b/services/tests/servicestests/src/com/android/server/timedetector/SimpleTimeZoneDetectorStrategyTest.java index 62f1433f7907..9e000770fe42 100644 --- a/services/tests/servicestests/src/com/android/server/timedetector/SimpleTimeZoneDetectorStrategyTest.java +++ b/services/tests/servicestests/src/com/android/server/timedetector/SimpleTimeZoneDetectorStrategyTest.java @@ -28,9 +28,10 @@ import android.content.Intent; import android.icu.util.Calendar; import android.icu.util.GregorianCalendar; import android.icu.util.TimeZone; -import android.support.test.runner.AndroidJUnit4; import android.util.TimestampedValue; +import androidx.test.runner.AndroidJUnit4; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/servicestests/src/com/android/server/timedetector/TimeDetectorServiceTest.java b/services/tests/servicestests/src/com/android/server/timedetector/TimeDetectorServiceTest.java index ed74cd7b3e53..45fef764482f 100644 --- a/services/tests/servicestests/src/com/android/server/timedetector/TimeDetectorServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/timedetector/TimeDetectorServiceTest.java @@ -31,15 +31,16 @@ import static org.mockito.Mockito.when; import android.app.timedetector.TimeSignal; import android.content.Context; import android.content.pm.PackageManager; -import android.support.test.runner.AndroidJUnit4; import android.util.TimestampedValue; +import androidx.test.runner.AndroidJUnit4; + +import com.android.server.timedetector.TimeDetectorStrategy.Callback; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import com.android.server.timedetector.TimeDetectorStrategy.Callback; - import java.io.PrintWriter; @RunWith(AndroidJUnit4.class) diff --git a/services/tests/servicestests/src/com/android/server/timedetector/TimeDetectorStrategyTest.java b/services/tests/servicestests/src/com/android/server/timedetector/TimeDetectorStrategyTest.java index 301ded47ee0b..239d413c12d2 100644 --- a/services/tests/servicestests/src/com/android/server/timedetector/TimeDetectorStrategyTest.java +++ b/services/tests/servicestests/src/com/android/server/timedetector/TimeDetectorStrategyTest.java @@ -18,9 +18,10 @@ package com.android.server.timedetector; import static org.junit.Assert.assertEquals; -import android.support.test.runner.AndroidJUnit4; import android.util.TimestampedValue; +import androidx.test.runner.AndroidJUnit4; + import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/servicestests/src/com/android/server/timezone/CheckTokenTest.java b/services/tests/servicestests/src/com/android/server/timezone/CheckTokenTest.java index 9603a06aaa66..f7d282b95dff 100644 --- a/services/tests/servicestests/src/com/android/server/timezone/CheckTokenTest.java +++ b/services/tests/servicestests/src/com/android/server/timezone/CheckTokenTest.java @@ -16,16 +16,16 @@ package com.android.server.timezone; -import org.junit.Test; - -import android.support.test.filters.SmallTest; - -import java.io.IOException; - import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.fail; +import androidx.test.filters.SmallTest; + +import org.junit.Test; + +import java.io.IOException; + @SmallTest public class CheckTokenTest { diff --git a/services/tests/servicestests/src/com/android/server/timezone/PackageStatusStorageTest.java b/services/tests/servicestests/src/com/android/server/timezone/PackageStatusStorageTest.java index 74013b792f07..090db111ab31 100644 --- a/services/tests/servicestests/src/com/android/server/timezone/PackageStatusStorageTest.java +++ b/services/tests/servicestests/src/com/android/server/timezone/PackageStatusStorageTest.java @@ -16,26 +16,28 @@ package com.android.server.timezone; +import static junit.framework.Assert.assertTrue; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.fail; + +import android.content.Context; + +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; + import org.junit.After; import org.junit.Before; import org.junit.Test; -import android.content.Context; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; - import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.io.StringWriter; -import static junit.framework.Assert.assertTrue; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.fail; - @SmallTest public class PackageStatusStorageTest { private static final PackageVersions VALID_PACKAGE_VERSIONS = new PackageVersions(1, 2); diff --git a/services/tests/servicestests/src/com/android/server/timezone/PackageStatusTest.java b/services/tests/servicestests/src/com/android/server/timezone/PackageStatusTest.java index c0ae81e30049..9b45f0542610 100644 --- a/services/tests/servicestests/src/com/android/server/timezone/PackageStatusTest.java +++ b/services/tests/servicestests/src/com/android/server/timezone/PackageStatusTest.java @@ -16,13 +16,13 @@ package com.android.server.timezone; -import org.junit.Test; - -import android.support.test.filters.SmallTest; - import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import androidx.test.filters.SmallTest; + +import org.junit.Test; + @SmallTest public class PackageStatusTest { diff --git a/services/tests/servicestests/src/com/android/server/timezone/PackageTrackerTest.java b/services/tests/servicestests/src/com/android/server/timezone/PackageTrackerTest.java index d9f4adfb5e06..1356ea250526 100644 --- a/services/tests/servicestests/src/com/android/server/timezone/PackageTrackerTest.java +++ b/services/tests/servicestests/src/com/android/server/timezone/PackageTrackerTest.java @@ -16,6 +16,25 @@ package com.android.server.timezone; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; +import static org.mockito.hamcrest.MockitoHamcrest.argThat; + +import android.app.timezone.RulesUpdaterContract; +import android.content.Context; +import android.content.Intent; +import android.provider.TimeZoneRulesDataContract; + +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; + import org.hamcrest.BaseMatcher; import org.hamcrest.Description; import org.hamcrest.Matcher; @@ -23,13 +42,6 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; -import android.app.timezone.RulesUpdaterContract; -import android.content.Context; -import android.content.Intent; -import android.provider.TimeZoneRulesDataContract; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; - import java.io.File; import java.io.PrintWriter; import java.io.StringWriter; @@ -37,17 +49,6 @@ import java.time.Clock; import java.time.Instant; import java.time.ZoneId; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; -import static org.mockito.hamcrest.MockitoHamcrest.argThat; - /** * White box interaction / unit testing of the {@link PackageTracker}. */ diff --git a/services/tests/servicestests/src/com/android/server/timezone/PackageVersionsTest.java b/services/tests/servicestests/src/com/android/server/timezone/PackageVersionsTest.java index a470f8f6c230..9ffc4e97e019 100644 --- a/services/tests/servicestests/src/com/android/server/timezone/PackageVersionsTest.java +++ b/services/tests/servicestests/src/com/android/server/timezone/PackageVersionsTest.java @@ -16,13 +16,13 @@ package com.android.server.timezone; -import org.junit.Test; - -import android.support.test.filters.SmallTest; - import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import androidx.test.filters.SmallTest; + +import org.junit.Test; + @SmallTest public class PackageVersionsTest { diff --git a/services/tests/servicestests/src/com/android/server/usage/AppStandbyControllerTests.java b/services/tests/servicestests/src/com/android/server/usage/AppStandbyControllerTests.java index 39fc715c7770..b3683def7d42 100644 --- a/services/tests/servicestests/src/com/android/server/usage/AppStandbyControllerTests.java +++ b/services/tests/servicestests/src/com/android/server/usage/AppStandbyControllerTests.java @@ -37,11 +37,9 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertTrue; - import static org.junit.Assert.fail; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Matchers.anyInt; -import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; @@ -58,12 +56,13 @@ import android.os.Handler; import android.os.Looper; import android.os.RemoteException; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.InstrumentationRegistry; -import android.support.test.runner.AndroidJUnit4; import android.util.ArraySet; import android.view.Display; +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.server.SystemService; import org.junit.Before; diff --git a/services/tests/servicestests/src/com/android/server/usage/AppTimeLimitControllerTests.java b/services/tests/servicestests/src/com/android/server/usage/AppTimeLimitControllerTests.java index 84475bb365b7..047adddd794d 100644 --- a/services/tests/servicestests/src/com/android/server/usage/AppTimeLimitControllerTests.java +++ b/services/tests/servicestests/src/com/android/server/usage/AppTimeLimitControllerTests.java @@ -19,13 +19,13 @@ package com.android.server.usage; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; import android.app.PendingIntent; import android.os.HandlerThread; import android.os.Looper; -import android.support.test.filters.MediumTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.MediumTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.After; import org.junit.Before; diff --git a/services/tests/servicestests/src/com/android/server/utils/PriorityDumpTest.java b/services/tests/servicestests/src/com/android/server/utils/PriorityDumpTest.java index da45d81c6a08..4eb2474da740 100644 --- a/services/tests/servicestests/src/com/android/server/utils/PriorityDumpTest.java +++ b/services/tests/servicestests/src/com/android/server/utils/PriorityDumpTest.java @@ -18,14 +18,16 @@ package com.android.server.utils; import static com.android.server.utils.PriorityDump.dump; -import static org.junit.Assert.assertSame; import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertSame; import static org.mockito.Matchers.eq; import static org.mockito.Matchers.same; import static org.mockito.Mockito.verify; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; + +import androidx.test.filters.SmallTest; + import com.android.server.utils.PriorityDump.PriorityDumper; import org.junit.Before; diff --git a/services/tests/servicestests/src/com/android/server/wallpaper/WallpaperServiceTests.java b/services/tests/servicestests/src/com/android/server/wallpaper/WallpaperServiceTests.java index 9c010a07135d..2dd881712e67 100644 --- a/services/tests/servicestests/src/com/android/server/wallpaper/WallpaperServiceTests.java +++ b/services/tests/servicestests/src/com/android/server/wallpaper/WallpaperServiceTests.java @@ -24,9 +24,10 @@ import android.os.Handler; import android.os.Message; import android.os.SystemClock; import android.service.wallpaper.WallpaperService; -import android.support.test.annotation.UiThreadTest; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.annotation.UiThreadTest; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/servicestests/src/com/android/server/webkit/WebViewUpdateServiceTest.java b/services/tests/servicestests/src/com/android/server/webkit/WebViewUpdateServiceTest.java index dca09af7b3b7..02c6ae0a0ad9 100644 --- a/services/tests/servicestests/src/com/android/server/webkit/WebViewUpdateServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/webkit/WebViewUpdateServiceTest.java @@ -19,15 +19,12 @@ package com.android.server.webkit; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.Signature; import android.os.Build; import android.os.Bundle; -import android.support.test.InstrumentationRegistry; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.MediumTest; import android.util.Base64; import android.webkit.UserPackage; @@ -35,17 +32,17 @@ import android.webkit.WebViewFactory; import android.webkit.WebViewProviderInfo; import android.webkit.WebViewProviderResponse; +import androidx.test.InstrumentationRegistry; +import androidx.test.runner.AndroidJUnit4; + import org.junit.Test; import org.junit.runner.RunWith; - import org.mockito.ArgumentMatcher; -import org.mockito.Mockito; import org.mockito.Matchers; +import org.mockito.Mockito; -import java.lang.Integer; import java.util.concurrent.CountDownLatch; - /** * Tests for WebViewUpdateService runtest --path frameworks/base/services/tests/servicestests/ \ diff --git a/services/tests/servicestests/src/com/android/server/wm/AnimatingAppWindowTokenRegistryTest.java b/services/tests/servicestests/src/com/android/server/wm/AnimatingAppWindowTokenRegistryTest.java index 164c80b2427a..b5fe8b159c47 100644 --- a/services/tests/servicestests/src/com/android/server/wm/AnimatingAppWindowTokenRegistryTest.java +++ b/services/tests/servicestests/src/com/android/server/wm/AnimatingAppWindowTokenRegistryTest.java @@ -18,27 +18,22 @@ package com.android.server.wm; import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; -import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE; -import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; + import static junit.framework.Assert.assertFalse; import static junit.framework.Assert.assertTrue; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.mockito.ArgumentMatchers.any; + import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyZeroInteractions; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.FlakyTest; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; -import com.android.server.wm.SurfaceAnimator.OnAnimationFinishedCallback; +import androidx.test.filters.FlakyTest; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; diff --git a/services/tests/servicestests/src/com/android/server/wm/AppTransitionTests.java b/services/tests/servicestests/src/com/android/server/wm/AppTransitionTests.java index be7d781799fa..3053c4197f82 100644 --- a/services/tests/servicestests/src/com/android/server/wm/AppTransitionTests.java +++ b/services/tests/servicestests/src/com/android/server/wm/AppTransitionTests.java @@ -20,13 +20,15 @@ import static android.view.WindowManager.TRANSIT_ACTIVITY_OPEN; import static android.view.WindowManager.TRANSIT_CRASHING_ACTIVITY_CLOSE; import static android.view.WindowManager.TRANSIT_KEYGUARD_GOING_AWAY; import static android.view.WindowManager.TRANSIT_KEYGUARD_UNOCCLUDE; + import static org.junit.Assert.assertEquals; import android.content.Context; import android.platform.test.annotations.Presubmit; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.Before; import org.junit.Rule; diff --git a/services/tests/servicestests/src/com/android/server/wm/AppWindowContainerControllerTests.java b/services/tests/servicestests/src/com/android/server/wm/AppWindowContainerControllerTests.java index e0645b1f4bfb..fcd8a39e4d07 100644 --- a/services/tests/servicestests/src/com/android/server/wm/AppWindowContainerControllerTests.java +++ b/services/tests/servicestests/src/com/android/server/wm/AppWindowContainerControllerTests.java @@ -16,26 +16,28 @@ package com.android.server.wm; -import android.support.test.filters.FlakyTest; -import org.junit.Test; - -import android.platform.test.annotations.Presubmit; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; - import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE; import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED; import static android.content.res.Configuration.EMPTY; import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_STARTING; + import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.fail; +import android.platform.test.annotations.Presubmit; + +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.FlakyTest; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.server.wm.WindowTestUtils.TestTaskWindowContainerController; +import org.junit.Test; + /** * Test class for {@link AppWindowContainerController}. * diff --git a/services/tests/servicestests/src/com/android/server/wm/AppWindowTokenTests.java b/services/tests/servicestests/src/com/android/server/wm/AppWindowTokenTests.java index f6599dcaf87e..9dd1006ac1fb 100644 --- a/services/tests/servicestests/src/com/android/server/wm/AppWindowTokenTests.java +++ b/services/tests/servicestests/src/com/android/server/wm/AppWindowTokenTests.java @@ -16,16 +16,6 @@ package com.android.server.wm; -import org.junit.Test; -import org.junit.runner.RunWith; - -import android.platform.test.annotations.Presubmit; -import android.support.test.filters.FlakyTest; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; -import android.view.Surface; -import android.view.WindowManager; - import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_BEHIND; import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE; import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE; @@ -38,10 +28,23 @@ import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION; import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_STARTING; import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION; import static android.view.WindowManager.TRANSIT_UNSET; + import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; + +import android.platform.test.annotations.Presubmit; +import android.view.Surface; +import android.view.WindowManager; + +import androidx.test.filters.FlakyTest; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + /** * Tests for the {@link AppWindowToken} class. * diff --git a/services/tests/servicestests/src/com/android/server/wm/BoundsAnimationControllerTests.java b/services/tests/servicestests/src/com/android/server/wm/BoundsAnimationControllerTests.java index ff631e74e004..e6d81a7a7702 100644 --- a/services/tests/servicestests/src/com/android/server/wm/BoundsAnimationControllerTests.java +++ b/services/tests/servicestests/src/com/android/server/wm/BoundsAnimationControllerTests.java @@ -21,34 +21,30 @@ import static com.android.server.wm.BoundsAnimationController.SCHEDULE_PIP_MODE_ import static com.android.server.wm.BoundsAnimationController.SCHEDULE_PIP_MODE_CHANGED_ON_START; import static com.android.server.wm.BoundsAnimationController.SchedulePipModeChangedState; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertSame; +import static org.junit.Assert.assertTrue; + import android.animation.ValueAnimator; import android.content.Context; import android.graphics.Rect; import android.os.Handler; import android.os.Looper; import android.platform.test.annotations.Presubmit; -import android.support.test.InstrumentationRegistry; -import android.support.test.annotation.UiThreadTest; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; +import androidx.test.InstrumentationRegistry; +import androidx.test.annotation.UiThreadTest; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + +import com.android.server.wm.BoundsAnimationController.BoundsAnimator; import com.android.server.wm.WindowManagerInternal.AppTransitionListener; import org.junit.Test; import org.junit.runner.RunWith; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNotSame; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; - -import com.android.server.wm.BoundsAnimationController.BoundsAnimator; - /** * Test class for {@link BoundsAnimationController} to ensure that it sends the right callbacks * depending on the various interactions. diff --git a/services/tests/servicestests/src/com/android/server/wm/ConfigurationContainerTests.java b/services/tests/servicestests/src/com/android/server/wm/ConfigurationContainerTests.java index 192e1564ae8d..74370bbe454a 100644 --- a/services/tests/servicestests/src/com/android/server/wm/ConfigurationContainerTests.java +++ b/services/tests/servicestests/src/com/android/server/wm/ConfigurationContainerTests.java @@ -17,7 +17,6 @@ package com.android.server.wm; import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME; -import static android.app.WindowConfiguration.ACTIVITY_TYPE_RECENTS; import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD; import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED; import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; @@ -28,13 +27,16 @@ import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE; import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT; import static android.content.res.Configuration.EMPTY; + import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import android.content.res.Configuration; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/servicestests/src/com/android/server/wm/DimmerTests.java b/services/tests/servicestests/src/com/android/server/wm/DimmerTests.java index 6769e40dca78..21555e38a7e8 100644 --- a/services/tests/servicestests/src/com/android/server/wm/DimmerTests.java +++ b/services/tests/servicestests/src/com/android/server/wm/DimmerTests.java @@ -29,10 +29,11 @@ import static org.mockito.Mockito.verify; import android.graphics.Rect; import android.platform.test.annotations.Presubmit; -import android.support.test.runner.AndroidJUnit4; import android.view.SurfaceControl; import android.view.SurfaceSession; +import androidx.test.runner.AndroidJUnit4; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java b/services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java index ac196f9c80dc..bfac2306a666 100644 --- a/services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java +++ b/services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java @@ -28,6 +28,7 @@ import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_ATTACHED_ import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION; import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR; import static android.view.WindowManager.LayoutParams.TYPE_VOICE_INTERACTION; + import static com.android.server.wm.WindowContainer.POSITION_TOP; import static org.hamcrest.Matchers.is; @@ -38,25 +39,26 @@ import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; -import org.junit.Test; -import org.junit.runner.RunWith; - import android.annotation.SuppressLint; import android.content.res.Configuration; import android.graphics.Rect; import android.os.SystemClock; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.FlakyTest; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.util.DisplayMetrics; import android.util.SparseIntArray; import android.view.DisplayCutout; import android.view.MotionEvent; import android.view.Surface; +import androidx.test.filters.FlakyTest; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.server.wm.utils.WmDisplayCutout; +import org.junit.Test; +import org.junit.runner.RunWith; + import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; diff --git a/services/tests/servicestests/src/com/android/server/wm/DragDropControllerTests.java b/services/tests/servicestests/src/com/android/server/wm/DragDropControllerTests.java index a09656c7dc92..f383fda0970f 100644 --- a/services/tests/servicestests/src/com/android/server/wm/DragDropControllerTests.java +++ b/services/tests/servicestests/src/com/android/server/wm/DragDropControllerTests.java @@ -19,6 +19,7 @@ package com.android.server.wm; import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION; + import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.any; @@ -33,21 +34,25 @@ import android.os.Looper; import android.os.UserHandle; import android.os.UserManagerInternal; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.view.InputChannel; import android.view.SurfaceControl; import android.view.SurfaceSession; import android.view.View; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.internal.annotations.GuardedBy; import com.android.server.LocalServices; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.TimeUnit; + import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; + /** * Tests for the {@link DragDropController} class. * diff --git a/services/tests/servicestests/src/com/android/server/wm/PinnedStackControllerTest.java b/services/tests/servicestests/src/com/android/server/wm/PinnedStackControllerTest.java index 96745fa5956e..7222a999e23c 100644 --- a/services/tests/servicestests/src/com/android/server/wm/PinnedStackControllerTest.java +++ b/services/tests/servicestests/src/com/android/server/wm/PinnedStackControllerTest.java @@ -2,27 +2,28 @@ package com.android.server.wm; import static android.view.Display.DEFAULT_DISPLAY; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyBoolean; +import static org.mockito.ArgumentMatchers.anyInt; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.reset; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + import android.os.RemoteException; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.view.IPinnedStackListener; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyBoolean; -import static org.mockito.ArgumentMatchers.anyInt; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.never; -import static org.mockito.Mockito.reset; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - @SmallTest @Presubmit @RunWith(AndroidJUnit4.class) diff --git a/services/tests/servicestests/src/com/android/server/wm/RecentsAnimationControllerTest.java b/services/tests/servicestests/src/com/android/server/wm/RecentsAnimationControllerTest.java index a2af9b80fe36..e7c45d59078c 100644 --- a/services/tests/servicestests/src/com/android/server/wm/RecentsAnimationControllerTest.java +++ b/services/tests/servicestests/src/com/android/server/wm/RecentsAnimationControllerTest.java @@ -19,8 +19,10 @@ package com.android.server.wm; import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.view.Display.DEFAULT_DISPLAY; + import static com.android.server.wm.RecentsAnimationController.REORDER_KEEP_IN_PLACE; import static com.android.server.wm.RecentsAnimationController.REORDER_MOVE_TO_ORIGINAL_POSITION; + import static org.junit.Assert.fail; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.atLeast; @@ -31,11 +33,14 @@ import static org.mockito.Mockito.when; import android.os.Binder; import android.os.IInterface; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.view.IRecentsAnimationRunner; import android.view.SurfaceControl; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.server.wm.SurfaceAnimator.OnAnimationFinishedCallback; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/servicestests/src/com/android/server/wm/RemoteAnimationControllerTest.java b/services/tests/servicestests/src/com/android/server/wm/RemoteAnimationControllerTest.java index 95361f03fe4b..7d19baa9f871 100644 --- a/services/tests/servicestests/src/com/android/server/wm/RemoteAnimationControllerTest.java +++ b/services/tests/servicestests/src/com/android/server/wm/RemoteAnimationControllerTest.java @@ -31,9 +31,6 @@ import android.graphics.Rect; import android.os.Binder; import android.os.IInterface; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.FlakyTest; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.view.IRemoteAnimationFinishedCallback; import android.view.IRemoteAnimationRunner; import android.view.RemoteAnimationAdapter; @@ -41,6 +38,9 @@ import android.view.RemoteAnimationTarget; import android.view.SurfaceControl; import android.view.SurfaceControl.Transaction; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.server.testutils.OffsettableClock; import com.android.server.testutils.TestHandler; import com.android.server.wm.SurfaceAnimator.OnAnimationFinishedCallback; diff --git a/services/tests/servicestests/src/com/android/server/wm/RootWindowContainerTests.java b/services/tests/servicestests/src/com/android/server/wm/RootWindowContainerTests.java index 204e26cee532..c1db6a6a4def 100644 --- a/services/tests/servicestests/src/com/android/server/wm/RootWindowContainerTests.java +++ b/services/tests/servicestests/src/com/android/server/wm/RootWindowContainerTests.java @@ -1,16 +1,16 @@ package com.android.server.wm; -import org.junit.Test; -import org.junit.runner.RunWith; +import static org.junit.Assert.assertTrue; import android.content.res.Configuration; import android.graphics.Rect; - import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; -import static org.junit.Assert.assertTrue; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; /** * Tests for the {@link RootWindowContainer} class. diff --git a/services/tests/servicestests/src/com/android/server/wm/ScreenDecorWindowTests.java b/services/tests/servicestests/src/com/android/server/wm/ScreenDecorWindowTests.java index a2ccee46e0c9..897a48d282df 100644 --- a/services/tests/servicestests/src/com/android/server/wm/ScreenDecorWindowTests.java +++ b/services/tests/servicestests/src/com/android/server/wm/ScreenDecorWindowTests.java @@ -32,6 +32,7 @@ import static android.view.WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE; import static android.view.WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH; import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_IS_SCREEN_DECOR; import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY; + import static org.junit.Assert.assertEquals; import android.app.Activity; @@ -46,9 +47,6 @@ import android.hardware.display.VirtualDisplay; import android.media.ImageReader; import android.os.Handler; import android.platform.test.annotations.Presubmit; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.util.Pair; import android.view.Display; import android.view.DisplayInfo; @@ -57,6 +55,10 @@ import android.view.WindowInsets; import android.view.WindowManager; import android.widget.TextView; +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import org.junit.After; import org.junit.Assert; import org.junit.Before; diff --git a/services/tests/servicestests/src/com/android/server/wm/StackWindowControllerTests.java b/services/tests/servicestests/src/com/android/server/wm/StackWindowControllerTests.java index ab0a2bd86dd8..9f2645cc98ae 100644 --- a/services/tests/servicestests/src/com/android/server/wm/StackWindowControllerTests.java +++ b/services/tests/servicestests/src/com/android/server/wm/StackWindowControllerTests.java @@ -16,20 +16,20 @@ package com.android.server.wm; -import android.graphics.Rect; -import org.junit.Ignore; -import org.junit.Test; -import org.junit.runner.RunWith; - -import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; - import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; +import android.graphics.Rect; +import android.platform.test.annotations.Presubmit; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + /** * Test class for {@link StackWindowController}. * diff --git a/services/tests/servicestests/src/com/android/server/wm/SurfaceAnimationRunnerTest.java b/services/tests/servicestests/src/com/android/server/wm/SurfaceAnimationRunnerTest.java index 79e9bb4c769d..4551c3611102 100644 --- a/services/tests/servicestests/src/com/android/server/wm/SurfaceAnimationRunnerTest.java +++ b/services/tests/servicestests/src/com/android/server/wm/SurfaceAnimationRunnerTest.java @@ -16,7 +16,6 @@ package com.android.server.wm; -import static java.util.concurrent.TimeUnit.SECONDS; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @@ -34,9 +33,6 @@ import android.graphics.Matrix; import android.graphics.Point; import android.os.PowerManagerInternal; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.FlakyTest; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.view.Choreographer; import android.view.Choreographer.FrameCallback; import android.view.SurfaceControl; @@ -44,6 +40,10 @@ import android.view.SurfaceControl.Transaction; import android.view.animation.Animation; import android.view.animation.TranslateAnimation; +import androidx.test.filters.FlakyTest; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.server.wm.LocalAnimationAdapter.AnimationSpec; import org.junit.Before; @@ -54,6 +54,8 @@ import org.mockito.Mock; import org.mockito.junit.MockitoJUnit; import org.mockito.junit.MockitoRule; +import static java.util.concurrent.TimeUnit.SECONDS; + import java.util.concurrent.CountDownLatch; /** diff --git a/services/tests/servicestests/src/com/android/server/wm/SurfaceAnimatorTest.java b/services/tests/servicestests/src/com/android/server/wm/SurfaceAnimatorTest.java index 16b84581de39..7b5e8deeeb65 100644 --- a/services/tests/servicestests/src/com/android/server/wm/SurfaceAnimatorTest.java +++ b/services/tests/servicestests/src/com/android/server/wm/SurfaceAnimatorTest.java @@ -28,14 +28,15 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyZeroInteractions; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.FlakyTest; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.view.SurfaceControl; import android.view.SurfaceControl.Builder; import android.view.SurfaceControl.Transaction; import android.view.SurfaceSession; +import androidx.test.filters.FlakyTest; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.server.wm.SurfaceAnimator.Animatable; import com.android.server.wm.SurfaceAnimator.OnAnimationFinishedCallback; @@ -46,8 +47,6 @@ import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; -import java.util.ArrayList; - /** * Test class for {@link SurfaceAnimatorTest}. * diff --git a/services/tests/servicestests/src/com/android/server/wm/TaskPositionerTests.java b/services/tests/servicestests/src/com/android/server/wm/TaskPositionerTests.java index 7bf7dd78711c..39bcdaf7b4ed 100644 --- a/services/tests/servicestests/src/com/android/server/wm/TaskPositionerTests.java +++ b/services/tests/servicestests/src/com/android/server/wm/TaskPositionerTests.java @@ -16,26 +16,28 @@ package com.android.server.wm; -import org.junit.Before; -import org.junit.Ignore; -import org.junit.Test; -import org.junit.runner.RunWith; - -import android.graphics.Rect; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; -import android.util.DisplayMetrics; -import android.util.Log; -import android.view.Display; - import static com.android.server.wm.TaskPositioner.MIN_ASPECT; import static com.android.server.wm.WindowManagerService.dipToPixel; import static com.android.server.wm.WindowState.MINIMUM_VISIBLE_HEIGHT_IN_DP; import static com.android.server.wm.WindowState.MINIMUM_VISIBLE_WIDTH_IN_DP; + import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; +import android.graphics.Rect; +import android.util.DisplayMetrics; +import android.util.Log; +import android.view.Display; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Test; +import org.junit.runner.RunWith; + /** * Tests for the {@link TaskPositioner} class. * diff --git a/services/tests/servicestests/src/com/android/server/wm/TaskPositioningControllerTests.java b/services/tests/servicestests/src/com/android/server/wm/TaskPositioningControllerTests.java index f3ed8b0a5ebb..9af124af10b3 100644 --- a/services/tests/servicestests/src/com/android/server/wm/TaskPositioningControllerTests.java +++ b/services/tests/servicestests/src/com/android/server/wm/TaskPositioningControllerTests.java @@ -17,6 +17,7 @@ package com.android.server.wm; import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION; + import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; @@ -27,10 +28,12 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.FlakyTest; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.view.InputChannel; + +import androidx.test.filters.FlakyTest; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotCacheTest.java b/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotCacheTest.java index 649de4a783fa..c9d800449ff9 100644 --- a/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotCacheTest.java +++ b/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotCacheTest.java @@ -17,12 +17,14 @@ package com.android.server.wm; import static android.view.WindowManager.LayoutParams.FIRST_APPLICATION_WINDOW; + import static junit.framework.Assert.assertNotNull; import static junit.framework.Assert.assertNull; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.Before; import org.junit.Test; diff --git a/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotControllerTest.java b/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotControllerTest.java index 5650050f0420..efce063c8fca 100644 --- a/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotControllerTest.java +++ b/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotControllerTest.java @@ -19,17 +19,19 @@ package com.android.server.wm; import static android.view.WindowManager.LayoutParams.FIRST_APPLICATION_WINDOW; import static android.view.WindowManager.LayoutParams.FLAG_SECURE; import static android.view.WindowManager.TRANSIT_UNSET; + import static com.android.server.wm.TaskSnapshotController.*; + import static junit.framework.Assert.assertEquals; -import static junit.framework.Assert.assertFalse; -import static junit.framework.Assert.assertTrue; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.util.ArraySet; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.google.android.collect.Sets; + import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotPersisterLoaderTest.java b/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotPersisterLoaderTest.java index 325d42aa6293..600b2e52b083 100644 --- a/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotPersisterLoaderTest.java +++ b/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotPersisterLoaderTest.java @@ -18,23 +18,24 @@ package com.android.server.wm; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED; + import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; import android.app.ActivityManager.TaskSnapshot; import android.content.res.Configuration; import android.graphics.Rect; import android.os.SystemClock; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.MediumTest; -import android.support.test.runner.AndroidJUnit4; import android.util.ArraySet; - import android.view.View; + +import androidx.test.filters.MediumTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.server.wm.TaskSnapshotPersister.RemoveObsoleteFilesQueueItem; import org.junit.Test; diff --git a/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotPersisterTestBase.java b/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotPersisterTestBase.java index 8b8604365fa1..6f4f17380e3f 100644 --- a/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotPersisterTestBase.java +++ b/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotPersisterTestBase.java @@ -28,7 +28,8 @@ import android.graphics.GraphicBuffer; import android.graphics.PixelFormat; import android.graphics.Rect; import android.os.UserManager; -import android.support.test.InstrumentationRegistry; + +import androidx.test.InstrumentationRegistry; import org.junit.After; import org.junit.Before; diff --git a/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotSurfaceTest.java b/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotSurfaceTest.java index b19373efd1b0..6c08f42835bf 100644 --- a/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotSurfaceTest.java +++ b/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotSurfaceTest.java @@ -19,6 +19,7 @@ package com.android.server.wm; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.content.res.Configuration.ORIENTATION_PORTRAIT; import static android.view.WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS; + import static org.junit.Assert.assertEquals; import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyInt; @@ -35,10 +36,11 @@ import android.graphics.GraphicBuffer; import android.graphics.PixelFormat; import android.graphics.Rect; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.view.Surface; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.server.wm.TaskSnapshotSurface.Window; import org.junit.Test; diff --git a/services/tests/servicestests/src/com/android/server/wm/TaskStackContainersTests.java b/services/tests/servicestests/src/com/android/server/wm/TaskStackContainersTests.java index ca1994f85ccf..9fa5ba42204f 100644 --- a/services/tests/servicestests/src/com/android/server/wm/TaskStackContainersTests.java +++ b/services/tests/servicestests/src/com/android/server/wm/TaskStackContainersTests.java @@ -18,20 +18,20 @@ package com.android.server.wm; import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD; import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED; + import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; +import android.platform.test.annotations.Presubmit; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + +import org.junit.After; +import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.junit.Before; -import org.junit.After; - -import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; /** * Tests for the {@link DisplayContent.TaskStackContainers} container in {@link DisplayContent}. diff --git a/services/tests/servicestests/src/com/android/server/wm/TaskStackTests.java b/services/tests/servicestests/src/com/android/server/wm/TaskStackTests.java index eaf71f0dc5b3..53a1185b4655 100644 --- a/services/tests/servicestests/src/com/android/server/wm/TaskStackTests.java +++ b/services/tests/servicestests/src/com/android/server/wm/TaskStackTests.java @@ -16,21 +16,19 @@ package com.android.server.wm; -import org.junit.Test; -import org.junit.runner.RunWith; - -import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; - import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE; import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; + +import android.platform.test.annotations.Presubmit; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; /** * Tests for the {@link TaskStack} class. diff --git a/services/tests/servicestests/src/com/android/server/wm/TaskWindowContainerControllerTests.java b/services/tests/servicestests/src/com/android/server/wm/TaskWindowContainerControllerTests.java index 1dd9365825cf..edd76647f4a8 100644 --- a/services/tests/servicestests/src/com/android/server/wm/TaskWindowContainerControllerTests.java +++ b/services/tests/servicestests/src/com/android/server/wm/TaskWindowContainerControllerTests.java @@ -16,17 +16,19 @@ package com.android.server.wm; -import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; -import org.junit.Test; -import org.junit.runner.RunWith; - import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; +import android.platform.test.annotations.Presubmit; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + /** * Test class for {@link TaskWindowContainerController}. * diff --git a/services/tests/servicestests/src/com/android/server/wm/UnknownAppVisibilityControllerTest.java b/services/tests/servicestests/src/com/android/server/wm/UnknownAppVisibilityControllerTest.java index a5c47deb2c06..3ac97027a893 100644 --- a/services/tests/servicestests/src/com/android/server/wm/UnknownAppVisibilityControllerTest.java +++ b/services/tests/servicestests/src/com/android/server/wm/UnknownAppVisibilityControllerTest.java @@ -19,8 +19,9 @@ package com.android.server.wm; import static junit.framework.Assert.assertTrue; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.Before; import org.junit.Test; diff --git a/services/tests/servicestests/src/com/android/server/wm/WallpaperControllerTests.java b/services/tests/servicestests/src/com/android/server/wm/WallpaperControllerTests.java index 71ead204c9df..882e78924629 100644 --- a/services/tests/servicestests/src/com/android/server/wm/WallpaperControllerTests.java +++ b/services/tests/servicestests/src/com/android/server/wm/WallpaperControllerTests.java @@ -11,8 +11,9 @@ import static org.mockito.Mockito.when; import android.graphics.Bitmap; import android.os.IBinder; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/servicestests/src/com/android/server/wm/WindowAnimationSpecTest.java b/services/tests/servicestests/src/com/android/server/wm/WindowAnimationSpecTest.java index ca520ed76be6..d4c68a810a77 100644 --- a/services/tests/servicestests/src/com/android/server/wm/WindowAnimationSpecTest.java +++ b/services/tests/servicestests/src/com/android/server/wm/WindowAnimationSpecTest.java @@ -28,12 +28,13 @@ import static org.mockito.Mockito.verify; import android.graphics.Point; import android.graphics.Rect; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.view.SurfaceControl; import android.view.animation.Animation; import android.view.animation.ClipRectAnimation; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/servicestests/src/com/android/server/wm/WindowConfigurationTests.java b/services/tests/servicestests/src/com/android/server/wm/WindowConfigurationTests.java index 513c1ecda990..ec5424a27afe 100644 --- a/services/tests/servicestests/src/com/android/server/wm/WindowConfigurationTests.java +++ b/services/tests/servicestests/src/com/android/server/wm/WindowConfigurationTests.java @@ -16,17 +16,6 @@ package com.android.server.wm; -import org.junit.Test; - -import android.app.WindowConfiguration; -import android.content.res.Configuration; -import android.graphics.Rect; -import android.platform.test.annotations.Presubmit; -import android.support.test.filters.FlakyTest; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; -import android.view.DisplayInfo; - import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME; import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD; import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; @@ -34,9 +23,21 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.app.WindowConfiguration.WINDOW_CONFIG_APP_BOUNDS; import static android.app.WindowConfiguration.WINDOW_CONFIG_WINDOWING_MODE; import static android.content.pm.ActivityInfo.CONFIG_WINDOW_CONFIGURATION; + import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertTrue; + +import android.app.WindowConfiguration; +import android.content.res.Configuration; +import android.graphics.Rect; +import android.platform.test.annotations.Presubmit; +import android.view.DisplayInfo; + +import androidx.test.filters.FlakyTest; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + +import org.junit.Test; /** * Test class to for {@link android.app.WindowConfiguration}. diff --git a/services/tests/servicestests/src/com/android/server/wm/WindowContainerControllerTests.java b/services/tests/servicestests/src/com/android/server/wm/WindowContainerControllerTests.java index 502cb6e27c68..6b1feb87aa42 100644 --- a/services/tests/servicestests/src/com/android/server/wm/WindowContainerControllerTests.java +++ b/services/tests/servicestests/src/com/android/server/wm/WindowContainerControllerTests.java @@ -16,21 +16,22 @@ package com.android.server.wm; -import android.app.WindowConfiguration; -import android.content.res.Configuration; -import android.support.test.filters.FlakyTest; -import org.junit.Test; - -import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; - import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; import static android.content.res.Configuration.EMPTY; + import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; +import android.content.res.Configuration; +import android.platform.test.annotations.Presubmit; + +import androidx.test.filters.FlakyTest; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + +import org.junit.Test; + /** * Test class for {@link WindowContainerController}. * diff --git a/services/tests/servicestests/src/com/android/server/wm/WindowContainerTests.java b/services/tests/servicestests/src/com/android/server/wm/WindowContainerTests.java index 6c7830e5cf79..ea8c918451c3 100644 --- a/services/tests/servicestests/src/com/android/server/wm/WindowContainerTests.java +++ b/services/tests/servicestests/src/com/android/server/wm/WindowContainerTests.java @@ -16,20 +16,6 @@ package com.android.server.wm; -import android.support.test.filters.FlakyTest; -import android.view.SurfaceControl; -import android.view.SurfaceSession; -import org.junit.Test; -import org.junit.runner.RunWith; - -import android.content.res.Configuration; -import android.graphics.Rect; -import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; - -import java.util.Comparator; - import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_BEHIND; import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE; import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; @@ -44,7 +30,6 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; - import static org.mockito.Mockito.any; import static org.mockito.Mockito.anyFloat; import static org.mockito.Mockito.eq; @@ -53,6 +38,21 @@ import static org.mockito.Mockito.never; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; +import android.content.res.Configuration; +import android.graphics.Rect; +import android.platform.test.annotations.Presubmit; +import android.view.SurfaceControl; +import android.view.SurfaceSession; + +import androidx.test.filters.FlakyTest; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import java.util.Comparator; + /** * Test class for {@link WindowContainer}. * diff --git a/services/tests/servicestests/src/com/android/server/wm/WindowContainerTraversalTests.java b/services/tests/servicestests/src/com/android/server/wm/WindowContainerTraversalTests.java index e07639933b7a..ffc86226cd39 100644 --- a/services/tests/servicestests/src/com/android/server/wm/WindowContainerTraversalTests.java +++ b/services/tests/servicestests/src/com/android/server/wm/WindowContainerTraversalTests.java @@ -20,19 +20,19 @@ import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD; import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY; import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_SECONDARY; import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION; + +import static org.mockito.Matchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; -import static org.mockito.Matchers.eq; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.Mock; - import java.util.function.Consumer; /** diff --git a/services/tests/servicestests/src/com/android/server/wm/WindowFrameTests.java b/services/tests/servicestests/src/com/android/server/wm/WindowFrameTests.java index 5a563320f9cb..7b02c6b4ffa0 100644 --- a/services/tests/servicestests/src/com/android/server/wm/WindowFrameTests.java +++ b/services/tests/servicestests/src/com/android/server/wm/WindowFrameTests.java @@ -16,29 +16,31 @@ package com.android.server.wm; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import static android.view.DisplayCutout.fromBoundingRect; +import static android.view.WindowManager.LayoutParams.FILL_PARENT; +import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; import android.app.ActivityManager.TaskDescription; import android.content.res.Configuration; import android.graphics.Rect; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.view.DisplayInfo; import android.view.Gravity; import android.view.IWindow; import android.view.WindowManager; -import static android.view.DisplayCutout.fromBoundingRect; -import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION; -import static android.view.WindowManager.LayoutParams.FILL_PARENT; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import com.android.server.wm.utils.WmDisplayCutout; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; + /** * Tests for the {@link WindowState#computeFrameLw} method and other window frame machinery. * diff --git a/services/tests/servicestests/src/com/android/server/wm/WindowManagerServiceRule.java b/services/tests/servicestests/src/com/android/server/wm/WindowManagerServiceRule.java index d91079e3bb1b..8321c8b1d427 100644 --- a/services/tests/servicestests/src/com/android/server/wm/WindowManagerServiceRule.java +++ b/services/tests/servicestests/src/com/android/server/wm/WindowManagerServiceRule.java @@ -33,9 +33,10 @@ import android.content.Context; import android.hardware.display.DisplayManagerInternal; import android.os.PowerManagerInternal; import android.os.PowerSaveState; -import android.support.test.InstrumentationRegistry; import android.view.InputChannel; +import androidx.test.InstrumentationRegistry; + import com.android.server.LocalServices; import com.android.server.input.InputManagerService; import com.android.server.policy.WindowManagerPolicy; diff --git a/services/tests/servicestests/src/com/android/server/wm/WindowManagerServiceRuleTest.java b/services/tests/servicestests/src/com/android/server/wm/WindowManagerServiceRuleTest.java index 6cf6d7bc96ec..570a853a62ca 100644 --- a/services/tests/servicestests/src/com/android/server/wm/WindowManagerServiceRuleTest.java +++ b/services/tests/servicestests/src/com/android/server/wm/WindowManagerServiceRuleTest.java @@ -20,8 +20,9 @@ import static org.hamcrest.CoreMatchers.notNullValue; import static org.junit.Assert.assertThat; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.Rule; import org.junit.Test; diff --git a/services/tests/servicestests/src/com/android/server/wm/WindowStateTests.java b/services/tests/servicestests/src/com/android/server/wm/WindowStateTests.java index 9f113ad3137e..108baab8585b 100644 --- a/services/tests/servicestests/src/com/android/server/wm/WindowStateTests.java +++ b/services/tests/servicestests/src/com/android/server/wm/WindowStateTests.java @@ -16,19 +16,6 @@ package com.android.server.wm; -import android.graphics.Rect; -import android.view.SurfaceControl; -import android.view.WindowManager; -import org.junit.Test; -import org.junit.runner.RunWith; - -import android.platform.test.annotations.Presubmit; -import android.support.test.filters.FlakyTest; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; - -import java.util.LinkedList; - import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.hardware.camera2.params.OutputConfiguration.ROTATION_90; @@ -52,7 +39,6 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyLong; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.mock; @@ -61,6 +47,20 @@ import static org.mockito.Mockito.reset; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; +import android.graphics.Rect; +import android.platform.test.annotations.Presubmit; +import android.view.SurfaceControl; +import android.view.WindowManager; + +import androidx.test.filters.FlakyTest; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import java.util.LinkedList; + /** * Tests for the {@link WindowState} class. * diff --git a/services/tests/servicestests/src/com/android/server/wm/WindowSurfacePlacerTest.java b/services/tests/servicestests/src/com/android/server/wm/WindowSurfacePlacerTest.java index e173b7db2da7..057f04740198 100644 --- a/services/tests/servicestests/src/com/android/server/wm/WindowSurfacePlacerTest.java +++ b/services/tests/servicestests/src/com/android/server/wm/WindowSurfacePlacerTest.java @@ -20,13 +20,15 @@ import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.view.WindowManager.TRANSIT_TASK_CLOSE; import static android.view.WindowManager.TRANSIT_TASK_OPEN; + import static junit.framework.Assert.assertEquals; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.view.WindowManager; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/servicestests/src/com/android/server/wm/WindowTestsBase.java b/services/tests/servicestests/src/com/android/server/wm/WindowTestsBase.java index 473a287e3d9c..6d1c45b2fc05 100644 --- a/services/tests/servicestests/src/com/android/server/wm/WindowTestsBase.java +++ b/services/tests/servicestests/src/com/android/server/wm/WindowTestsBase.java @@ -16,30 +16,12 @@ package com.android.server.wm; +import static android.app.AppOpsManager.OP_NONE; import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.view.Display.DEFAULT_DISPLAY; -import static android.view.View.VISIBLE; - -import android.content.res.Configuration; -import android.graphics.Rect; -import android.hardware.display.DisplayManagerGlobal; -import android.testing.DexmakerShareClassLoaderRule; -import android.util.Log; -import android.view.Display; -import android.view.DisplayInfo; -import org.junit.Assert; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; - -import android.content.Context; -import android.support.test.InstrumentationRegistry; -import android.view.IWindow; -import android.view.WindowManager; - -import static android.app.AppOpsManager.OP_NONE; import static android.view.DisplayAdjustments.DEFAULT_DISPLAY_ADJUSTMENTS; +import static android.view.View.VISIBLE; import static android.view.WindowManager.LayoutParams.FIRST_APPLICATION_WINDOW; import static android.view.WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; import static android.view.WindowManager.LayoutParams.LAST_APPLICATION_WINDOW; @@ -52,10 +34,29 @@ import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD_DIALOG; import static android.view.WindowManager.LayoutParams.TYPE_NAVIGATION_BAR; import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR; import static android.view.WindowManager.LayoutParams.TYPE_WALLPAPER; + import static org.mockito.Mockito.mock; +import android.content.Context; +import android.content.res.Configuration; +import android.graphics.Rect; +import android.hardware.display.DisplayManagerGlobal; +import android.testing.DexmakerShareClassLoaderRule; +import android.util.Log; +import android.view.Display; +import android.view.DisplayInfo; +import android.view.IWindow; +import android.view.WindowManager; + +import androidx.test.InstrumentationRegistry; + import com.android.server.AttributeCache; +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Rule; + import java.util.HashSet; import java.util.LinkedList; diff --git a/services/tests/servicestests/src/com/android/server/wm/WindowTokenTests.java b/services/tests/servicestests/src/com/android/server/wm/WindowTokenTests.java index e3b717435052..3732486f4a07 100644 --- a/services/tests/servicestests/src/com/android/server/wm/WindowTokenTests.java +++ b/services/tests/servicestests/src/com/android/server/wm/WindowTokenTests.java @@ -16,23 +16,24 @@ package com.android.server.wm; -import org.junit.Test; -import org.junit.runner.RunWith; - -import android.platform.test.annotations.Presubmit; -import android.support.test.filters.FlakyTest; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; - import static android.view.WindowManager.LayoutParams.FIRST_SUB_WINDOW; import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION; import static android.view.WindowManager.LayoutParams.TYPE_TOAST; + import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.mock; + +import android.platform.test.annotations.Presubmit; + +import androidx.test.filters.FlakyTest; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; /** * Tests for the {@link WindowToken} class. diff --git a/services/tests/servicestests/src/com/android/server/wm/WindowTracingTest.java b/services/tests/servicestests/src/com/android/server/wm/WindowTracingTest.java index 50852548f525..bbc6550d5753 100644 --- a/services/tests/servicestests/src/com/android/server/wm/WindowTracingTest.java +++ b/services/tests/servicestests/src/com/android/server/wm/WindowTracingTest.java @@ -29,12 +29,13 @@ import static org.mockito.Mockito.verifyZeroInteractions; import android.content.Context; import android.platform.test.annotations.Presubmit; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.filters.FlakyTest; -import android.support.test.runner.AndroidJUnit4; import android.util.proto.ProtoOutputStream; +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.FlakyTest; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.internal.util.Preconditions; import com.android.server.wm.WindowManagerTraceProto; diff --git a/services/tests/servicestests/src/com/android/server/wm/ZOrderingTests.java b/services/tests/servicestests/src/com/android/server/wm/ZOrderingTests.java index 547be551c842..8f9fb1b7d5ec 100644 --- a/services/tests/servicestests/src/com/android/server/wm/ZOrderingTests.java +++ b/services/tests/servicestests/src/com/android/server/wm/ZOrderingTests.java @@ -27,19 +27,19 @@ import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_ATTACHED_ import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_MEDIA; import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_MEDIA_OVERLAY; import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION; -import static android.view.WindowManager.LayoutParams.TYPE_DOCK_DIVIDER; import static android.view.WindowManager.LayoutParams.TYPE_NAVIGATION_BAR_PANEL; import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL; import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR_SUB_PANEL; import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.filters.FlakyTest; -import android.support.test.runner.AndroidJUnit4; import android.view.SurfaceControl; import android.view.SurfaceSession; +import androidx.test.filters.FlakyTest; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import org.junit.After; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/servicestests/src/com/android/server/wm/utils/InsetUtilsTest.java b/services/tests/servicestests/src/com/android/server/wm/utils/InsetUtilsTest.java index 08bcc3d751f2..3364aef25bd0 100644 --- a/services/tests/servicestests/src/com/android/server/wm/utils/InsetUtilsTest.java +++ b/services/tests/servicestests/src/com/android/server/wm/utils/InsetUtilsTest.java @@ -25,9 +25,9 @@ import static junit.framework.Assert.assertEquals; import android.graphics.Rect; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; -import android.util.Pair; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/servicestests/src/com/android/server/wm/utils/RotationCacheTest.java b/services/tests/servicestests/src/com/android/server/wm/utils/RotationCacheTest.java index 6bbc7eb56688..5d08920b43d0 100644 --- a/services/tests/servicestests/src/com/android/server/wm/utils/RotationCacheTest.java +++ b/services/tests/servicestests/src/com/android/server/wm/utils/RotationCacheTest.java @@ -24,14 +24,12 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertThat; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.FlakyTest; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.util.Pair; -import com.android.server.wm.utils.RotationCache.RotationDependentComputation; +import androidx.test.filters.FlakyTest; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; -import org.hamcrest.Matchers; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/servicestests/src/com/android/server/wm/utils/WmDisplayCutoutTest.java b/services/tests/servicestests/src/com/android/server/wm/utils/WmDisplayCutoutTest.java index f7addf6c77f9..9ce3dca7e096 100644 --- a/services/tests/servicestests/src/com/android/server/wm/utils/WmDisplayCutoutTest.java +++ b/services/tests/servicestests/src/com/android/server/wm/utils/WmDisplayCutoutTest.java @@ -25,11 +25,12 @@ import static org.junit.Assert.assertNotEquals; import android.graphics.Rect; import android.platform.test.annotations.Presubmit; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.util.Size; import android.view.DisplayCutout; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/servicestests/test-apps/SuspendTestApp/Android.bp b/services/tests/servicestests/test-apps/SuspendTestApp/Android.bp index 7bff1ae7d582..ca8d47b013d7 100644 --- a/services/tests/servicestests/test-apps/SuspendTestApp/Android.bp +++ b/services/tests/servicestests/test-apps/SuspendTestApp/Android.bp @@ -18,7 +18,7 @@ android_test_helper_app { test_suites: ["device-tests"], static_libs: [ - "android-support-test", + "androidx.test.rules", "ub-uiautomator", ], diff --git a/services/tests/uiservicestests/Android.bp b/services/tests/uiservicestests/Android.bp index b0222b86e976..23f55727d456 100644 --- a/services/tests/uiservicestests/Android.bp +++ b/services/tests/uiservicestests/Android.bp @@ -17,7 +17,7 @@ android_test { "services.net", "services.usage", "guava", - "android-support-test", + "androidx.test.rules", "hamcrest-library", "mockito-target-inline-minus-junit4", "platform-test-annotations", "testables", diff --git a/services/tests/uiservicestests/src/com/android/server/UiServiceTestCase.java b/services/tests/uiservicestests/src/com/android/server/UiServiceTestCase.java index eec852bd77c7..4fca175ea005 100644 --- a/services/tests/uiservicestests/src/com/android/server/UiServiceTestCase.java +++ b/services/tests/uiservicestests/src/com/android/server/UiServiceTestCase.java @@ -18,9 +18,10 @@ import static org.mockito.Mockito.when; import android.content.pm.PackageManagerInternal; import android.os.Build; -import android.support.test.InstrumentationRegistry; import android.testing.TestableContext; +import androidx.test.InstrumentationRegistry; + import org.junit.Before; import org.junit.Rule; import org.mockito.Mock; diff --git a/services/tests/uiservicestests/src/com/android/server/notification/AlertRateLimiterTest.java b/services/tests/uiservicestests/src/com/android/server/notification/AlertRateLimiterTest.java index d4c41e0285bd..dc7f118628b7 100644 --- a/services/tests/uiservicestests/src/com/android/server/notification/AlertRateLimiterTest.java +++ b/services/tests/uiservicestests/src/com/android/server/notification/AlertRateLimiterTest.java @@ -20,9 +20,10 @@ import static com.android.server.notification.AlertRateLimiter.ALLOWED_ALERT_INT import static junit.framework.Assert.assertFalse; import static junit.framework.Assert.assertTrue; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.server.UiServiceTestCase; import org.junit.Before; diff --git a/services/tests/uiservicestests/src/com/android/server/notification/BadgeExtractorTest.java b/services/tests/uiservicestests/src/com/android/server/notification/BadgeExtractorTest.java index cfc7430cc8f4..e1f39137e618 100644 --- a/services/tests/uiservicestests/src/com/android/server/notification/BadgeExtractorTest.java +++ b/services/tests/uiservicestests/src/com/android/server/notification/BadgeExtractorTest.java @@ -15,26 +15,26 @@ */ package com.android.server.notification; -import static junit.framework.Assert.assertFalse; -import static junit.framework.Assert.assertTrue; - -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - import static android.app.NotificationManager.IMPORTANCE_HIGH; import static android.app.NotificationManager.IMPORTANCE_UNSPECIFIED; import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_BADGE; import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_LIGHTS; +import static junit.framework.Assert.assertFalse; +import static junit.framework.Assert.assertTrue; + +import static org.mockito.Mockito.when; + import android.app.ActivityManager; import android.app.Notification; import android.app.Notification.Builder; import android.app.NotificationChannel; import android.os.UserHandle; import android.service.notification.StatusBarNotification; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.server.UiServiceTestCase; import org.junit.Before; diff --git a/services/tests/uiservicestests/src/com/android/server/notification/BuzzBeepBlinkTest.java b/services/tests/uiservicestests/src/com/android/server/notification/BuzzBeepBlinkTest.java index 99d2b87c7c25..7b2684f7333e 100644 --- a/services/tests/uiservicestests/src/com/android/server/notification/BuzzBeepBlinkTest.java +++ b/services/tests/uiservicestests/src/com/android/server/notification/BuzzBeepBlinkTest.java @@ -59,13 +59,14 @@ import android.os.VibrationEffect; import android.os.Vibrator; import android.provider.Settings; import android.service.notification.StatusBarNotification; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityManager; import android.view.accessibility.IAccessibilityManager; import android.view.accessibility.IAccessibilityManagerClient; +import androidx.test.runner.AndroidJUnit4; + import com.android.internal.util.IntPair; import com.android.server.UiServiceTestCase; import com.android.server.lights.Light; diff --git a/services/tests/uiservicestests/src/com/android/server/notification/GlobalSortKeyComparatorTest.java b/services/tests/uiservicestests/src/com/android/server/notification/GlobalSortKeyComparatorTest.java index 97f210400141..5041779840b3 100644 --- a/services/tests/uiservicestests/src/com/android/server/notification/GlobalSortKeyComparatorTest.java +++ b/services/tests/uiservicestests/src/com/android/server/notification/GlobalSortKeyComparatorTest.java @@ -16,18 +16,16 @@ package com.android.server.notification; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import static org.mockito.Matchers.eq; import android.app.Notification; import android.app.NotificationChannel; import android.app.NotificationManager; import android.os.UserHandle; import android.service.notification.StatusBarNotification; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.server.UiServiceTestCase; import org.junit.Test; diff --git a/services/tests/uiservicestests/src/com/android/server/notification/GroupHelperTest.java b/services/tests/uiservicestests/src/com/android/server/notification/GroupHelperTest.java index 8d4c5b1df7d2..8c0871832865 100644 --- a/services/tests/uiservicestests/src/com/android/server/notification/GroupHelperTest.java +++ b/services/tests/uiservicestests/src/com/android/server/notification/GroupHelperTest.java @@ -25,21 +25,22 @@ import static org.mockito.Mockito.never; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; - import android.app.Notification; import android.os.UserHandle; import android.service.notification.StatusBarNotification; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.server.UiServiceTestCase; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; + import java.util.ArrayList; import java.util.LinkedHashSet; import java.util.List; diff --git a/services/tests/uiservicestests/src/com/android/server/notification/ImportanceExtractorTest.java b/services/tests/uiservicestests/src/com/android/server/notification/ImportanceExtractorTest.java index 73d5961ee90b..fa7dff0dbd7e 100644 --- a/services/tests/uiservicestests/src/com/android/server/notification/ImportanceExtractorTest.java +++ b/services/tests/uiservicestests/src/com/android/server/notification/ImportanceExtractorTest.java @@ -15,31 +15,30 @@ */ package com.android.server.notification; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import static org.junit.Assert.assertEquals; +import static org.mockito.Matchers.anyInt; +import static org.mockito.Matchers.anyString; +import static org.mockito.Mockito.when; import android.app.ActivityManager; import android.app.Notification; import android.app.Notification.Builder; -import android.app.NotificationManager; import android.app.NotificationChannel; +import android.app.NotificationManager; import android.os.UserHandle; import android.service.notification.StatusBarNotification; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; - -import static org.mockito.Matchers.anyInt; -import static org.mockito.Matchers.anyString; -import static org.mockito.Mockito.when; - -import static org.junit.Assert.assertEquals; +import androidx.test.runner.AndroidJUnit4; import com.android.server.UiServiceTestCase; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; + @SmallTest @RunWith(AndroidJUnit4.class) public class ImportanceExtractorTest extends UiServiceTestCase { diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationChannelTest.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationChannelTest.java index 2241047dec0e..ce5dfbaa14e5 100644 --- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationChannelTest.java +++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationChannelTest.java @@ -22,9 +22,10 @@ import static junit.framework.Assert.assertEquals; import android.app.NotificationChannel; import android.os.Parcel; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.internal.util.FastXmlSerializer; import com.android.server.UiServiceTestCase; diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationComparatorTest.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationComparatorTest.java index 7ee050174d3c..a3aeebf80853 100644 --- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationComparatorTest.java +++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationComparatorTest.java @@ -35,9 +35,10 @@ import android.os.UserHandle; import android.provider.Settings; import android.service.notification.StatusBarNotification; import android.telecom.TelecomManager; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.server.UiServiceTestCase; import org.junit.Before; diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationListenerServiceTest.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationListenerServiceTest.java index ef9ba78b8263..9314969d5512 100644 --- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationListenerServiceTest.java +++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationListenerServiceTest.java @@ -40,10 +40,10 @@ import android.service.notification.NotificationListenerService; import android.service.notification.NotificationListenerService.Ranking; import android.service.notification.NotificationRankingUpdate; import android.service.notification.SnoozeCriterion; -import android.service.notification.StatusBarNotification; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.server.UiServiceTestCase; import org.junit.Test; diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationRecordTest.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationRecordTest.java index e28699113a3d..70e5fd1c1f97 100644 --- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationRecordTest.java +++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationRecordTest.java @@ -34,8 +34,6 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.app.ActivityManager; @@ -57,9 +55,9 @@ import android.os.UserHandle; import android.provider.Settings; import android.service.notification.Adjustment; import android.service.notification.StatusBarNotification; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; -import android.util.Slog; + +import androidx.test.runner.AndroidJUnit4; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.server.UiServiceTestCase; diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationStatsTest.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationStatsTest.java index 0a630f462949..b5d837639643 100644 --- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationStatsTest.java +++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationStatsTest.java @@ -23,9 +23,10 @@ import static junit.framework.Assert.assertTrue; import android.os.Parcel; import android.service.notification.NotificationStats; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.server.UiServiceTestCase; import org.junit.Test; diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationTest.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationTest.java index 9db823c0d3f5..901b94893b6d 100644 --- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationTest.java +++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationTest.java @@ -22,20 +22,18 @@ import static junit.framework.Assert.assertNull; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; +import static org.mockito.Matchers.anyInt; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; -import static org.mockito.Matchers.any; -import static org.mockito.Matchers.anyInt; import android.app.ActivityManager; import android.app.Notification; -import android.app.Person; import android.app.PendingIntent; +import android.app.Person; import android.app.RemoteInput; import android.content.Context; import android.content.pm.ApplicationInfo; -import android.content.pm.PackageManager; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.Color; @@ -43,13 +41,14 @@ import android.graphics.Typeface; import android.graphics.drawable.Icon; import android.net.Uri; import android.os.Build; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.text.SpannableStringBuilder; import android.text.Spanned; import android.text.style.StyleSpan; import android.widget.RemoteViews; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.server.UiServiceTestCase; import org.junit.Before; diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotifyingAppTest.java b/services/tests/uiservicestests/src/com/android/server/notification/NotifyingAppTest.java index fbb8c33d14aa..25e10d0740da 100644 --- a/services/tests/uiservicestests/src/com/android/server/notification/NotifyingAppTest.java +++ b/services/tests/uiservicestests/src/com/android/server/notification/NotifyingAppTest.java @@ -20,9 +20,10 @@ import static junit.framework.Assert.assertTrue; import android.os.Parcel; import android.service.notification.NotifyingApp; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.server.UiServiceTestCase; import org.junit.Test; diff --git a/services/tests/uiservicestests/src/com/android/server/notification/RankingHelperTest.java b/services/tests/uiservicestests/src/com/android/server/notification/RankingHelperTest.java index a9e713e5778b..63283ad6766a 100644 --- a/services/tests/uiservicestests/src/com/android/server/notification/RankingHelperTest.java +++ b/services/tests/uiservicestests/src/com/android/server/notification/RankingHelperTest.java @@ -33,7 +33,6 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.Matchers.anyInt; import static org.mockito.Matchers.anyString; import static org.mockito.Matchers.eq; -import static org.mockito.Mockito.atLeast; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.reset; @@ -61,13 +60,14 @@ import android.os.UserHandle; import android.provider.Settings; import android.provider.Settings.Secure; import android.service.notification.StatusBarNotification; -import android.support.test.InstrumentationRegistry; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; import android.testing.TestableContentResolver; import android.util.ArrayMap; import android.util.Xml; +import androidx.test.InstrumentationRegistry; +import androidx.test.runner.AndroidJUnit4; + import com.android.internal.util.FastXmlSerializer; import com.android.server.UiServiceTestCase; diff --git a/services/tests/uiservicestests/src/com/android/server/notification/RateEstimatorTest.java b/services/tests/uiservicestests/src/com/android/server/notification/RateEstimatorTest.java index 5d8d48f158fa..68aa1dc1bf3b 100644 --- a/services/tests/uiservicestests/src/com/android/server/notification/RateEstimatorTest.java +++ b/services/tests/uiservicestests/src/com/android/server/notification/RateEstimatorTest.java @@ -15,17 +15,19 @@ */ package com.android.server.notification; -import android.support.test.runner.AndroidJUnit4; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + import android.test.suitebuilder.annotation.SmallTest; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.assertFalse; +import androidx.test.runner.AndroidJUnit4; import com.android.server.UiServiceTestCase; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; + @SmallTest @RunWith(AndroidJUnit4.class) public class RateEstimatorTest extends UiServiceTestCase { diff --git a/services/tests/uiservicestests/src/com/android/server/notification/ScheduleCalendarTest.java b/services/tests/uiservicestests/src/com/android/server/notification/ScheduleCalendarTest.java index 96ac93536a8a..c0fecaf8ecb3 100644 --- a/services/tests/uiservicestests/src/com/android/server/notification/ScheduleCalendarTest.java +++ b/services/tests/uiservicestests/src/com/android/server/notification/ScheduleCalendarTest.java @@ -23,14 +23,14 @@ import static org.junit.Assert.assertTrue; import android.service.notification.ScheduleCalendar; import android.service.notification.ZenModeConfig; -import android.support.test.filters.FlakyTest; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; +import androidx.test.filters.FlakyTest; +import androidx.test.runner.AndroidJUnit4; + import com.android.server.UiServiceTestCase; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/uiservicestests/src/com/android/server/notification/ScheduleConditionProviderTest.java b/services/tests/uiservicestests/src/com/android/server/notification/ScheduleConditionProviderTest.java index efa70e7204f1..551e1860d9b3 100644 --- a/services/tests/uiservicestests/src/com/android/server/notification/ScheduleConditionProviderTest.java +++ b/services/tests/uiservicestests/src/com/android/server/notification/ScheduleConditionProviderTest.java @@ -10,11 +10,11 @@ import android.net.Uri; import android.service.notification.Condition; import android.service.notification.ScheduleCalendar; import android.service.notification.ZenModeConfig; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper.RunWithLooper; +import androidx.test.filters.SmallTest; + import com.android.server.UiServiceTestCase; import org.junit.Before; diff --git a/services/tests/uiservicestests/src/com/android/server/notification/SnoozeHelperTest.java b/services/tests/uiservicestests/src/com/android/server/notification/SnoozeHelperTest.java index 88c6fcf138cf..6f760fe33d1f 100644 --- a/services/tests/uiservicestests/src/com/android/server/notification/SnoozeHelperTest.java +++ b/services/tests/uiservicestests/src/com/android/server/notification/SnoozeHelperTest.java @@ -15,12 +15,16 @@ */ package com.android.server.notification; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.ArgumentCaptor; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; +import static junit.framework.Assert.assertEquals; +import static junit.framework.Assert.assertTrue; + +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.anyInt; +import static org.mockito.Matchers.anyLong; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; import android.app.AlarmManager; import android.app.Notification; @@ -30,23 +34,18 @@ import android.app.PendingIntent; import android.os.SystemClock; import android.os.UserHandle; import android.service.notification.StatusBarNotification; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; -import static junit.framework.Assert.assertEquals; -import static junit.framework.Assert.assertFalse; -import static junit.framework.Assert.assertTrue; -import static org.mockito.Matchers.any; -import static org.mockito.Matchers.anyInt; -import static org.mockito.Matchers.anyLong; -import static org.mockito.Matchers.eq; -import static org.mockito.Mockito.never; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; +import androidx.test.runner.AndroidJUnit4; import com.android.server.UiServiceTestCase; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.ArgumentCaptor; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; @SmallTest @RunWith(AndroidJUnit4.class) diff --git a/services/tests/uiservicestests/src/com/android/server/notification/ValidateNotificationPeopleTest.java b/services/tests/uiservicestests/src/com/android/server/notification/ValidateNotificationPeopleTest.java index 025b11a70414..b1ee1209d83e 100644 --- a/services/tests/uiservicestests/src/com/android/server/notification/ValidateNotificationPeopleTest.java +++ b/services/tests/uiservicestests/src/com/android/server/notification/ValidateNotificationPeopleTest.java @@ -15,23 +15,24 @@ */ package com.android.server.notification; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; + import android.app.Notification; import android.app.Person; import android.os.Bundle; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; import android.text.SpannableString; -import java.util.ArrayList; -import java.util.Arrays; +import androidx.test.runner.AndroidJUnit4; + +import com.android.server.UiServiceTestCase; import org.junit.Test; import org.junit.runner.RunWith; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertEquals; - -import com.android.server.UiServiceTestCase; +import java.util.ArrayList; +import java.util.Arrays; @SmallTest @RunWith(AndroidJUnit4.class) diff --git a/services/tests/uiservicestests/src/com/android/server/slice/PackageMatchingCacheTest.java b/services/tests/uiservicestests/src/com/android/server/slice/PackageMatchingCacheTest.java index c6aea882b7ca..f6c854e23494 100644 --- a/services/tests/uiservicestests/src/com/android/server/slice/PackageMatchingCacheTest.java +++ b/services/tests/uiservicestests/src/com/android/server/slice/PackageMatchingCacheTest.java @@ -21,10 +21,11 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper.RunWithLooper; +import androidx.test.filters.SmallTest; + import com.android.server.UiServiceTestCase; import com.android.server.slice.SliceManagerService.PackageMatchingCache; diff --git a/services/tests/uiservicestests/src/com/android/server/slice/PinnedSliceStateTest.java b/services/tests/uiservicestests/src/com/android/server/slice/PinnedSliceStateTest.java index 82e0fbe0e400..f35bb668c038 100644 --- a/services/tests/uiservicestests/src/com/android/server/slice/PinnedSliceStateTest.java +++ b/services/tests/uiservicestests/src/com/android/server/slice/PinnedSliceStateTest.java @@ -26,11 +26,12 @@ import android.os.Handler; import android.os.IBinder; import android.os.IBinder.DeathRecipient; import android.os.RemoteException; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.testing.TestableLooper.RunWithLooper; +import androidx.test.filters.SmallTest; + import com.android.server.UiServiceTestCase; import org.junit.Before; diff --git a/services/tests/uiservicestests/src/com/android/server/slice/SliceClientPermissionsTest.java b/services/tests/uiservicestests/src/com/android/server/slice/SliceClientPermissionsTest.java index 1efa4153073a..ff2236d25e28 100644 --- a/services/tests/uiservicestests/src/com/android/server/slice/SliceClientPermissionsTest.java +++ b/services/tests/uiservicestests/src/com/android/server/slice/SliceClientPermissionsTest.java @@ -24,14 +24,15 @@ import static org.mockito.Mockito.verify; import android.content.ContentResolver; import android.net.Uri; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper.RunWithLooper; import android.util.Xml.Encoding; +import androidx.test.filters.SmallTest; + import com.android.server.UiServiceTestCase; -import com.android.server.slice.SlicePermissionManager.PkgUser; import com.android.server.slice.SliceClientPermissions.SliceAuthority; +import com.android.server.slice.SlicePermissionManager.PkgUser; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/services/tests/uiservicestests/src/com/android/server/slice/SliceFullAccessListTest.java b/services/tests/uiservicestests/src/com/android/server/slice/SliceFullAccessListTest.java index bc2815099fdb..d942c5af0422 100644 --- a/services/tests/uiservicestests/src/com/android/server/slice/SliceFullAccessListTest.java +++ b/services/tests/uiservicestests/src/com/android/server/slice/SliceFullAccessListTest.java @@ -19,9 +19,10 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import android.os.UserHandle; -import android.support.test.filters.SmallTest; import android.util.Xml.Encoding; +import androidx.test.filters.SmallTest; + import com.android.server.UiServiceTestCase; import org.junit.Before; diff --git a/services/tests/uiservicestests/src/com/android/server/slice/SliceManagerServiceTest.java b/services/tests/uiservicestests/src/com/android/server/slice/SliceManagerServiceTest.java index 43a4e277a582..e4f000877a9a 100644 --- a/services/tests/uiservicestests/src/com/android/server/slice/SliceManagerServiceTest.java +++ b/services/tests/uiservicestests/src/com/android/server/slice/SliceManagerServiceTest.java @@ -33,18 +33,18 @@ import static org.mockito.Mockito.when; import android.app.AppOpsManager; import android.app.slice.SliceSpec; import android.app.usage.UsageStatsManagerInternal; -import android.content.pm.PackageManagerInternal; import android.net.Uri; import android.os.Binder; import android.os.IBinder; import android.os.Process; import android.os.RemoteException; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableContext; import android.testing.TestableLooper; import android.testing.TestableLooper.RunWithLooper; +import androidx.test.filters.SmallTest; + import com.android.server.LocalServices; import com.android.server.UiServiceTestCase; diff --git a/services/tests/uiservicestests/src/com/android/server/slice/SlicePermissionManagerTest.java b/services/tests/uiservicestests/src/com/android/server/slice/SlicePermissionManagerTest.java index dc057d564a84..2531adaa6966 100644 --- a/services/tests/uiservicestests/src/com/android/server/slice/SlicePermissionManagerTest.java +++ b/services/tests/uiservicestests/src/com/android/server/slice/SlicePermissionManagerTest.java @@ -22,12 +22,13 @@ import android.content.ContentResolver; import android.net.Uri; import android.net.Uri.Builder; import android.os.FileUtils; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.testing.TestableLooper.RunWithLooper; import android.util.Xml.Encoding; +import androidx.test.filters.SmallTest; + import com.android.server.UiServiceTestCase; import org.junit.Test; diff --git a/services/tests/uiservicestests/src/com/android/server/slice/SliceProviderPermissionsTest.java b/services/tests/uiservicestests/src/com/android/server/slice/SliceProviderPermissionsTest.java index 5775991b8ba6..8e61d210c28f 100644 --- a/services/tests/uiservicestests/src/com/android/server/slice/SliceProviderPermissionsTest.java +++ b/services/tests/uiservicestests/src/com/android/server/slice/SliceProviderPermissionsTest.java @@ -20,11 +20,12 @@ import static org.mockito.Mockito.clearInvocations; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; -import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper.RunWithLooper; import android.util.Xml.Encoding; +import androidx.test.filters.SmallTest; + import com.android.server.UiServiceTestCase; import com.android.server.slice.SlicePermissionManager.PkgUser; import com.android.server.slice.SliceProviderPermissions.SliceAuthority; diff --git a/telecomm/java/android/telecom/CallIdentification.java b/telecomm/java/android/telecom/CallIdentification.java index cde7f608fa6a..fffc1239a315 100644 --- a/telecomm/java/android/telecom/CallIdentification.java +++ b/telecomm/java/android/telecom/CallIdentification.java @@ -44,7 +44,7 @@ public final class CallIdentification implements Parcelable { * A {@link CallScreeningService} uses this class to create new instances of * {@link CallIdentification} for a screened call. */ - public static class Builder { + public final static class Builder { private CharSequence mName; private CharSequence mDescription; private CharSequence mDetails; @@ -67,7 +67,7 @@ public final class CallIdentification implements Parcelable { * @param callIdAppName The app name. * @hide */ - public Builder(String callIdPackageName, CharSequence callIdAppName) { + public Builder(@NonNull String callIdPackageName, @NonNull CharSequence callIdAppName) { mPackageName = callIdPackageName; mAppName = callIdAppName; } @@ -80,7 +80,7 @@ public final class CallIdentification implements Parcelable { * @param name The name associated with the call, or {@code null} if none is provided. * @return Builder instance. */ - public Builder setName(@Nullable CharSequence name) { + public @NonNull Builder setName(@Nullable CharSequence name) { mName = name; return this; } @@ -97,7 +97,7 @@ public final class CallIdentification implements Parcelable { * @param description The call description, or {@code null} if none is provided. * @return Builder instance. */ - public Builder setDescription(@Nullable CharSequence description) { + public @NonNull Builder setDescription(@Nullable CharSequence description) { mDescription = description; return this; } @@ -114,7 +114,8 @@ public final class CallIdentification implements Parcelable { * @param details The call details, or {@code null} if none is provided. * @return Builder instance. */ - public Builder setDetails(@Nullable CharSequence details) { + + public @NonNull Builder setDetails(@Nullable CharSequence details) { mDetails = details; return this; } @@ -127,7 +128,7 @@ public final class CallIdentification implements Parcelable { * @param photo The photo associated with the call, or {@code null} if none was provided. * @return Builder instance. */ - public Builder setPhoto(@Nullable Icon photo) { + public @NonNull Builder setPhoto(@Nullable Icon photo) { mPhoto = photo; return this; } @@ -141,7 +142,7 @@ public final class CallIdentification implements Parcelable { * @param nuisanceConfidence The nuisance confidence. * @return The builder. */ - public Builder setNuisanceConfidence(@NuisanceConfidence int nuisanceConfidence) { + public @NonNull Builder setNuisanceConfidence(@NuisanceConfidence int nuisanceConfidence) { mNuisanceConfidence = nuisanceConfidence; return this; } @@ -152,7 +153,7 @@ public final class CallIdentification implements Parcelable { * * @return {@link CallIdentification} instance. */ - public CallIdentification build() { + public @NonNull CallIdentification build() { return new CallIdentification(mName, mDescription, mDetails, mPhoto, mNuisanceConfidence, mPackageName, mAppName); } diff --git a/telecomm/java/android/telecom/Conference.java b/telecomm/java/android/telecom/Conference.java index 7d1f8ce75919..6382acf0511d 100644 --- a/telecomm/java/android/telecom/Conference.java +++ b/telecomm/java/android/telecom/Conference.java @@ -19,6 +19,7 @@ package android.telecom; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; +import android.annotation.TestApi; import android.net.Uri; import android.os.Bundle; import android.os.SystemClock; @@ -571,6 +572,7 @@ public abstract class Conference extends Conferenceable { * @return The primary connection. * @hide */ + @TestApi @SystemApi public Connection getPrimaryConnection() { if (mUnmodifiableChildConnections == null || mUnmodifiableChildConnections.isEmpty()) { diff --git a/telecomm/java/android/telecom/ConnectionRequest.java b/telecomm/java/android/telecom/ConnectionRequest.java index b6e6b0ed8270..d69d2cd756dc 100644 --- a/telecomm/java/android/telecom/ConnectionRequest.java +++ b/telecomm/java/android/telecom/ConnectionRequest.java @@ -337,7 +337,31 @@ public final class ConnectionRequest implements Parcelable { mAddress == null ? Uri.EMPTY : Connection.toLogSafePhoneNumber(mAddress.toString()), - mExtras == null ? "" : mExtras); + bundleToString(mExtras)); + } + + private static String bundleToString(Bundle extras){ + if (extras == null) { + return ""; + } + StringBuilder sb = new StringBuilder(); + sb.append("Bundle["); + for (String key : extras.keySet()) { + sb.append(key); + sb.append("="); + switch (key) { + case TelecomManager.EXTRA_INCOMING_CALL_ADDRESS: + case TelecomManager.EXTRA_UNKNOWN_CALL_HANDLE: + sb.append(Log.pii(extras.get(key))); + break; + default: + sb.append(extras.get(key)); + break; + } + sb.append(", "); + } + sb.append("]"); + return sb.toString(); } public static final Creator<ConnectionRequest> CREATOR = new Creator<ConnectionRequest> () { diff --git a/telecomm/java/android/telecom/PhoneAccountSuggestion.java b/telecomm/java/android/telecom/PhoneAccountSuggestion.java index b401bcf0f876..f23f4c9b9e9e 100644 --- a/telecomm/java/android/telecom/PhoneAccountSuggestion.java +++ b/telecomm/java/android/telecom/PhoneAccountSuggestion.java @@ -17,6 +17,7 @@ package android.telecom; import android.annotation.IntDef; +import android.annotation.NonNull; import android.annotation.SystemApi; import android.annotation.TestApi; import android.os.Parcel; @@ -72,7 +73,7 @@ public final class PhoneAccountSuggestion implements Parcelable { */ @SystemApi @TestApi - public PhoneAccountSuggestion(PhoneAccountHandle handle, @SuggestionReason int reason, + public PhoneAccountSuggestion(@NonNull PhoneAccountHandle handle, @SuggestionReason int reason, boolean shouldAutoSelect) { this.mHandle = handle; this.mReason = reason; @@ -101,7 +102,7 @@ public final class PhoneAccountSuggestion implements Parcelable { /** * @return The {@link PhoneAccountHandle} for this suggestion. */ - public PhoneAccountHandle getPhoneAccountHandle() { + @NonNull public PhoneAccountHandle getPhoneAccountHandle() { return mHandle; } diff --git a/telecomm/java/android/telecom/TelecomManager.java b/telecomm/java/android/telecom/TelecomManager.java index c60eb56005eb..84b223826c45 100644 --- a/telecomm/java/android/telecom/TelecomManager.java +++ b/telecomm/java/android/telecom/TelecomManager.java @@ -17,11 +17,13 @@ package android.telecom; import android.Manifest; import android.annotation.IntDef; import android.annotation.NonNull; +import android.annotation.Nullable; import android.annotation.RequiresPermission; import android.annotation.SuppressAutoDoc; import android.annotation.SuppressLint; import android.annotation.SystemApi; import android.annotation.SystemService; +import android.annotation.TestApi; import android.annotation.UnsupportedAppUsage; import android.content.ComponentName; import android.content.Context; @@ -560,6 +562,7 @@ public class TelecomManager { * * @hide */ + @TestApi @SystemApi public static final int TTY_MODE_OFF = 0; @@ -569,6 +572,7 @@ public class TelecomManager { * * @hide */ + @TestApi @SystemApi public static final int TTY_MODE_FULL = 1; @@ -579,6 +583,7 @@ public class TelecomManager { * * @hide */ + @TestApi @SystemApi public static final int TTY_MODE_HCO = 2; @@ -589,6 +594,7 @@ public class TelecomManager { * * @hide */ + @TestApi @SystemApi public static final int TTY_MODE_VCO = 3; @@ -804,10 +810,11 @@ public class TelecomManager { * <p> * The default dialer has access to use this method. * - * @return The user outgoing phone account selected by the user. + * @return The user outgoing phone account selected by the user, or {@code null} if there is no + * user selected outgoing {@link PhoneAccountHandle}. */ @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) - public PhoneAccountHandle getUserSelectedOutgoingPhoneAccount() { + public @Nullable PhoneAccountHandle getUserSelectedOutgoingPhoneAccount() { try { if (isServiceConnected()) { return getTelecomService().getUserSelectedOutgoingPhoneAccount( @@ -823,12 +830,14 @@ public class TelecomManager { * Sets the user-chosen default {@link PhoneAccountHandle} for making outgoing phone calls. * * @param accountHandle The {@link PhoneAccountHandle} which will be used by default for making - * outgoing voice calls. + * outgoing voice calls, or {@code null} if no default is specified (the + * user will be asked each time a call is placed in this case). * @hide */ @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) + @TestApi @SystemApi - public void setUserSelectedOutgoingPhoneAccount(PhoneAccountHandle accountHandle) { + public void setUserSelectedOutgoingPhoneAccount(@Nullable PhoneAccountHandle accountHandle) { try { if (isServiceConnected()) { getTelecomService().setUserSelectedOutgoingPhoneAccount(accountHandle); @@ -1195,7 +1204,8 @@ public class TelecomManager { /** * Used to set the default dialer package. * - * @param packageName to set the default dialer to. + * @param packageName to set the default dialer to, or {@code null} if the system provided + * dialer should be used instead. * * @result {@code true} if the default dialer was successfully changed, {@code false} if * the specified package does not correspond to an installed dialer, or is already @@ -1212,7 +1222,7 @@ public class TelecomManager { @RequiresPermission(allOf = { android.Manifest.permission.MODIFY_PHONE_STATE, android.Manifest.permission.WRITE_SECURE_SETTINGS}) - public boolean setDefaultDialer(String packageName) { + public boolean setDefaultDialer(@Nullable String packageName) { try { if (isServiceConnected()) { return getTelecomService().setDefaultDialer(packageName); @@ -1226,9 +1236,10 @@ public class TelecomManager { /** * Determines the package name of the system-provided default phone app. * - * @return package name for the system dialer package or null if no system dialer is preloaded. + * @return package name for the system dialer package or {@code null} if no system dialer is + * preloaded. */ - public String getSystemDialerPackage() { + public @Nullable String getSystemDialerPackage() { try { if (isServiceConnected()) { return getTelecomService().getSystemDialerPackage(); @@ -1527,6 +1538,7 @@ public class TelecomManager { * @hide */ @SystemApi + @TestApi @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public @TtyMode int getCurrentTtyMode() { try { @@ -1975,6 +1987,7 @@ public class TelecomManager { * @hide */ @SystemApi + @TestApi @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean isInEmergencyCall() { try { diff --git a/telephony/java/android/provider/Telephony.java b/telephony/java/android/provider/Telephony.java index 21cc1a2171ff..4939157cd93b 100644 --- a/telephony/java/android/provider/Telephony.java +++ b/telephony/java/android/provider/Telephony.java @@ -17,6 +17,7 @@ package android.provider; import android.annotation.IntDef; +import android.annotation.NonNull; import android.annotation.RequiresPermission; import android.annotation.SdkConstant; import android.annotation.SdkConstant.SdkConstantType; @@ -1126,8 +1127,8 @@ public final class Telephony { * Broadcast Action: A debug code has been entered in the dialer. This intent is * broadcast by the system and OEM telephony apps may need to receive these broadcasts. * These "secret codes" are used to activate developer menus by dialing certain codes. - * And they are of the form {@code *#*#<code>#*#*}. The intent will have the data - * URI: {@code android_secret_code://<code>}. It is possible that a manifest + * And they are of the form {@code *#*#<code>#*#*}. The intent will have the data + * URI: {@code android_secret_code://<code>}. It is possible that a manifest * receiver would be woken up even if it is not currently running. * * <p>Requires {@code android.Manifest.permission#CONTROL_INCALL_EXPERIENCE} to @@ -3764,6 +3765,42 @@ public final class Telephony { */ public static final String CARRIER_ID = "carrier_id"; + /** + * The skip 464xlat flag. Flag works as follows. + * {@link #SKIP_464XLAT_DEFAULT}: the APN will skip only APN is IMS and no internet. + * {@link #SKIP_464XLAT_DISABLE}: the APN will NOT skip 464xlat + * {@link #SKIP_464XLAT_ENABLE}: the APN will skip 464xlat + * <p>Type: INTEGER</p> + * + * @hide + */ + public static final String SKIP_464XLAT = "skip_464xlat"; + + /** + * Possible value for the {@link #SKIP_464XLAT} field. + * <p>Type: INTEGER</p> + * + * @hide + */ + public static final int SKIP_464XLAT_DEFAULT = -1; + + /** + * Possible value for the {@link #SKIP_464XLAT} field. + * <p>Type: INTEGER</p> + * + * @hide + */ + public static final int SKIP_464XLAT_DISABLE = 0; + + /** + * Possible value for the {@link #SKIP_464XLAT} field. + * <p>Type: INTEGER</p> + * + * @hide + */ + public static final int SKIP_464XLAT_ENABLE = 1; + + /** @hide */ @IntDef({ UNEDITED, @@ -3774,6 +3811,16 @@ public final class Telephony { }) @Retention(RetentionPolicy.SOURCE) public @interface EditStatus {} + + /** @hide */ + @IntDef({ + SKIP_464XLAT_DEFAULT, + SKIP_464XLAT_DISABLE, + SKIP_464XLAT_ENABLE, + }) + @Retention(RetentionPolicy.SOURCE) + public @interface Skip464XlatStatus {} + } /** @@ -4277,6 +4324,7 @@ public final class Telephony { * @param subscriptionId the subscriptionId to receive updates on * @return the Uri used to observe precise carrier identity changes */ + @NonNull public static Uri getPreciseCarrierIdUriForSubscriptionId(int subscriptionId) { return Uri.withAppendedPath(Uri.withAppendedPath(CONTENT_URI, "precise"), String.valueOf(subscriptionId)); diff --git a/telephony/java/android/telephony/CallAttributes.java b/telephony/java/android/telephony/CallAttributes.java index 0d4f09f98b43..2ff2d91348de 100644 --- a/telephony/java/android/telephony/CallAttributes.java +++ b/telephony/java/android/telephony/CallAttributes.java @@ -16,6 +16,7 @@ package android.telephony; +import android.annotation.NonNull; import android.annotation.SystemApi; import android.os.Parcel; import android.os.Parcelable; @@ -29,15 +30,15 @@ import java.util.Objects; * @hide */ @SystemApi -public class CallAttributes implements Parcelable { +public final class CallAttributes implements Parcelable { private PreciseCallState mPreciseCallState; @NetworkType private int mNetworkType; // TelephonyManager.NETWORK_TYPE_* ints private CallQuality mCallQuality; - public CallAttributes(PreciseCallState state, @NetworkType int networkType, - CallQuality callQuality) { + public CallAttributes(@NonNull PreciseCallState state, @NetworkType int networkType, + @NonNull CallQuality callQuality) { this.mPreciseCallState = state; this.mNetworkType = networkType; this.mCallQuality = callQuality; @@ -59,6 +60,7 @@ public class CallAttributes implements Parcelable { /** * Returns the {@link PreciseCallState} of the call. */ + @NonNull public PreciseCallState getPreciseCallState() { return mPreciseCallState; } @@ -96,6 +98,7 @@ public class CallAttributes implements Parcelable { /** * Returns the {#link CallQuality} of the call. */ + @NonNull public CallQuality getCallQuality() { return mCallQuality; } diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java index aef3dbf5ff26..94a755c583cf 100644 --- a/telephony/java/android/telephony/CarrierConfigManager.java +++ b/telephony/java/android/telephony/CarrierConfigManager.java @@ -2427,6 +2427,16 @@ public class CarrierConfigManager { public static final String KEY_OPPORTUNISTIC_NETWORK_DATA_SWITCH_HYSTERESIS_TIME_LONG = "opportunistic_network_data_switch_hysteresis_time_long"; + /** + * An int array containing CDMA enhanced roaming indicator values for Home (non-roaming) network. + * The default values come from 3GPP2 C.R1001 table 8.1-1. + * Enhanced Roaming Indicator Number Assignments + * + * @hide + */ + public static final String KEY_CDMA_ENHANCED_ROAMING_INDICATOR_FOR_HOME_NETWORK_INT_ARRAY = + "cdma_enhanced_roaming_indicator_for_home_network_int_array"; + /** The default value for every variable. */ private final static PersistableBundle sDefaults; @@ -2803,6 +2813,10 @@ public class CarrierConfigManager { sDefaults.putLong(KEY_OPPORTUNISTIC_NETWORK_ENTRY_OR_EXIT_HYSTERESIS_TIME_LONG, 10000); /* Default value is 10 seconds. */ sDefaults.putLong(KEY_OPPORTUNISTIC_NETWORK_DATA_SWITCH_HYSTERESIS_TIME_LONG, 10000); + sDefaults.putIntArray(KEY_CDMA_ENHANCED_ROAMING_INDICATOR_FOR_HOME_NETWORK_INT_ARRAY, + new int[] { + 1 /* Roaming Indicator Off */ + }); } /** diff --git a/telephony/java/android/telephony/CarrierRestrictionRules.java b/telephony/java/android/telephony/CarrierRestrictionRules.java index d47b55ca4372..b627788c2a8c 100644 --- a/telephony/java/android/telephony/CarrierRestrictionRules.java +++ b/telephony/java/android/telephony/CarrierRestrictionRules.java @@ -177,7 +177,8 @@ public final class CarrierRestrictionRules implements Parcelable { * @return a list of boolean with the same size as input, indicating if each * {@link CarrierIdentifier} is allowed or not. */ - public List<Boolean> isCarrierIdentifiersAllowed(@NonNull List<CarrierIdentifier> carrierIds) { + public @NonNull List<Boolean> areCarrierIdentifiersAllowed( + @NonNull List<CarrierIdentifier> carrierIds) { ArrayList<Boolean> result = new ArrayList<>(carrierIds.size()); // First calculate the result for each slot independently @@ -332,7 +333,7 @@ public final class CarrierRestrictionRules implements Parcelable { /** * Builder for a {@link CarrierRestrictionRules}. */ - public static class Builder { + public static final class Builder { private final CarrierRestrictionRules mRules; /** {@hide} */ @@ -341,14 +342,14 @@ public final class CarrierRestrictionRules implements Parcelable { } /** build command */ - public CarrierRestrictionRules build() { + public @NonNull CarrierRestrictionRules build() { return mRules; } /** * Indicate that all carriers are allowed. */ - public Builder setAllCarriersAllowed() { + public @NonNull Builder setAllCarriersAllowed() { mRules.mAllowedCarriers.clear(); mRules.mExcludedCarriers.clear(); mRules.mCarrierRestrictionDefault = CARRIER_RESTRICTION_DEFAULT_ALLOWED; @@ -360,7 +361,8 @@ public final class CarrierRestrictionRules implements Parcelable { * * @param allowedCarriers list of allowed carriers */ - public Builder setAllowedCarriers(List<CarrierIdentifier> allowedCarriers) { + public @NonNull Builder setAllowedCarriers( + @NonNull List<CarrierIdentifier> allowedCarriers) { mRules.mAllowedCarriers = new ArrayList<CarrierIdentifier>(allowedCarriers); return this; } @@ -370,7 +372,8 @@ public final class CarrierRestrictionRules implements Parcelable { * * @param excludedCarriers list of excluded carriers */ - public Builder setExcludedCarriers(List<CarrierIdentifier> excludedCarriers) { + public @NonNull Builder setExcludedCarriers( + @NonNull List<CarrierIdentifier> excludedCarriers) { mRules.mExcludedCarriers = new ArrayList<CarrierIdentifier>(excludedCarriers); return this; } @@ -380,7 +383,7 @@ public final class CarrierRestrictionRules implements Parcelable { * * @param carrierRestrictionDefault prioritized carrier list */ - public Builder setDefaultCarrierRestriction( + public @NonNull Builder setDefaultCarrierRestriction( @CarrierRestrictionDefault int carrierRestrictionDefault) { mRules.mCarrierRestrictionDefault = carrierRestrictionDefault; return this; @@ -391,7 +394,7 @@ public final class CarrierRestrictionRules implements Parcelable { * * @param multiSimPolicy multi SIM policy */ - public Builder setMultiSimPolicy(@MultiSimPolicy int multiSimPolicy) { + public @NonNull Builder setMultiSimPolicy(@MultiSimPolicy int multiSimPolicy) { mRules.mMultiSimPolicy = multiSimPolicy; return this; } diff --git a/telephony/java/android/telephony/CellIdentityNr.java b/telephony/java/android/telephony/CellIdentityNr.java index 856f08107fd7..19bc0ceaf00a 100644 --- a/telephony/java/android/telephony/CellIdentityNr.java +++ b/telephony/java/android/telephony/CellIdentityNr.java @@ -81,7 +81,8 @@ public final class CellIdentityNr extends CellIdentity { /** * Get the NR Cell Identity. * - * @return The NR Cell Identity in range [0, 68719476735] or Long.MAX_VALUE if unknown. + * @return The 36-bit NR Cell Identity in range [0, 68719476735] or + * {@link CellInfo#UNAVAILABLE_LONG} if unknown. */ public long getNci() { return mNci; diff --git a/telephony/java/android/telephony/CellInfo.java b/telephony/java/android/telephony/CellInfo.java index 8ce5c54c810e..c7853f184407 100644 --- a/telephony/java/android/telephony/CellInfo.java +++ b/telephony/java/android/telephony/CellInfo.java @@ -40,6 +40,11 @@ public abstract class CellInfo implements Parcelable { public static final int UNAVAILABLE = Integer.MAX_VALUE; /** + * This value indicates that the long field is unreported. + */ + public static final long UNAVAILABLE_LONG = Long.MAX_VALUE; + + /** * Cell identity type * @hide */ diff --git a/telephony/java/android/telephony/NetworkRegistrationState.java b/telephony/java/android/telephony/NetworkRegistrationState.java index 84d6628d47d2..4d97f8104c26 100644 --- a/telephony/java/android/telephony/NetworkRegistrationState.java +++ b/telephony/java/android/telephony/NetworkRegistrationState.java @@ -17,11 +17,13 @@ package android.telephony; import android.annotation.IntDef; +import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.os.Parcel; import android.os.Parcelable; import android.telephony.AccessNetworkConstants.TransportType; +import android.telephony.TelephonyManager.NetworkType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -140,6 +142,7 @@ public class NetworkRegistrationState implements Parcelable { @ServiceState.RoamingType private int mRoamingType; + @NetworkType private int mAccessNetworkTechnology; @NRStatus @@ -149,6 +152,7 @@ public class NetworkRegistrationState implements Parcelable { private final boolean mEmergencyOnly; + @ServiceType private final int[] mAvailableServices; @Nullable @@ -167,9 +171,8 @@ public class NetworkRegistrationState implements Parcelable { * @param regState Network registration state. Must be one of the {@link RegState}. For * {@link TransportType#WLAN} transport, only {@link #REG_STATE_HOME} and * {@link #REG_STATE_NOT_REG_NOT_SEARCHING} are valid states. - * @param accessNetworkTechnology Access network technology. Must be one of TelephonyManager - * NETWORK_TYPE_XXXX. For {@link TransportType#WLAN} transport, set to - * {@link TelephonyManager#NETWORK_TYPE_IWLAN}. + * @param accessNetworkTechnology Access network technology.For {@link TransportType#WLAN} + * transport, set to {@link TelephonyManager#NETWORK_TYPE_IWLAN}. * @param rejectCause Reason for denial if the registration state is {@link #REG_STATE_DENIED}. * Depending on {@code accessNetworkTechnology}, the values are defined in 3GPP TS 24.008 * 10.5.3.6 for UMTS, 3GPP TS 24.301 9.9.3.9 for LTE, and 3GPP2 A.S0001 6.2.2.44 for CDMA. If @@ -182,8 +185,9 @@ public class NetworkRegistrationState implements Parcelable { * information is not available. */ public NetworkRegistrationState(@Domain int domain, int transportType, @RegState int regState, - int accessNetworkTechnology, int rejectCause, - boolean emergencyOnly, int[] availableServices, + @NetworkType int accessNetworkTechnology, int rejectCause, + boolean emergencyOnly, + @NonNull @ServiceType int[] availableServices, @Nullable CellIdentity cellIdentity) { mDomain = domain; mTransportType = transportType; @@ -230,7 +234,7 @@ public class NetworkRegistrationState implements Parcelable { updateNrStatus(mDataSpecificStates); } - protected NetworkRegistrationState(Parcel source) { + private NetworkRegistrationState(Parcel source) { mDomain = source.readInt(); mTransportType = source.readInt(); mRegState = source.readInt(); @@ -285,6 +289,14 @@ public class NetworkRegistrationState implements Parcelable { } /** + * @hide + * @return {@code true} if in service. + */ + public boolean isInService() { + return mRegState == REG_STATE_HOME || mRegState == REG_STATE_ROAMING; + } + + /** * Set {@link ServiceState.RoamingType roaming type}. This could override * roaming type based on resource overlay or carrier config. * @hide @@ -309,25 +321,29 @@ public class NetworkRegistrationState implements Parcelable { /** * @return List of available service types. */ + @NonNull + @ServiceType public int[] getAvailableServices() { return mAvailableServices; } /** - * @return The access network technology {@link TelephonyManager.NetworkType}. + * @return The access network technology {@link NetworkType}. */ - public @TelephonyManager.NetworkType int getAccessNetworkTechnology() { + public @NetworkType int getAccessNetworkTechnology() { return mAccessNetworkTechnology; } /** - * override the access network technology {@link TelephonyManager.NetworkType} e.g, rat ratchet. + * override the access network technology {@link NetworkType} e.g, rat ratchet. * @hide */ - public void setAccessNetworkTechnology(@TelephonyManager.NetworkType int tech) { + public void setAccessNetworkTechnology(@NetworkType int tech) { mAccessNetworkTechnology = tech; } /** - * @return Network reject cause + * @return Reason for denial if the registration state is {@link #REG_STATE_DENIED}. + * Depending on {@code accessNetworkTechnology}, the values are defined in 3GPP TS 24.008 + * 10.5.3.6 for UMTS, 3GPP TS 24.301 9.9.3.9 for LTE, and 3GPP2 A.S0001 6.2.2.44 for CDMA */ public int getRejectCause() { return mRejectCause; @@ -336,6 +352,7 @@ public class NetworkRegistrationState implements Parcelable { /** * @return The cell information. */ + @Nullable public CellIdentity getCellIdentity() { return mCellIdentity; } @@ -539,4 +556,192 @@ public class NetworkRegistrationState implements Parcelable { p.recycle(); return result; } + + /** + * Provides a convenient way to set the fields of a {@link NetworkRegistrationState} when + * creating a new instance. + * + * <p>The example below shows how you might create a new {@code NetworkRegistrationState}: + * + * <pre><code> + * + * NetworkRegistrationState nrs = new NetworkRegistrationState.Builder() + * .setApnTypeBitmask(ApnSetting.TYPE_DEFAULT | ApnSetting.TYPE_MMS) + * .setApnName("apn.example.com") + * .setEntryName("Example Carrier APN") + * .setMmsc(Uri.parse("http://mms.example.com:8002")) + * .setMmsProxyAddress(mmsProxy) + * .setMmsProxyPort(8799) + * .build(); + * </code></pre> + */ + public static class Builder{ + @Domain + private int mDomain; + + private int mTransportType; + + @RegState + private int mRegState; + + @ServiceState.RoamingType + private int mRoamingType; + + @NetworkType + private int mAccessNetworkTechnology; + + @NRStatus + private int mNrStatus; + + private int mRejectCause; + + private boolean mEmergencyOnly; + + @ServiceType + private int[] mAvailableServices; + + @Nullable + private CellIdentity mCellIdentity; + + /** + * Default constructor for Builder. + */ + public Builder() {} + + /** + * Set the network domain. + * + * @param domain Network domain. + * + * @return The same instance of the builder. + */ + public @NonNull Builder setDomain(@Domain int domain) { + mDomain = domain; + return this; + } + + /** + * Set the transport type. + * + * @param transportType Transport type. + * + * @return The same instance of the builder. + */ + public @NonNull Builder setTransportType(int transportType) { + mTransportType = transportType; + return this; + } + + /** + * Set the registration state. + * + * @param regState The registration state. + * + * @return The same instance of the builder. + */ + public @NonNull Builder setRegState(@RegState int regState) { + mRegState = regState; + return this; + } + + /** + * Set the roaming type. + * + * @param roamingType Roaming type. + * + * @return The same instance of the builder. + */ + public @NonNull Builder setRoamingType(@ServiceState.RoamingType int roamingType) { + mRoamingType = roamingType; + return this; + } + + /** + * Set tne access network technology. + * + * @return The same instance of the builder. + * + * @param accessNetworkTechnology The access network technology + */ + public @NonNull Builder setAccessNetworkTechnology( + @NetworkType int accessNetworkTechnology) { + mAccessNetworkTechnology = accessNetworkTechnology; + return this; + } + + /** + * Set the 5G NR connection status. + * + * @param nrStatus 5G NR connection status. + * + * @return The same instance of the builder. + */ + public @NonNull Builder setNrStatus(@NRStatus int nrStatus) { + mNrStatus = nrStatus; + return this; + } + + /** + * Set the network reject cause. + * + * @param rejectCause Reason for denial if the registration state is + * {@link #REG_STATE_DENIED}.Depending on {@code accessNetworkTechnology}, the values are + * defined in 3GPP TS 24.008 10.5.3.6 for UMTS, 3GPP TS 24.301 9.9.3.9 for LTE, and 3GPP2 + * A.S0001 6.2.2.44 for CDMA. If the reject cause is not supported or unknown, set it to 0. + * + * @return The same instance of the builder. + */ + public @NonNull Builder setRejectCause(int rejectCause) { + mRejectCause = rejectCause; + return this; + } + + /** + * Set emergency only. + * + * @param emergencyOnly True if this network registration is for emergency use only. + * + * @return The same instance of the builder. + */ + public @NonNull Builder setEmergencyOnly(boolean emergencyOnly) { + mEmergencyOnly = emergencyOnly; + return this; + } + + /** + * Set the available services. + * + * @param availableServices Available services. + * + * @return The same instance of the builder. + */ + public @NonNull Builder setAvailableServices( + @NonNull @ServiceType int[] availableServices) { + mAvailableServices = availableServices; + return this; + } + + /** + * Set the cell identity. + * + * @param cellIdentity The cell identity. + * + * @return The same instance of the builder. + */ + public @NonNull Builder setCellIdentity(@Nullable CellIdentity cellIdentity) { + mCellIdentity = cellIdentity; + return this; + } + + /** + * Build the NetworkRegistrationState. + * + * @return the NetworkRegistrationState object. + */ + public @NonNull NetworkRegistrationState build() { + return new NetworkRegistrationState(mDomain, mTransportType, mRegState, + mAccessNetworkTechnology, mRejectCause, mEmergencyOnly, mAvailableServices, + mCellIdentity); + } + } } diff --git a/telephony/java/android/telephony/NetworkService.java b/telephony/java/android/telephony/NetworkService.java index 6c45cc4ef3b8..f1240e9fcf34 100644 --- a/telephony/java/android/telephony/NetworkService.java +++ b/telephony/java/android/telephony/NetworkService.java @@ -17,6 +17,7 @@ package android.telephony; import android.annotation.NonNull; +import android.annotation.Nullable; import android.annotation.SystemApi; import android.app.Service; import android.content.Intent; @@ -26,6 +27,7 @@ import android.os.IBinder; import android.os.Looper; import android.os.Message; import android.os.RemoteException; +import android.telephony.NetworkRegistrationState.Domain; import android.util.SparseArray; import com.android.internal.annotations.VisibleForTesting; @@ -81,36 +83,43 @@ public abstract class NetworkService extends Service { * service is associated with one physical SIM slot. */ public abstract class NetworkServiceProvider implements AutoCloseable { - private final int mSlotId; + private final int mSlotIndex; private final List<INetworkServiceCallback> mNetworkRegistrationStateChangedCallbacks = new ArrayList<>(); - public NetworkServiceProvider(int slotId) { - mSlotId = slotId; + /** + * Constructor + * @param slotIndex SIM slot id the data service provider associated with. + */ + public NetworkServiceProvider(int slotIndex) { + mSlotIndex = slotIndex; } /** - * @return SIM slot id the network service associated with. + * @return SIM slot index the network service associated with. */ - public final int getSlotId() { - return mSlotId; + public final int getSlotIndex() { + return mSlotIndex; } /** * API to get network registration state. The result will be passed to the callback. - * @param domain - * @param callback - * @return SIM slot id the network service associated with. + * @param domain Network domain + * @param callback The callback for reporting network registration state */ - public void getNetworkRegistrationState(int domain, NetworkServiceCallback callback) { + public void getNetworkRegistrationState(@Domain int domain, + @NonNull NetworkServiceCallback callback) { callback.onGetNetworkRegistrationStateComplete( NetworkServiceCallback.RESULT_ERROR_UNSUPPORTED, null); } + /** + * Notify the system that network registration state is changed. + */ public final void notifyNetworkRegistrationStateChanged() { mHandler.obtainMessage(NETWORK_SERVICE_INDICATION_NETWORK_STATE_CHANGED, - mSlotId, 0, null).sendToTarget(); + mSlotIndex, 0, null).sendToTarget(); } private void registerForStateChanged(@NonNull INetworkServiceCallback callback) { @@ -152,23 +161,23 @@ public abstract class NetworkService extends Service { @Override public void handleMessage(Message message) { - final int slotId = message.arg1; + final int slotIndex = message.arg1; final INetworkServiceCallback callback = (INetworkServiceCallback) message.obj; - NetworkServiceProvider serviceProvider = mServiceMap.get(slotId); + NetworkServiceProvider serviceProvider = mServiceMap.get(slotIndex); switch (message.what) { case NETWORK_SERVICE_CREATE_NETWORK_SERVICE_PROVIDER: // If the service provider doesn't exist yet, we try to create it. if (serviceProvider == null) { - mServiceMap.put(slotId, createNetworkServiceProvider(slotId)); + mServiceMap.put(slotIndex, onCreateNetworkServiceProvider(slotIndex)); } break; case NETWORK_SERVICE_REMOVE_NETWORK_SERVICE_PROVIDER: // If the service provider doesn't exist yet, we try to create it. if (serviceProvider != null) { serviceProvider.close(); - mServiceMap.remove(slotId); + mServiceMap.remove(slotIndex); } break; case NETWORK_SERVICE_REMOVE_ALL_NETWORK_SERVICE_PROVIDERS: @@ -221,12 +230,12 @@ public abstract class NetworkService extends Service { * this method to facilitate the creation of {@link NetworkServiceProvider} instances. The system * will call this method after binding the network service for each active SIM slot id. * - * @param slotId SIM slot id the network service associated with. + * @param slotIndex SIM slot id the network service associated with. * @return Network service object */ - protected abstract NetworkServiceProvider createNetworkServiceProvider(int slotId); + @Nullable + public abstract NetworkServiceProvider onCreateNetworkServiceProvider(int slotIndex); - /** @hide */ @Override public IBinder onBind(Intent intent) { if (intent == null || !NETWORK_SERVICE_INTERFACE.equals(intent.getAction())) { @@ -237,7 +246,6 @@ public abstract class NetworkService extends Service { return mBinder; } - /** @hide */ @Override public boolean onUnbind(Intent intent) { mHandler.obtainMessage(NETWORK_SERVICE_REMOVE_ALL_NETWORK_SERVICE_PROVIDERS, 0, @@ -250,6 +258,7 @@ public abstract class NetworkService extends Service { @Override public void onDestroy() { mHandlerThread.quit(); + super.onDestroy(); } /** @@ -259,35 +268,35 @@ public abstract class NetworkService extends Service { private class INetworkServiceWrapper extends INetworkService.Stub { @Override - public void createNetworkServiceProvider(int slotId) { - mHandler.obtainMessage(NETWORK_SERVICE_CREATE_NETWORK_SERVICE_PROVIDER, slotId, + public void createNetworkServiceProvider(int slotIndex) { + mHandler.obtainMessage(NETWORK_SERVICE_CREATE_NETWORK_SERVICE_PROVIDER, slotIndex, 0, null).sendToTarget(); } @Override - public void removeNetworkServiceProvider(int slotId) { - mHandler.obtainMessage(NETWORK_SERVICE_REMOVE_NETWORK_SERVICE_PROVIDER, slotId, + public void removeNetworkServiceProvider(int slotIndex) { + mHandler.obtainMessage(NETWORK_SERVICE_REMOVE_NETWORK_SERVICE_PROVIDER, slotIndex, 0, null).sendToTarget(); } @Override public void getNetworkRegistrationState( - int slotId, int domain, INetworkServiceCallback callback) { - mHandler.obtainMessage(NETWORK_SERVICE_GET_REGISTRATION_STATE, slotId, + int slotIndex, int domain, INetworkServiceCallback callback) { + mHandler.obtainMessage(NETWORK_SERVICE_GET_REGISTRATION_STATE, slotIndex, domain, callback).sendToTarget(); } @Override public void registerForNetworkRegistrationStateChanged( - int slotId, INetworkServiceCallback callback) { - mHandler.obtainMessage(NETWORK_SERVICE_REGISTER_FOR_STATE_CHANGE, slotId, + int slotIndex, INetworkServiceCallback callback) { + mHandler.obtainMessage(NETWORK_SERVICE_REGISTER_FOR_STATE_CHANGE, slotIndex, 0, callback).sendToTarget(); } @Override public void unregisterForNetworkRegistrationStateChanged( - int slotId,INetworkServiceCallback callback) { - mHandler.obtainMessage(NETWORK_SERVICE_UNREGISTER_FOR_STATE_CHANGE, slotId, + int slotIndex, INetworkServiceCallback callback) { + mHandler.obtainMessage(NETWORK_SERVICE_UNREGISTER_FOR_STATE_CHANGE, slotIndex, 0, callback).sendToTarget(); } } diff --git a/telephony/java/android/telephony/NetworkServiceCallback.java b/telephony/java/android/telephony/NetworkServiceCallback.java index dbad02fd5640..c2fcfb7a0759 100644 --- a/telephony/java/android/telephony/NetworkServiceCallback.java +++ b/telephony/java/android/telephony/NetworkServiceCallback.java @@ -17,6 +17,7 @@ package android.telephony; import android.annotation.IntDef; +import android.annotation.Nullable; import android.annotation.SystemApi; import android.os.RemoteException; import android.telephony.NetworkService.NetworkServiceProvider; @@ -75,7 +76,8 @@ public class NetworkServiceCallback { * {@link NetworkServiceCallback#RESULT_ERROR_UNSUPPORTED} * @param state The state information to be returned to callback. */ - public void onGetNetworkRegistrationStateComplete(int result, NetworkRegistrationState state) { + public void onGetNetworkRegistrationStateComplete(int result, + @Nullable NetworkRegistrationState state) { INetworkServiceCallback callback = mCallback.get(); if (callback != null) { try { diff --git a/telephony/java/android/telephony/PhoneNumberRange.java b/telephony/java/android/telephony/PhoneNumberRange.java index dba803b2bc19..12df9b5b33fe 100644 --- a/telephony/java/android/telephony/PhoneNumberRange.java +++ b/telephony/java/android/telephony/PhoneNumberRange.java @@ -149,7 +149,7 @@ public final class PhoneNumberRange implements Parcelable { * @param number A phone number, with or without separators or a country code. * @return {@code true} if the number matches, {@code false} otherwise. */ - public boolean matches(String number) { + public boolean matches(@NonNull String number) { // Check the prefix, make sure it matches either with or without the country code. String normalizedNumber = number.replaceAll("[^0-9]", ""); String prefixWithCountryCode = mCountryCode + mPrefix; diff --git a/telephony/java/android/telephony/PhoneStateListener.java b/telephony/java/android/telephony/PhoneStateListener.java index da92730383d0..24319a230716 100644 --- a/telephony/java/android/telephony/PhoneStateListener.java +++ b/telephony/java/android/telephony/PhoneStateListener.java @@ -606,7 +606,7 @@ public class PhoneStateListener { @RequiresPermission((android.Manifest.permission.READ_PRECISE_PHONE_STATE)) @SystemApi public void onPreciseDataConnectionStateChanged( - PreciseDataConnectionState dataConnectionState) { + @NonNull PreciseDataConnectionState dataConnectionState) { // default implementation empty } diff --git a/telephony/java/android/telephony/PreciseDataConnectionState.java b/telephony/java/android/telephony/PreciseDataConnectionState.java index 57a18266259a..d59367821a5d 100644 --- a/telephony/java/android/telephony/PreciseDataConnectionState.java +++ b/telephony/java/android/telephony/PreciseDataConnectionState.java @@ -16,6 +16,8 @@ package android.telephony; +import android.annotation.NonNull; +import android.annotation.Nullable; import android.annotation.SystemApi; import android.annotation.UnsupportedAppUsage; import android.net.LinkProperties; @@ -25,6 +27,7 @@ import android.telephony.data.ApnSetting; import java.util.Objects; + /** * Contains precise data connection state. * @@ -119,6 +122,7 @@ public final class PreciseDataConnectionState implements Parcelable { /** * Returns APN {@link ApnSetting} of this data connection. */ + @Nullable public String getDataConnectionApn() { return mAPN; } diff --git a/telephony/java/android/telephony/RadioAccessFamily.java b/telephony/java/android/telephony/RadioAccessFamily.java index c1786befb096..eb889c6171a0 100644 --- a/telephony/java/android/telephony/RadioAccessFamily.java +++ b/telephony/java/android/telephony/RadioAccessFamily.java @@ -22,6 +22,7 @@ import android.hardware.radio.V1_4.CellInfo.Info; import android.os.Build; import android.os.Parcel; import android.os.Parcelable; +import android.telephony.TelephonyManager.PrefNetworkMode; import com.android.internal.telephony.RILConstants; @@ -170,7 +171,8 @@ public class RadioAccessFamily implements Parcelable { }; @UnsupportedAppUsage - public static int getRafFromNetworkType(int type) { + @TelephonyManager.NetworkTypeBitMask + public static int getRafFromNetworkType(@PrefNetworkMode int type) { switch (type) { case RILConstants.NETWORK_MODE_WCDMA_PREF: return GSM | WCDMA; @@ -279,6 +281,7 @@ public class RadioAccessFamily implements Parcelable { } @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) + @PrefNetworkMode public static int getNetworkTypeFromRaf(int raf) { raf = getAdjustedRaf(raf); diff --git a/telephony/java/android/telephony/ServiceState.java b/telephony/java/android/telephony/ServiceState.java index 3dc119950a59..611812996b28 100644 --- a/telephony/java/android/telephony/ServiceState.java +++ b/telephony/java/android/telephony/ServiceState.java @@ -17,6 +17,8 @@ package android.telephony; import android.annotation.IntDef; +import android.annotation.NonNull; +import android.annotation.Nullable; import android.annotation.SystemApi; import android.annotation.TestApi; import android.annotation.UnsupportedAppUsage; @@ -436,7 +438,11 @@ public class ServiceState implements Parcelable { /** * Construct a ServiceState object from the given parcel. + * + * @deprecated The constructor takes parcel should not be public at the beginning. Use + * {@link #ServiceState()} instead. */ + @Deprecated public ServiceState(Parcel in) { mVoiceRegState = in.readInt(); mDataRegState = in.readInt(); @@ -1760,6 +1766,7 @@ public class ServiceState implements Parcelable { * @return List of {@link NetworkRegistrationState} * @hide */ + @NonNull @SystemApi public List<NetworkRegistrationState> getNetworkRegistrationStates() { synchronized (mNetworkRegistrationStates) { @@ -1776,6 +1783,7 @@ public class ServiceState implements Parcelable { * * @deprecated Use {@link #getNetworkRegistrationStatesFromTransportType(int)} */ + @NonNull @Deprecated @SystemApi public List<NetworkRegistrationState> getNetworkRegistrationStates(int transportType) { @@ -1789,6 +1797,7 @@ public class ServiceState implements Parcelable { * @return List of {@link NetworkRegistrationState} * @hide */ + @NonNull @SystemApi public List<NetworkRegistrationState> getNetworkRegistrationStatesForTransportType( int transportType) { @@ -1812,6 +1821,7 @@ public class ServiceState implements Parcelable { * @return List of {@link NetworkRegistrationState} * @hide */ + @NonNull @SystemApi public List<NetworkRegistrationState> getNetworkRegistrationStatesForDomain( @Domain int domain) { @@ -1838,6 +1848,7 @@ public class ServiceState implements Parcelable { * * @deprecated Use {@link #getNetworkRegistrationState(int, int)} */ + @Nullable @Deprecated @SystemApi public NetworkRegistrationState getNetworkRegistrationStates(@Domain int domain, @@ -1854,6 +1865,7 @@ public class ServiceState implements Parcelable { * @hide * */ + @Nullable @SystemApi public NetworkRegistrationState getNetworkRegistrationState(@Domain int domain, int transportType) { diff --git a/telephony/java/android/telephony/SubscriptionManager.java b/telephony/java/android/telephony/SubscriptionManager.java index 52cab556d11c..635e4fe92090 100644 --- a/telephony/java/android/telephony/SubscriptionManager.java +++ b/telephony/java/android/telephony/SubscriptionManager.java @@ -149,6 +149,7 @@ public class SubscriptionManager { * {@link Uri#withAppendedPath(Uri, String)}. * @hide */ + @NonNull @SystemApi public static final Uri WFC_ENABLED_CONTENT_URI = Uri.withAppendedPath(CONTENT_URI, "wfc"); @@ -167,6 +168,7 @@ public class SubscriptionManager { * {@link Uri#withAppendedPath(Uri, String)}. * @hide */ + @NonNull @SystemApi public static final Uri ADVANCED_CALLING_ENABLED_CONTENT_URI = Uri.withAppendedPath( CONTENT_URI, "advanced_calling"); @@ -184,6 +186,7 @@ public class SubscriptionManager { * {@link Uri#withAppendedPath(Uri, String)}. * @hide */ + @NonNull @SystemApi public static final Uri WFC_MODE_CONTENT_URI = Uri.withAppendedPath(CONTENT_URI, "wfc_mode"); @@ -200,6 +203,7 @@ public class SubscriptionManager { * {@link Uri#withAppendedPath(Uri, String)}. * @hide */ + @NonNull @SystemApi public static final Uri WFC_ROAMING_MODE_CONTENT_URI = Uri.withAppendedPath( CONTENT_URI, "wfc_roaming_mode"); @@ -218,6 +222,7 @@ public class SubscriptionManager { * {@link Uri#withAppendedPath(Uri, String)}. * @hide */ + @NonNull @SystemApi public static final Uri VT_ENABLED_CONTENT_URI = Uri.withAppendedPath( CONTENT_URI, "vt_enabled"); @@ -235,6 +240,7 @@ public class SubscriptionManager { * {@link Uri#withAppendedPath(Uri, String)}. * @hide */ + @NonNull @SystemApi public static final Uri WFC_ROAMING_ENABLED_CONTENT_URI = Uri.withAppendedPath( CONTENT_URI, "wfc_roaming_enabled"); diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index 29a305e8b131..769d1a4e8bc7 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -1344,12 +1344,7 @@ public class TelephonyManager { */ public static final String EXTRA_RECOVERY_ACTION = "recoveryAction"; - /** - * The max value for the timeout passed in {@link #requestNumberVerification}. - * @hide - */ - @SystemApi - public static final long MAX_NUMBER_VERIFICATION_TIMEOUT_MILLIS = 60000; + private static final long MAX_NUMBER_VERIFICATION_TIMEOUT_MILLIS = 60000; /** * Intent sent when an error occurs that debug tools should log and possibly take further @@ -1544,6 +1539,7 @@ public class TelephonyManager { * Returns the Type Allocation Code from the IMEI. Return null if Type Allocation Code is not * available. */ + @Nullable public String getTypeAllocationCode() { return getTypeAllocationCode(getSlotIndex()); } @@ -1554,6 +1550,7 @@ public class TelephonyManager { * * @param slotIndex of which Type Allocation Code is returned */ + @Nullable public String getTypeAllocationCode(int slotIndex) { ITelephony telephony = getITelephony(); if (telephony == null) return null; @@ -1606,6 +1603,7 @@ public class TelephonyManager { * Returns the Manufacturer Code from the MEID. Return null if Manufacturer Code is not * available. */ + @Nullable public String getManufacturerCode() { return getManufacturerCode(getSlotIndex()); } @@ -1616,6 +1614,7 @@ public class TelephonyManager { * * @param slotIndex of which Type Allocation Code is returned */ + @Nullable public String getManufacturerCode(int slotIndex) { ITelephony telephony = getITelephony(); if (telephony == null) return null; @@ -1992,6 +1991,15 @@ public class TelephonyManager { return cmdline; } + /** + * @return The max value for the timeout passed in {@link #requestNumberVerification}. + * @hide + */ + @SystemApi + public static long getMaxNumberVerificationTimeoutMillis() { + return MAX_NUMBER_VERIFICATION_TIMEOUT_MILLIS; + } + /** Kernel command line */ private static final String sKernelCmdLine = getProcCmdLine(); @@ -2758,8 +2766,8 @@ public class TelephonyManager { * (see {@link #hasCarrierPrivileges}). * <p> * These "secret codes" are used to activate developer menus by dialing certain codes. - * And they are of the form {@code *#*#<code>#*#*}. The intent will have the data - * URI: {@code android_secret_code://<code>}. It is possible that a manifest + * And they are of the form {@code *#*#<code>#*#*}. The intent will have the data + * URI: {@code android_secret_code://<code>}. It is possible that a manifest * receiver would be woken up even if it is not currently running. * <p> * It is supposed to replace {@link android.provider.Telephony.Sms.Intents#SECRET_CODE_ACTION} @@ -4471,6 +4479,7 @@ public class TelephonyManager { * {@link android.Manifest.permission#READ_PRIVILEGED_PHONE_STATE READ_PRIVILEGED_PHONE_STATE} * @hide */ + @Nullable @SystemApi @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getIsimDomain() { @@ -5719,8 +5728,8 @@ public class TelephonyManager { * * @hide * @param range The range of phone numbers the caller expects a phone call from. - * @param timeoutMillis The amount of time to wait for such a call, or - * {@link #MAX_NUMBER_VERIFICATION_TIMEOUT_MILLIS}, whichever is lesser. + * @param timeoutMillis The amount of time to wait for such a call, or the value of + * {@link #getMaxNumberVerificationTimeoutMillis()}, whichever is lesser. * @param executor The {@link Executor} that callbacks should be executed on. * @param callback The callback to use for delivering results. */ @@ -5976,6 +5985,7 @@ public class TelephonyManager { * @return IMS Service Table or null if not present or not loaded * @hide */ + @Nullable @SystemApi @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getIsimIst() { @@ -6827,12 +6837,12 @@ public class TelephonyManager { * app has carrier privileges (see {@link #hasCarrierPrivileges}). * * @param subId the id of the subscription to set the preferred network type for. - * @param networkType the preferred network type, defined in RILConstants.java. + * @param networkType the preferred network type * @return true on success; false on any failure. * @hide */ @UnsupportedAppUsage - public boolean setPreferredNetworkType(int subId, int networkType) { + public boolean setPreferredNetworkType(int subId, @PrefNetworkMode int networkType) { try { ITelephony telephony = getITelephony(); if (telephony != null) { @@ -6902,14 +6912,12 @@ public class TelephonyManager { } /** - * Check TETHER_DUN_REQUIRED and TETHER_DUN_APN settings, net.tethering.noprovisioning - * SystemProperty to decide whether DUN APN is required for - * tethering. + * Check whether DUN APN is required for tethering. * - * @return 0: Not required. 1: required. 2: Not set. + * @return {@code true} if DUN APN is required for tethering. * @hide */ - public int getTetherApnRequired() { + public boolean getTetherApnRequired() { try { ITelephony telephony = getITelephony(); if (telephony != null) @@ -6919,7 +6927,7 @@ public class TelephonyManager { } catch (NullPointerException ex) { Rlog.e(TAG, "hasMatchedTetherApnSetting NPE", ex); } - return 2; + return false; } @@ -9046,6 +9054,7 @@ public class TelephonyManager { * @return Application ID for specified app type or {@code null} if no uicc or error. * @hide */ + @Nullable @SystemApi @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getAidForAppType(@UiccAppType int appType) { @@ -10297,12 +10306,6 @@ public class TelephonyManager { @SuppressAutoDoc // Blocked by b/72967236 - no support for carrier privileges @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void switchMultiSimConfig(int numOfSims) { - //only proceed if multi-sim is not restricted - if (!isMultisimSupported()) { - Rlog.e(TAG, "switchMultiSimConfig not possible. It is restricted or not supported."); - return; - } - try { ITelephony telephony = getITelephony(); if (telephony != null) { diff --git a/telephony/java/android/telephony/data/ApnSetting.java b/telephony/java/android/telephony/data/ApnSetting.java index 0e695309fce2..c802e633b76c 100644 --- a/telephony/java/android/telephony/data/ApnSetting.java +++ b/telephony/java/android/telephony/data/ApnSetting.java @@ -19,7 +19,7 @@ import android.annotation.IntDef; import android.annotation.NonNull; import android.content.ContentValues; import android.database.Cursor; -import android.hardware.radio.V1_0.ApnTypes; +import android.hardware.radio.V1_4.ApnTypes; import android.net.Uri; import android.os.Parcel; import android.os.Parcelable; @@ -61,6 +61,7 @@ public class ApnSetting implements Parcelable { private static final String V4_FORMAT_REGEX = "^\\[ApnSettingV4\\]\\s*"; private static final String V5_FORMAT_REGEX = "^\\[ApnSettingV5\\]\\s*"; private static final String V6_FORMAT_REGEX = "^\\[ApnSettingV6\\]\\s*"; + private static final String V7_FORMAT_REGEX = "^\\[ApnSettingV7\\]\\s*"; /** * Default value for mtu if it's not set. Moved from PhoneConstants. @@ -79,7 +80,7 @@ public class ApnSetting implements Parcelable { * APN type for all APNs. * @hide */ - public static final int TYPE_ALL = ApnTypes.ALL; + public static final int TYPE_ALL = ApnTypes.ALL | ApnTypes.MCX; /** APN type for default data traffic. */ public static final int TYPE_DEFAULT = ApnTypes.DEFAULT | ApnTypes.HIPRI; /** APN type for MMS traffic. */ @@ -103,6 +104,8 @@ public class ApnSetting implements Parcelable { * for access to carrier services in an emergency call situation. */ public static final int TYPE_EMERGENCY = ApnTypes.EMERGENCY; + /** APN type for MCX (Mission Critical Service) where X can be PTT/Video/Data */ + public static final int TYPE_MCX = ApnTypes.MCX; /** @hide */ @IntDef(flag = true, prefix = { "TYPE_" }, value = { @@ -115,7 +118,8 @@ public class ApnSetting implements Parcelable { TYPE_IMS, TYPE_CBS, TYPE_IA, - TYPE_EMERGENCY + TYPE_EMERGENCY, + TYPE_MCX }) @Retention(RetentionPolicy.SOURCE) public @interface ApnType {} @@ -206,6 +210,7 @@ public class ApnSetting implements Parcelable { APN_TYPE_STRING_MAP.put("cbs", TYPE_CBS); APN_TYPE_STRING_MAP.put("ia", TYPE_IA); APN_TYPE_STRING_MAP.put("emergency", TYPE_EMERGENCY); + APN_TYPE_STRING_MAP.put("mcx", TYPE_MCX); APN_TYPE_INT_MAP = new ArrayMap<Integer, String>(); APN_TYPE_INT_MAP.put(TYPE_DEFAULT, "default"); APN_TYPE_INT_MAP.put(TYPE_MMS, "mms"); @@ -217,6 +222,7 @@ public class ApnSetting implements Parcelable { APN_TYPE_INT_MAP.put(TYPE_CBS, "cbs"); APN_TYPE_INT_MAP.put(TYPE_IA, "ia"); APN_TYPE_INT_MAP.put(TYPE_EMERGENCY, "emergency"); + APN_TYPE_INT_MAP.put(TYPE_MCX, "mcx"); PROTOCOL_STRING_MAP = new ArrayMap<String, Integer>(); PROTOCOL_STRING_MAP.put("IP", PROTOCOL_IP); @@ -281,6 +287,8 @@ public class ApnSetting implements Parcelable { private boolean mPermanentFailed = false; private final int mCarrierId; + private final int mSkip464Xlat; + /** * Returns the MTU size of the mobile interface to which the APN connected. * @@ -618,6 +626,17 @@ public class ApnSetting implements Parcelable { return mCarrierId; } + /** + * Returns the skip464xlat flag for this APN. + * + * @return SKIP_464XLAT_DEFAULT, SKIP_464XLAT_DISABLE or SKIP_464XLAT_ENABLE + * @hide + */ + @Carriers.Skip464XlatStatus + public int getSkip464Xlat() { + return mSkip464Xlat; + } + private ApnSetting(Builder builder) { this.mEntryName = builder.mEntryName; this.mApnName = builder.mApnName; @@ -646,6 +665,7 @@ public class ApnSetting implements Parcelable { this.mMvnoMatchData = builder.mMvnoMatchData; this.mApnSetId = builder.mApnSetId; this.mCarrierId = builder.mCarrierId; + this.mSkip464Xlat = builder.mSkip464Xlat; } /** @@ -657,7 +677,7 @@ public class ApnSetting implements Parcelable { int authType, int mApnTypeBitmask, int protocol, int roamingProtocol, boolean carrierEnabled, int networkTypeBitmask, int profileId, boolean modemCognitive, int maxConns, int waitTime, int maxConnsTime, int mtu, - int mvnoType, String mvnoMatchData, int apnSetId, int carrierId) { + int mvnoType, String mvnoMatchData, int apnSetId, int carrierId, int skip464xlat) { return new Builder() .setId(id) .setOperatorNumeric(operatorNumeric) @@ -686,6 +706,7 @@ public class ApnSetting implements Parcelable { .setMvnoMatchData(mvnoMatchData) .setApnSetId(apnSetId) .setCarrierId(carrierId) + .setSkip464Xlat(skip464xlat) .buildWithoutCheck(); } @@ -703,7 +724,8 @@ public class ApnSetting implements Parcelable { mmsc, mmsProxyAddress, mmsProxyPort, user, password, authType, mApnTypeBitmask, protocol, roamingProtocol, carrierEnabled, networkTypeBitmask, profileId, modemCognitive, maxConns, waitTime, maxConnsTime, mtu, mvnoType, mvnoMatchData, - Carriers.NO_APN_SET_ID, TelephonyManager.UNKNOWN_CARRIER_ID); + Carriers.NO_APN_SET_ID, TelephonyManager.UNKNOWN_CARRIER_ID, + Carriers.SKIP_464XLAT_DEFAULT); } /** @@ -762,7 +784,8 @@ public class ApnSetting implements Parcelable { cursor.getString(cursor.getColumnIndexOrThrow( Telephony.Carriers.MVNO_MATCH_DATA)), cursor.getInt(cursor.getColumnIndexOrThrow(Telephony.Carriers.APN_SET_ID)), - cursor.getInt(cursor.getColumnIndexOrThrow(Telephony.Carriers.CARRIER_ID))); + cursor.getInt(cursor.getColumnIndexOrThrow(Telephony.Carriers.CARRIER_ID)), + cursor.getInt(cursor.getColumnIndexOrThrow(Carriers.SKIP_464XLAT))); } /** @@ -775,7 +798,7 @@ public class ApnSetting implements Parcelable { apn.mProtocol, apn.mRoamingProtocol, apn.mCarrierEnabled, apn.mNetworkTypeBitmask, apn.mProfileId, apn.mPersistent, apn.mMaxConns, apn.mWaitTime, apn.mMaxConnsTime, apn.mMtu, apn.mMvnoType, apn.mMvnoMatchData, apn.mApnSetId, - apn.mCarrierId); + apn.mCarrierId, apn.mSkip464Xlat); } /** @@ -824,6 +847,13 @@ public class ApnSetting implements Parcelable { * <profileId>, <modemCognitive>, <maxConns>, <waitTime>, <maxConnsTime>, <mtu>, * <mvnoType>, <mvnoMatchData>, <networkTypeBitmask>, <apnSetId>, <carrierId> * + * v7 format: + * [ApnSettingV7] <carrier>, <apn>, <proxy>, <port>, <user>, <password>, <server>, + * <mmsc>, <mmsproxy>, <mmsport>, <mcc>, <mnc>, <authtype>, + * <type>[| <type>...], <protocol>, <roaming_protocol>, <carrierEnabled>, <bearerBitmask>, + * <profileId>, <modemCognitive>, <maxConns>, <waitTime>, <maxConnsTime>, <mtu>, + * <mvnoType>, <mvnoMatchData>, <networkTypeBitmask>, <apnSetId>, <carrierId>, <skip464xlat> + * * Note that the strings generated by {@link #toString()} do not contain the username * and password and thus cannot be read by this method. * @@ -836,7 +866,10 @@ public class ApnSetting implements Parcelable { int version; // matches() operates on the whole string, so append .* to the regex. - if (data.matches(V6_FORMAT_REGEX + ".*")) { + if (data.matches(V7_FORMAT_REGEX + ".*")) { + version = 7; + data = data.replaceFirst(V7_FORMAT_REGEX, ""); + } else if (data.matches(V6_FORMAT_REGEX + ".*")) { version = 6; data = data.replaceFirst(V6_FORMAT_REGEX, ""); } else if (data.matches(V5_FORMAT_REGEX + ".*")) { @@ -882,6 +915,7 @@ public class ApnSetting implements Parcelable { String mvnoMatchData = ""; int apnSetId = Carriers.NO_APN_SET_ID; int carrierId = TelephonyManager.UNKNOWN_CARRIER_ID; + int skip464xlat = Carriers.SKIP_464XLAT_DEFAULT; if (version == 1) { typeArray = new String[a.length - 13]; System.arraycopy(a, 13, typeArray, 0, a.length - 13); @@ -928,6 +962,12 @@ public class ApnSetting implements Parcelable { if (a.length > 28) { carrierId = Integer.parseInt(a[28]); } + if (a.length > 29) { + try { + skip464xlat = Integer.parseInt(a[29]); + } catch (NumberFormatException e) { + } + } } // If both bearerBitmask and networkTypeBitmask were specified, bearerBitmask would be @@ -943,7 +983,7 @@ public class ApnSetting implements Parcelable { getProtocolIntFromString(protocol), getProtocolIntFromString(roamingProtocol), carrierEnabled, networkTypeBitmask, profileId, modemCognitive, maxConns, waitTime, maxConnsTime, mtu, getMvnoTypeIntFromString(mvnoType), mvnoMatchData, apnSetId, - carrierId); + carrierId, skip464xlat); } /** @@ -979,7 +1019,7 @@ public class ApnSetting implements Parcelable { */ public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("[ApnSettingV6] ") + sb.append("[ApnSettingV7] ") .append(mEntryName) .append(", ").append(mId) .append(", ").append(mOperatorNumeric) @@ -1007,6 +1047,7 @@ public class ApnSetting implements Parcelable { sb.append(", ").append(mNetworkTypeBitmask); sb.append(", ").append(mApnSetId); sb.append(", ").append(mCarrierId); + sb.append(", ").append(mSkip464Xlat); return sb.toString(); } @@ -1100,7 +1141,8 @@ public class ApnSetting implements Parcelable { && Objects.equals(mMvnoMatchData, other.mMvnoMatchData) && Objects.equals(mNetworkTypeBitmask, other.mNetworkTypeBitmask) && Objects.equals(mApnSetId, other.mApnSetId) - && Objects.equals(mCarrierId, other.mCarrierId); + && Objects.equals(mCarrierId, other.mCarrierId) + && Objects.equals(mSkip464Xlat, other.mSkip464Xlat); } /** @@ -1146,7 +1188,8 @@ public class ApnSetting implements Parcelable { && Objects.equals(mMvnoType, other.mMvnoType) && Objects.equals(mMvnoMatchData, other.mMvnoMatchData) && Objects.equals(mApnSetId, other.mApnSetId) - && Objects.equals(mCarrierId, other.mCarrierId); + && Objects.equals(mCarrierId, other.mCarrierId) + && Objects.equals(mSkip464Xlat, other.mSkip464Xlat); } /** @@ -1174,7 +1217,8 @@ public class ApnSetting implements Parcelable { && xorEqualsInt(this.mMmsProxyPort, other.mMmsProxyPort)) && Objects.equals(this.mNetworkTypeBitmask, other.mNetworkTypeBitmask) && Objects.equals(mApnSetId, other.mApnSetId) - && Objects.equals(mCarrierId, other.mCarrierId); + && Objects.equals(mCarrierId, other.mCarrierId) + && Objects.equals(mSkip464Xlat, other.mSkip464Xlat); } // Equal or one is null. @@ -1221,6 +1265,7 @@ public class ApnSetting implements Parcelable { apnValue.put(Telephony.Carriers.MVNO_TYPE, getMvnoTypeStringFromInt(mMvnoType)); apnValue.put(Telephony.Carriers.NETWORK_TYPE_BITMASK, mNetworkTypeBitmask); apnValue.put(Telephony.Carriers.CARRIER_ID, mCarrierId); + apnValue.put(Telephony.Carriers.SKIP_464XLAT, mSkip464Xlat); return apnValue; } @@ -1380,6 +1425,7 @@ public class ApnSetting implements Parcelable { dest.writeInt(mNetworkTypeBitmask); dest.writeInt(mApnSetId); dest.writeInt(mCarrierId); + dest.writeInt(mSkip464Xlat); } private static ApnSetting readFromParcel(Parcel in) { @@ -1403,11 +1449,12 @@ public class ApnSetting implements Parcelable { final int networkTypeBitmask = in.readInt(); final int apnSetId = in.readInt(); final int carrierId = in.readInt(); + final int skip464xlat = in.readInt(); return makeApnSetting(id, operatorNumeric, entryName, apnName, - proxy, port, mmsc, mmsProxy, mmsPort, user, password, authType, apnTypesBitmask, - protocol, roamingProtocol, carrierEnabled, networkTypeBitmask, 0, false, - 0, 0, 0, 0, mvnoType, null, apnSetId, carrierId); + proxy, port, mmsc, mmsProxy, mmsPort, user, password, authType, apnTypesBitmask, + protocol, roamingProtocol, carrierEnabled, networkTypeBitmask, 0, false, + 0, 0, 0, 0, mvnoType, null, apnSetId, carrierId, skip464xlat); } public static final Parcelable.Creator<ApnSetting> CREATOR = @@ -1484,6 +1531,7 @@ public class ApnSetting implements Parcelable { private String mMvnoMatchData; private int mApnSetId; private int mCarrierId = TelephonyManager.UNKNOWN_CARRIER_ID; + private int mSkip464Xlat = Carriers.SKIP_464XLAT_DEFAULT; /** * Default constructor for Builder. @@ -1826,6 +1874,17 @@ public class ApnSetting implements Parcelable { } /** + * Sets skip464xlat flag for this APN. + * + * @param skip464xlat skip464xlat for this APN + * @hide + */ + public Builder setSkip464Xlat(@Carriers.Skip464XlatStatus int skip464xlat) { + this.mSkip464Xlat = skip464xlat; + return this; + } + + /** * Builds {@link ApnSetting} from this builder. * * @return {@code null} if {@link #setApnName(String)} or {@link #setEntryName(String)} @@ -1833,7 +1892,7 @@ public class ApnSetting implements Parcelable { * {@link ApnSetting} built from this builder otherwise. */ public ApnSetting build() { - if ((mApnTypeBitmask & ApnTypes.ALL) == 0 || TextUtils.isEmpty(mApnName) + if ((mApnTypeBitmask & TYPE_ALL) == 0 || TextUtils.isEmpty(mApnName) || TextUtils.isEmpty(mEntryName)) { return null; } diff --git a/telephony/java/android/telephony/data/DataCallResponse.java b/telephony/java/android/telephony/data/DataCallResponse.java index 3d2fe5fec14a..6d74deda1ac4 100644 --- a/telephony/java/android/telephony/data/DataCallResponse.java +++ b/telephony/java/android/telephony/data/DataCallResponse.java @@ -25,6 +25,8 @@ import android.os.Parcel; import android.os.Parcelable; import android.telephony.data.ApnSetting.ProtocolType; +import com.android.internal.annotations.VisibleForTesting; + import java.net.InetAddress; import java.util.ArrayList; import java.util.List; @@ -90,6 +92,8 @@ public final class DataCallResponse implements Parcelable { mMtu = mtu; } + /** @hide */ + @VisibleForTesting public DataCallResponse(Parcel source) { mStatus = source.readInt(); mSuggestedRetryTime = source.readInt(); diff --git a/telephony/java/android/telephony/data/DataService.java b/telephony/java/android/telephony/data/DataService.java index 79572b9706a9..59d1e1e7115a 100644 --- a/telephony/java/android/telephony/data/DataService.java +++ b/telephony/java/android/telephony/data/DataService.java @@ -116,23 +116,23 @@ public abstract class DataService extends Service { */ public abstract class DataServiceProvider implements AutoCloseable { - private final int mSlotId; + private final int mSlotIndex; private final List<IDataServiceCallback> mDataCallListChangedCallbacks = new ArrayList<>(); /** * Constructor - * @param slotId SIM slot id the data service provider associated with. + * @param slotIndex SIM slot index the data service provider associated with. */ - public DataServiceProvider(int slotId) { - mSlotId = slotId; + public DataServiceProvider(int slotIndex) { + mSlotIndex = slotIndex; } /** - * @return SIM slot id the data service provider associated with. + * @return SIM slot index the data service provider associated with. */ - public final int getSlotId() { - return mSlotId; + public final int getSlotIndex() { + return mSlotIndex; } /** @@ -152,8 +152,9 @@ public abstract class DataService extends Service { * @param callback The result callback for this request. Null if the client does not care * about the result. */ - public void setupDataCall(int accessNetworkType, DataProfile dataProfile, boolean isRoaming, - boolean allowRoaming, @SetupDataReason int reason, + public void setupDataCall(int accessNetworkType, @NonNull DataProfile dataProfile, + boolean isRoaming, boolean allowRoaming, + @SetupDataReason int reason, @Nullable LinkProperties linkProperties, @Nullable DataServiceCallback callback) { // The default implementation is to return unsupported. @@ -192,7 +193,7 @@ public abstract class DataService extends Service { * @param callback The result callback for this request. Null if the client does not care * about the result. */ - public void setInitialAttachApn(DataProfile dataProfile, boolean isRoaming, + public void setInitialAttachApn(@NonNull DataProfile dataProfile, boolean isRoaming, @Nullable DataServiceCallback callback) { // The default implementation is to return unsupported. if (callback != null) { @@ -211,7 +212,7 @@ public abstract class DataService extends Service { * @param callback The result callback for this request. Null if the client does not care * about the result. */ - public void setDataProfile(List<DataProfile> dps, boolean isRoaming, + public void setDataProfile(@NonNull List<DataProfile> dps, boolean isRoaming, @Nullable DataServiceCallback callback) { // The default implementation is to return unsupported. if (callback != null) { @@ -250,9 +251,9 @@ public abstract class DataService extends Service { public final void notifyDataCallListChanged(List<DataCallResponse> dataCallList) { synchronized (mDataCallListChangedCallbacks) { for (IDataServiceCallback callback : mDataCallListChangedCallbacks) { - mHandler.obtainMessage(DATA_SERVICE_INDICATION_DATA_CALL_LIST_CHANGED, mSlotId, - 0, new DataCallListChangedIndication(dataCallList, callback)) - .sendToTarget(); + mHandler.obtainMessage(DATA_SERVICE_INDICATION_DATA_CALL_LIST_CHANGED, + mSlotIndex, 0, new DataCallListChangedIndication(dataCallList, + callback)).sendToTarget(); } } } @@ -341,20 +342,20 @@ public abstract class DataService extends Service { @Override public void handleMessage(Message message) { IDataServiceCallback callback; - final int slotId = message.arg1; - DataServiceProvider serviceProvider = mServiceMap.get(slotId); + final int slotIndex = message.arg1; + DataServiceProvider serviceProvider = mServiceMap.get(slotIndex); switch (message.what) { case DATA_SERVICE_CREATE_DATA_SERVICE_PROVIDER: - serviceProvider = createDataServiceProvider(message.arg1); + serviceProvider = onCreateDataServiceProvider(message.arg1); if (serviceProvider != null) { - mServiceMap.put(slotId, serviceProvider); + mServiceMap.put(slotIndex, serviceProvider); } break; case DATA_SERVICE_REMOVE_DATA_SERVICE_PROVIDER: if (serviceProvider != null) { serviceProvider.close(); - mServiceMap.remove(slotId); + mServiceMap.remove(slotIndex); } break; case DATA_SERVICE_REMOVE_ALL_DATA_SERVICE_PROVIDERS: @@ -453,12 +454,12 @@ public abstract class DataService extends Service { * this method to facilitate the creation of {@link DataServiceProvider} instances. The system * will call this method after binding the data service for each active SIM slot id. * - * @param slotId SIM slot id the data service associated with. + * @param slotIndex SIM slot id the data service associated with. * @return Data service object */ - public abstract DataServiceProvider createDataServiceProvider(int slotId); + @Nullable + public abstract DataServiceProvider onCreateDataServiceProvider(int slotIndex); - /** @hide */ @Override public IBinder onBind(Intent intent) { if (intent == null || !DATA_SERVICE_INTERFACE.equals(intent.getAction())) { @@ -468,17 +469,16 @@ public abstract class DataService extends Service { return mBinder; } - /** @hide */ @Override public boolean onUnbind(Intent intent) { mHandler.obtainMessage(DATA_SERVICE_REMOVE_ALL_DATA_SERVICE_PROVIDERS).sendToTarget(); return false; } - /** @hide */ @Override public void onDestroy() { mHandlerThread.quit(); + super.onDestroy(); } /** @@ -486,78 +486,78 @@ public abstract class DataService extends Service { */ private class IDataServiceWrapper extends IDataService.Stub { @Override - public void createDataServiceProvider(int slotId) { - mHandler.obtainMessage(DATA_SERVICE_CREATE_DATA_SERVICE_PROVIDER, slotId, 0) + public void createDataServiceProvider(int slotIndex) { + mHandler.obtainMessage(DATA_SERVICE_CREATE_DATA_SERVICE_PROVIDER, slotIndex, 0) .sendToTarget(); } @Override - public void removeDataServiceProvider(int slotId) { - mHandler.obtainMessage(DATA_SERVICE_REMOVE_DATA_SERVICE_PROVIDER, slotId, 0) + public void removeDataServiceProvider(int slotIndex) { + mHandler.obtainMessage(DATA_SERVICE_REMOVE_DATA_SERVICE_PROVIDER, slotIndex, 0) .sendToTarget(); } @Override - public void setupDataCall(int slotId, int accessNetworkType, DataProfile dataProfile, + public void setupDataCall(int slotIndex, int accessNetworkType, DataProfile dataProfile, boolean isRoaming, boolean allowRoaming, int reason, LinkProperties linkProperties, IDataServiceCallback callback) { - mHandler.obtainMessage(DATA_SERVICE_REQUEST_SETUP_DATA_CALL, slotId, 0, + mHandler.obtainMessage(DATA_SERVICE_REQUEST_SETUP_DATA_CALL, slotIndex, 0, new SetupDataCallRequest(accessNetworkType, dataProfile, isRoaming, allowRoaming, reason, linkProperties, callback)) .sendToTarget(); } @Override - public void deactivateDataCall(int slotId, int cid, int reason, + public void deactivateDataCall(int slotIndex, int cid, int reason, IDataServiceCallback callback) { - mHandler.obtainMessage(DATA_SERVICE_REQUEST_DEACTIVATE_DATA_CALL, slotId, 0, + mHandler.obtainMessage(DATA_SERVICE_REQUEST_DEACTIVATE_DATA_CALL, slotIndex, 0, new DeactivateDataCallRequest(cid, reason, callback)) .sendToTarget(); } @Override - public void setInitialAttachApn(int slotId, DataProfile dataProfile, boolean isRoaming, + public void setInitialAttachApn(int slotIndex, DataProfile dataProfile, boolean isRoaming, IDataServiceCallback callback) { - mHandler.obtainMessage(DATA_SERVICE_REQUEST_SET_INITIAL_ATTACH_APN, slotId, 0, + mHandler.obtainMessage(DATA_SERVICE_REQUEST_SET_INITIAL_ATTACH_APN, slotIndex, 0, new SetInitialAttachApnRequest(dataProfile, isRoaming, callback)) .sendToTarget(); } @Override - public void setDataProfile(int slotId, List<DataProfile> dps, boolean isRoaming, + public void setDataProfile(int slotIndex, List<DataProfile> dps, boolean isRoaming, IDataServiceCallback callback) { - mHandler.obtainMessage(DATA_SERVICE_REQUEST_SET_DATA_PROFILE, slotId, 0, + mHandler.obtainMessage(DATA_SERVICE_REQUEST_SET_DATA_PROFILE, slotIndex, 0, new SetDataProfileRequest(dps, isRoaming, callback)).sendToTarget(); } @Override - public void getDataCallList(int slotId, IDataServiceCallback callback) { + public void getDataCallList(int slotIndex, IDataServiceCallback callback) { if (callback == null) { loge("getDataCallList: callback is null"); return; } - mHandler.obtainMessage(DATA_SERVICE_REQUEST_GET_DATA_CALL_LIST, slotId, 0, + mHandler.obtainMessage(DATA_SERVICE_REQUEST_GET_DATA_CALL_LIST, slotIndex, 0, callback).sendToTarget(); } @Override - public void registerForDataCallListChanged(int slotId, IDataServiceCallback callback) { + public void registerForDataCallListChanged(int slotIndex, IDataServiceCallback callback) { if (callback == null) { loge("registerForDataCallListChanged: callback is null"); return; } - mHandler.obtainMessage(DATA_SERVICE_REQUEST_REGISTER_DATA_CALL_LIST_CHANGED, slotId, + mHandler.obtainMessage(DATA_SERVICE_REQUEST_REGISTER_DATA_CALL_LIST_CHANGED, slotIndex, 0, callback).sendToTarget(); } @Override - public void unregisterForDataCallListChanged(int slotId, IDataServiceCallback callback) { + public void unregisterForDataCallListChanged(int slotIndex, IDataServiceCallback callback) { if (callback == null) { loge("unregisterForDataCallListChanged: callback is null"); return; } - mHandler.obtainMessage(DATA_SERVICE_REQUEST_UNREGISTER_DATA_CALL_LIST_CHANGED, slotId, - 0, callback).sendToTarget(); + mHandler.obtainMessage(DATA_SERVICE_REQUEST_UNREGISTER_DATA_CALL_LIST_CHANGED, + slotIndex, 0, callback).sendToTarget(); } } diff --git a/telephony/java/android/telephony/data/DataServiceCallback.java b/telephony/java/android/telephony/data/DataServiceCallback.java index bef11425b470..2d0cfe80366c 100644 --- a/telephony/java/android/telephony/data/DataServiceCallback.java +++ b/telephony/java/android/telephony/data/DataServiceCallback.java @@ -17,6 +17,8 @@ package android.telephony.data; import android.annotation.IntDef; +import android.annotation.NonNull; +import android.annotation.Nullable; import android.annotation.SystemApi; import android.net.LinkProperties; import android.os.RemoteException; @@ -74,7 +76,8 @@ public class DataServiceCallback { * @param result The result code. Must be one of the {@link ResultCode}. * @param response Setup data call response. */ - public void onSetupDataCallComplete(@ResultCode int result, DataCallResponse response) { + public void onSetupDataCallComplete(@ResultCode int result, + @Nullable DataCallResponse response) { IDataServiceCallback callback = mCallback.get(); if (callback != null) { try { @@ -141,10 +144,11 @@ public class DataServiceCallback { * DataServiceCallback)}. * * @param result The result code. Must be one of the {@link ResultCode}. - * @param dataCallList List of the current active data connection. + * @param dataCallList List of the current active data connection. If no data call is presented, + * set it to an empty list. */ public void onGetDataCallListComplete(@ResultCode int result, - List<DataCallResponse> dataCallList) { + @NonNull List<DataCallResponse> dataCallList) { IDataServiceCallback callback = mCallback.get(); if (callback != null) { try { @@ -156,11 +160,12 @@ public class DataServiceCallback { } /** - * Called to indicate that data connection list changed. + * Called to indicate that data connection list changed. If no data call is presented, set it to + * an empty list. * * @param dataCallList List of the current active data connection. */ - public void onDataCallListChanged(List<DataCallResponse> dataCallList) { + public void onDataCallListChanged(@NonNull List<DataCallResponse> dataCallList) { IDataServiceCallback callback = mCallback.get(); if (callback != null) { try { diff --git a/telephony/java/android/telephony/data/QualifiedNetworksService.java b/telephony/java/android/telephony/data/QualifiedNetworksService.java index 45b4849990c2..c38f2788ca92 100644 --- a/telephony/java/android/telephony/data/QualifiedNetworksService.java +++ b/telephony/java/android/telephony/data/QualifiedNetworksService.java @@ -16,6 +16,8 @@ package android.telephony.data; +import android.annotation.NonNull; +import android.annotation.Nullable; import android.annotation.SystemApi; import android.app.Service; import android.content.Intent; @@ -132,7 +134,7 @@ public abstract class QualifiedNetworksService extends Service { * for data setup. */ public final void updateQualifiedNetworkTypes(@ApnType int apnTypes, - int[] qualifiedNetworkTypes) { + @Nullable int[] qualifiedNetworkTypes) { mHandler.obtainMessage(QNS_UPDATE_QUALIFIED_NETWORKS, mSlotIndex, apnTypes, qualifiedNetworkTypes).sendToTarget(); } @@ -233,6 +235,7 @@ public abstract class QualifiedNetworksService extends Service { * @param slotIndex SIM slot index the qualified networks service associated with. * @return Qualified networks service instance */ + @NonNull public abstract NetworkAvailabilityUpdater createNetworkAvailabilityUpdater(int slotIndex); /** @hide */ diff --git a/telephony/java/android/telephony/euicc/EuiccManager.java b/telephony/java/android/telephony/euicc/EuiccManager.java index 828e3e93b7a4..b8a07e4ed777 100644 --- a/telephony/java/android/telephony/euicc/EuiccManager.java +++ b/telephony/java/android/telephony/euicc/EuiccManager.java @@ -17,6 +17,7 @@ package android.telephony.euicc; import android.Manifest; import android.annotation.IntDef; +import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.RequiresPermission; import android.annotation.SdkConstant; @@ -116,6 +117,66 @@ public class EuiccManager { "android.telephony.euicc.action.RESOLVE_ERROR"; /** + * Intent action sent by system apps (such as the Settings app) to the Telephony framework to + * enable or disable a subscription. Must be accompanied with {@link #EXTRA_SUBSCRIPTION_ID} and + * {@link #EXTRA_ENABLE_SUBSCRIPTION}. + * + * <p>Unlike {@link #switchToSubscription(int, PendingIntent)}, using this action allows the + * underlying eUICC service (i.e. the LPA app) to control the UI experience during this + * operation. The action is received by the Telephony framework, which in turn selects and + * launches an appropriate LPA activity to present UI to the user. For example, the activity may + * show a confirmation dialog, a progress dialog, or an error dialog when necessary. + * + * <p>The launched activity will immediately finish with + * {@link android.app.Activity#RESULT_CANCELED} if {@link #isEnabled} is false. + * + * @hide + */ + @SystemApi + public static final String ACTION_TOGGLE_SUBSCRIPTION_PRIVILEGED = + "android.telephony.euicc.action.TOGGLE_SUBSCRIPTION_PRIVILEGED"; + + /** + * Intent action sent by system apps (such as the Settings app) to the Telephony framework to + * delete a subscription. Must be accompanied with {@link #EXTRA_SUBSCRIPTION_ID}. + * + * <p>Unlike {@link #deleteSubscription(int, PendingIntent)}, using this action allows the + * underlying eUICC service (i.e. the LPA app) to control the UI experience during this + * operation. The action is received by the Telephony framework, which in turn selects and + * launches an appropriate LPA activity to present UI to the user. For example, the activity may + * show a confirmation dialog, a progress dialog, or an error dialog when necessary. + * + * <p>The launched activity will immediately finish with + * {@link android.app.Activity#RESULT_CANCELED} if {@link #isEnabled} is false. + * + * @hide + */ + @SystemApi + public static final String ACTION_DELETE_SUBSCRIPTION_PRIVILEGED = + "android.telephony.euicc.action.DELETE_SUBSCRIPTION_PRIVILEGED"; + + /** + * Intent action sent by system apps (such as the Settings app) to the Telephony framework to + * rename a subscription. Must be accompanied with {@link #EXTRA_SUBSCRIPTION_ID} and + * {@link #EXTRA_SUBSCRIPTION_NICKNAME}. + * + * <p>Unlike {@link #updateSubscriptionNickname(int, String, PendingIntent)}, using this action + * allows the the underlying eUICC service (i.e. the LPA app) to control the UI experience + * during this operation. The action is received by the Telephony framework, which in turn + * selects and launches an appropriate LPA activity to present UI to the user. For example, the + * activity may show a confirmation dialog, a progress dialog, or an error dialog when + * necessary. + * + * <p>The launched activity will immediately finish with + * {@link android.app.Activity#RESULT_CANCELED} if {@link #isEnabled} is false. + * + * @hide + */ + @SystemApi + public static final String ACTION_RENAME_SUBSCRIPTION_PRIVILEGED = + "android.telephony.euicc.action.RENAME_SUBSCRIPTION_PRIVILEGED"; + + /** * Result code for an operation indicating that the operation succeeded. */ public static final int EMBEDDED_SUBSCRIPTION_RESULT_OK = 0; @@ -195,6 +256,37 @@ public class EuiccManager { "android.telephony.euicc.extra.FORCE_PROVISION"; /** + * Key for an extra set on privileged actions {@link #ACTION_TOGGLE_SUBSCRIPTION_PRIVILEGED}, + * {@link #ACTION_DELETE_SUBSCRIPTION_PRIVILEGED}, and + * {@link #ACTION_RENAME_SUBSCRIPTION_PRIVILEGED} providing the ID of the targeted subscription. + * + * @hide + */ + @SystemApi + public static final String EXTRA_SUBSCRIPTION_ID = + "android.telephony.euicc.extra.SUBSCRIPTION_ID"; + + /** + * Key for an extra set on {@link #ACTION_TOGGLE_SUBSCRIPTION_PRIVILEGED} providing a boolean + * value of whether to enable or disable the targeted subscription. + * + * @hide + */ + @SystemApi + public static final String EXTRA_ENABLE_SUBSCRIPTION = + "android.telephony.euicc.extra.ENABLE_SUBSCRIPTION"; + + /** + * Key for an extra set on {@link #ACTION_RENAME_SUBSCRIPTION_PRIVILEGED} providing a new + * nickname for the targeted subscription. + * + * @hide + */ + @SystemApi + public static final String EXTRA_SUBSCRIPTION_NICKNAME = + "android.telephony.euicc.extra.SUBSCRIPTION_NICKNAME"; + + /** * Optional meta-data attribute for a carrier app providing an icon to use to represent the * carrier. If not provided, the app's launcher icon will be used as a fallback. */ @@ -274,6 +366,7 @@ public class EuiccManager { * * @return an EuiccManager that uses the given card ID for all calls. */ + @NonNull public EuiccManager createForCardId(int cardId) { return new EuiccManager(mContext, cardId); } diff --git a/telephony/java/android/telephony/ims/ImsCallSessionListener.java b/telephony/java/android/telephony/ims/ImsCallSessionListener.java index 337375ac51c3..a09844d6c0e2 100644 --- a/telephony/java/android/telephony/ims/ImsCallSessionListener.java +++ b/telephony/java/android/telephony/ims/ImsCallSessionListener.java @@ -16,6 +16,7 @@ package android.telephony.ims; +import android.annotation.NonNull; import android.annotation.SystemApi; import android.os.RemoteException; import android.telephony.CallQuality; @@ -606,7 +607,7 @@ public class ImsCallSessionListener { * * @param profile updated ImsStreamMediaProfile */ - public void callSessionRttAudioIndicatorChanged(ImsStreamMediaProfile profile) { + public void callSessionRttAudioIndicatorChanged(@NonNull ImsStreamMediaProfile profile) { try { mListener.callSessionRttAudioIndicatorChanged(profile); } catch (RemoteException e) { @@ -619,7 +620,7 @@ public class ImsCallSessionListener { * * @param callQuality The new call quality */ - public void callQualityChanged(CallQuality callQuality) { + public void callQualityChanged(@NonNull CallQuality callQuality) { try { mListener.callQualityChanged(callQuality); } catch (RemoteException e) { diff --git a/telephony/java/android/telephony/ims/ImsConferenceState.java b/telephony/java/android/telephony/ims/ImsConferenceState.java index 66d2f8d929d3..8af8cffcd878 100644 --- a/telephony/java/android/telephony/ims/ImsConferenceState.java +++ b/telephony/java/android/telephony/ims/ImsConferenceState.java @@ -16,17 +16,18 @@ package android.telephony.ims; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map.Entry; -import java.util.Set; - import android.annotation.SystemApi; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; import android.telecom.Call; import android.telecom.Connection; +import android.telecom.Log; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map.Entry; +import java.util.Set; /** * Provides the conference information (defined in RFC 4575) for IMS conference call. @@ -189,7 +190,7 @@ public final class ImsConferenceState implements Parcelable { sb.append("<"); while (iterator.hasNext()) { Entry<String, Bundle> entry = iterator.next(); - sb.append(entry.getKey()); + sb.append(Log.pii(entry.getKey())); sb.append(": "); Bundle participantData = entry.getValue(); @@ -197,7 +198,7 @@ public final class ImsConferenceState implements Parcelable { sb.append(key); sb.append("="); if (ENDPOINT.equals(key) || USER.equals(key)) { - sb.append(android.telecom.Log.pii(participantData.get(key))); + sb.append(Log.pii(participantData.get(key))); } else { sb.append(participantData.get(key)); } diff --git a/telephony/java/android/telephony/ims/ImsMmTelManager.java b/telephony/java/android/telephony/ims/ImsMmTelManager.java index eb99d5dcaaeb..bb85be16eb3a 100644 --- a/telephony/java/android/telephony/ims/ImsMmTelManager.java +++ b/telephony/java/android/telephony/ims/ImsMmTelManager.java @@ -139,7 +139,7 @@ public class ImsMmTelManager { if (mLocalCallback == null) return; Binder.withCleanCallingIdentity(() -> - mExecutor.execute(() -> mLocalCallback.onDeregistered(info))); + mExecutor.execute(() -> mLocalCallback.onUnregistered(info))); } @Override @@ -199,7 +199,7 @@ public class ImsMmTelManager { * * @param info the {@link ImsReasonInfo} associated with why registration was disconnected. */ - public void onDeregistered(ImsReasonInfo info) { + public void onUnregistered(ImsReasonInfo info) { } /** @@ -485,7 +485,7 @@ public class ImsMmTelManager { * @see android.telephony.CarrierConfigManager#KEY_HIDE_ENHANCED_4G_LTE_BOOL * @see android.telephony.CarrierConfigManager#KEY_ENHANCED_4G_LTE_ON_BY_DEFAULT_BOOL * @see android.telephony.CarrierConfigManager#KEY_CARRIER_VOLTE_AVAILABLE_BOOL - * @see #setAdvancedCallingSetting(boolean) + * @see #setAdvancedCallingSettingEnabled(boolean) * @return true if the user's setting for advanced calling is enabled, false otherwise. */ @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE) @@ -519,9 +519,9 @@ public class ImsMmTelManager { * @see #isAdvancedCallingSettingEnabled() */ @RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE) - public void setAdvancedCallingSetting(boolean isEnabled) { + public void setAdvancedCallingSettingEnabled(boolean isEnabled) { try { - getITelephony().setAdvancedCallingSetting(mSubId, isEnabled); + getITelephony().setAdvancedCallingSettingEnabled(mSubId, isEnabled); return; } catch (RemoteException e) { throw e.rethrowAsRuntimeException(); @@ -589,7 +589,7 @@ public class ImsMmTelManager { /** * The user's setting for whether or not they have enabled the "Video Calling" setting. * @return true if the user’s “Video Calling” setting is currently enabled. - * @see #setVtSetting(boolean) + * @see #setVtSettingEnabled(boolean) */ @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isVtSettingEnabled() { @@ -605,9 +605,9 @@ public class ImsMmTelManager { * @see #isVtSettingEnabled() */ @RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE) - public void setVtSetting(boolean isEnabled) { + public void setVtSettingEnabled(boolean isEnabled) { try { - getITelephony().setVtSetting(mSubId, isEnabled); + getITelephony().setVtSettingEnabled(mSubId, isEnabled); return; } catch (RemoteException e) { throw e.rethrowAsRuntimeException(); @@ -616,7 +616,7 @@ public class ImsMmTelManager { /** * @return true if the user's setting for Voice over WiFi is enabled and false if it is not. - * @see #setVoWiFiSetting(boolean) + * @see #setVoWiFiSettingEnabled(boolean) */ @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isVoWiFiSettingEnabled() { @@ -633,9 +633,9 @@ public class ImsMmTelManager { * @see #isVoWiFiSettingEnabled() */ @RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE) - public void setVoWiFiSetting(boolean isEnabled) { + public void setVoWiFiSettingEnabled(boolean isEnabled) { try { - getITelephony().setVoWiFiSetting(mSubId, isEnabled); + getITelephony().setVoWiFiSettingEnabled(mSubId, isEnabled); return; } catch (RemoteException e) { throw e.rethrowAsRuntimeException(); @@ -645,7 +645,7 @@ public class ImsMmTelManager { /** * @return true if the user's setting for Voice over WiFi while roaming is enabled, false * if disabled. - * @see #setVoWiFiRoamingSetting(boolean) + * @see #setVoWiFiRoamingSettingEnabled(boolean) */ @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isVoWiFiRoamingSettingEnabled() { @@ -663,9 +663,9 @@ public class ImsMmTelManager { * @see #isVoWiFiRoamingSettingEnabled() */ @RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE) - public void setVoWiFiRoamingSetting(boolean isEnabled) { + public void setVoWiFiRoamingSettingEnabled(boolean isEnabled) { try { - getITelephony().setVoWiFiRoamingSetting(mSubId, isEnabled); + getITelephony().setVoWiFiRoamingSettingEnabled(mSubId, isEnabled); return; } catch (RemoteException e) { throw e.rethrowAsRuntimeException(); @@ -682,7 +682,7 @@ public class ImsMmTelManager { * - {@link #WIFI_MODE_WIFI_ONLY} * - {@link #WIFI_MODE_CELLULAR_PREFERRED} * - {@link #WIFI_MODE_WIFI_PREFERRED} - * @see #setVoWiFiSetting(boolean) + * @see #setVoWiFiSettingEnabled(boolean) */ @RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE) public void setVoWiFiNonPersistent(boolean isCapable, int mode) { @@ -700,7 +700,7 @@ public class ImsMmTelManager { * - {@link #WIFI_MODE_WIFI_ONLY} * - {@link #WIFI_MODE_CELLULAR_PREFERRED} * - {@link #WIFI_MODE_WIFI_PREFERRED} - * @see #setVoWiFiSetting(boolean) + * @see #setVoWiFiSettingEnabled(boolean) */ @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public @WiFiCallingMode int getVoWiFiModeSetting() { @@ -739,7 +739,7 @@ public class ImsMmTelManager { * - {@link #WIFI_MODE_WIFI_ONLY} * - {@link #WIFI_MODE_CELLULAR_PREFERRED} * - {@link #WIFI_MODE_WIFI_PREFERRED} - * @see #setVoWiFiRoamingSetting(boolean) + * @see #setVoWiFiRoamingSettingEnabled(boolean) */ @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public @WiFiCallingMode int getVoWiFiRoamingModeSetting() { diff --git a/telephony/java/android/telephony/ims/ImsSsData.java b/telephony/java/android/telephony/ims/ImsSsData.java index 3a82517955ce..86832bb13f7e 100644 --- a/telephony/java/android/telephony/ims/ImsSsData.java +++ b/telephony/java/android/telephony/ims/ImsSsData.java @@ -17,6 +17,7 @@ package android.telephony.ims; import android.annotation.IntDef; import android.annotation.NonNull; +import android.annotation.Nullable; import android.annotation.SystemApi; import android.os.Parcel; import android.os.Parcelable; @@ -24,6 +25,9 @@ import android.telephony.Rlog; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * Provides STK Call Control Supplementary Service information. @@ -260,13 +264,13 @@ public final class ImsSsData implements Parcelable { public final int result; private int[] mSsInfo; - private ImsCallForwardInfo[] mCfInfo; - private ImsSsInfo[] mImsSsInfo; + private List<ImsCallForwardInfo> mCfInfo; + private List<ImsSsInfo> mImsSsInfo; /** * Builder for optional ImsSsData parameters. */ - public static class Builder { + public static final class Builder { private ImsSsData mImsSsData; /** @@ -301,7 +305,7 @@ public final class ImsSsData implements Parcelable { * Set the array of {@link ImsSsInfo}s that are associated with this supplementary service * data. */ - public @NonNull Builder setSuppServiceInfo(@NonNull ImsSsInfo[] imsSsInfos) { + public @NonNull Builder setSuppServiceInfo(@NonNull List<ImsSsInfo> imsSsInfos) { mImsSsData.mImsSsInfo = imsSsInfos; return this; } @@ -311,7 +315,7 @@ public final class ImsSsData implements Parcelable { * service data. */ public @NonNull Builder setCallForwardingInfo( - @NonNull ImsCallForwardInfo[] imsCallForwardInfos) { + @NonNull List<ImsCallForwardInfo> imsCallForwardInfos) { mImsSsData.mCfInfo = imsCallForwardInfos; return this; } @@ -360,8 +364,8 @@ public final class ImsSsData implements Parcelable { serviceClass = in.readInt(); result = in.readInt(); mSsInfo = in.createIntArray(); - mCfInfo = (ImsCallForwardInfo[])in.readParcelableArray(this.getClass().getClassLoader()); - mImsSsInfo = (ImsSsInfo[])in.readParcelableArray(this.getClass().getClassLoader()); + mCfInfo = in.readParcelableList(new ArrayList<>(), this.getClass().getClassLoader()); + mImsSsInfo = in.readParcelableList(new ArrayList<>(), this.getClass().getClassLoader()); } public static final Creator<ImsSsData> CREATOR = new Creator<ImsSsData>() { @@ -384,8 +388,8 @@ public final class ImsSsData implements Parcelable { out.writeInt(getServiceClass()); out.writeInt(getResult()); out.writeIntArray(mSsInfo); - out.writeParcelableArray(mCfInfo, 0); - out.writeParcelableArray(mImsSsInfo, 0); + out.writeParcelableList(mCfInfo, 0); + out.writeParcelableList(mImsSsInfo, 0); } @Override @@ -500,12 +504,12 @@ public final class ImsSsData implements Parcelable { /** @hide */ public void setImsSpecificSuppServiceInfo(ImsSsInfo[] imsSsInfo) { - mImsSsInfo = imsSsInfo; + mImsSsInfo = Arrays.asList(imsSsInfo); } /** @hide */ public void setCallForwardingInfo(ImsCallForwardInfo[] cfInfo) { - mCfInfo = cfInfo; + mCfInfo = Arrays.asList(cfInfo); } /** @@ -524,7 +528,7 @@ public final class ImsSsData implements Parcelable { int[] result = new int[2]; - if (mImsSsInfo == null || mImsSsInfo.length == 0) { + if (mImsSsInfo == null || mImsSsInfo.size() == 0) { Rlog.e(TAG, "getSuppServiceInfoCompat: Could not parse mImsSsInfo, returning empty " + "int[]"); return result; @@ -535,26 +539,26 @@ public final class ImsSsData implements Parcelable { if (isTypeClir()) { // Assume there will only be one ImsSsInfo. // contains {"n","m"} parameters - result[0] = mImsSsInfo[0].getClirOutgoingState(); - result[1] = mImsSsInfo[0].getClirInterrogationStatus(); + result[0] = mImsSsInfo.get(0).getClirOutgoingState(); + result[1] = mImsSsInfo.get(0).getClirInterrogationStatus(); return result; } // COLR 7.31 if (isTypeColr()) { - result[0] = mImsSsInfo[0].getProvisionStatus(); + result[0] = mImsSsInfo.get(0).getProvisionStatus(); } // Facility Lock CLCK 7.4 (for call barring), CLIP 7.6, COLP 7.8, as well as any // other result, just return the status for the "n" parameter and provisioning status for // "m" as the default. - result[0] = mImsSsInfo[0].getStatus(); - result[1] = mImsSsInfo[0].getProvisionStatus(); + result[0] = mImsSsInfo.get(0).getStatus(); + result[1] = mImsSsInfo.get(0).getProvisionStatus(); return result; } /** * @return an array of {@link ImsSsInfo}s associated with this supplementary service data. */ - public @NonNull ImsSsInfo[] getSuppServiceInfo() { + public @NonNull List<ImsSsInfo> getSuppServiceInfo() { return mImsSsInfo; } @@ -562,7 +566,7 @@ public final class ImsSsData implements Parcelable { * @return an array of {@link ImsCallForwardInfo}s associated with this supplementary service * data. **/ - public ImsCallForwardInfo[] getCallForwardInfo() { + public @Nullable List<ImsCallForwardInfo> getCallForwardInfo() { return mCfInfo; } diff --git a/telephony/java/android/telephony/ims/ImsSsInfo.java b/telephony/java/android/telephony/ims/ImsSsInfo.java index 031f9e10175b..fba390c26242 100644 --- a/telephony/java/android/telephony/ims/ImsSsInfo.java +++ b/telephony/java/android/telephony/ims/ImsSsInfo.java @@ -173,7 +173,7 @@ public final class ImsSsInfo implements Parcelable { /** * Builds {@link ImsSsInfo} instances, which may include optional parameters. */ - public static class Builder { + public static final class Builder { private final ImsSsInfo mImsSsInfo; @@ -304,7 +304,7 @@ public final class ImsSsInfo implements Parcelable { /** * @return The Incoming Communication Barring (ICB) number. */ - public String getIncomingCommunicationBarringNumber() { + public @Nullable String getIncomingCommunicationBarringNumber() { return mIcbNum; } diff --git a/telephony/java/android/telephony/mbms/vendor/MbmsGroupCallServiceBase.java b/telephony/java/android/telephony/mbms/vendor/MbmsGroupCallServiceBase.java index e86a47d5bfa1..1335b52673d2 100644 --- a/telephony/java/android/telephony/mbms/vendor/MbmsGroupCallServiceBase.java +++ b/telephony/java/android/telephony/mbms/vendor/MbmsGroupCallServiceBase.java @@ -16,6 +16,7 @@ package android.telephony.mbms.vendor; +import android.annotation.NonNull; import android.annotation.SystemApi; import android.annotation.TestApi; import android.app.Service; @@ -187,7 +188,7 @@ public class MbmsGroupCallServiceBase extends Service { * * May throw an {@link IllegalArgumentException} or a {@link SecurityException}, which * will be intercepted and passed to the app as - * {@link MbmsErrors.InitializationErrors#ERROR_UNABLE_TO_INITIALIZE} + * {@link MbmsErrors.InitializationErrtrors#ERROR_UNABLE_TO_INITIALIZE} * * May return any value from {@link MbmsErrors.InitializationErrors} * or {@link MbmsErrors#SUCCESS}. Non-successful error codes will be passed to the app via @@ -196,7 +197,7 @@ public class MbmsGroupCallServiceBase extends Service { * @param callback The callback to use to communicate with the app. * @param subscriptionId The subscription ID to use. */ - public int initialize(MbmsGroupCallSessionCallback callback, int subscriptionId) + public int initialize(@NonNull MbmsGroupCallSessionCallback callback, int subscriptionId) throws RemoteException { throw new UnsupportedOperationException("Not implemented"); } @@ -215,8 +216,8 @@ public class MbmsGroupCallServiceBase extends Service { * @param callback The callback object on which the app wishes to receive updates. * @return Any error in {@link MbmsErrors.GeneralErrors} */ - public int startGroupCall(int subscriptionId, long tmgi, List<Integer> saiList, - List<Integer> frequencyList, GroupCallCallback callback) { + public int startGroupCall(int subscriptionId, long tmgi, @NonNull List<Integer> saiList, + @NonNull List<Integer> frequencyList, @NonNull GroupCallCallback callback) { throw new UnsupportedOperationException("Not implemented"); } @@ -241,8 +242,8 @@ public class MbmsGroupCallServiceBase extends Service { * @param saiList New list of SAIs that the call is available on. * @param frequencyList New list of frequencies that the call is available on. */ - public void updateGroupCall(int subscriptionId, long tmgi, List<Integer> saiList, - List<Integer> frequencyList) { + public void updateGroupCall(int subscriptionId, long tmgi, @NonNull List<Integer> saiList, + @NonNull List<Integer> frequencyList) { throw new UnsupportedOperationException("Not implemented"); } diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl index 3ca244950cb9..395924414aaa 100644 --- a/telephony/java/com/android/internal/telephony/ITelephony.aidl +++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl @@ -700,13 +700,12 @@ interface ITelephony { int getPreferredNetworkType(int subId); /** - * Check TETHER_DUN_REQUIRED and TETHER_DUN_APN settings, net.tethering.noprovisioning - * SystemProperty to decide whether DUN APN is required for - * tethering. + * Check whether DUN APN is required for tethering. * - * @return 0: Not required. 1: required. 2: Not set. + * @return {@code true} if DUN APN is required for tethering. + * @hide */ - int getTetherApnRequired(); + boolean getTetherApnRequired(); /** * Enables framework IMS and triggers IMS Registration. @@ -1671,7 +1670,7 @@ interface ITelephony { /** * Modify the user's setting for whether or not 4G LTE is enabled. */ - void setAdvancedCallingSetting(int subId, boolean isEnabled); + void setAdvancedCallingSettingEnabled(int subId, boolean isEnabled); /** * return true if the user's setting for VT is enabled for the subscription. @@ -1681,7 +1680,7 @@ interface ITelephony { /** * Modify the user's setting for whether or not VT is available for the subscrption specified. */ - void setVtSetting(int subId, boolean isEnabled); + void setVtSettingEnabled(int subId, boolean isEnabled); /** * return true if the user's setting for whether or not Voice over WiFi is currently enabled. @@ -1691,7 +1690,7 @@ interface ITelephony { /** * sets the user's setting for Voice over WiFi enabled state. */ - void setVoWiFiSetting(int subId, boolean isEnabled); + void setVoWiFiSettingEnabled(int subId, boolean isEnabled); /** * return true if the user's setting for Voice over WiFi while roaming is enabled. @@ -1702,7 +1701,7 @@ interface ITelephony { * Sets the user's preference for whether or not Voice over WiFi is enabled for the current * subscription while roaming. */ - void setVoWiFiRoamingSetting(int subId, boolean isEnabled); + void setVoWiFiRoamingSettingEnabled(int subId, boolean isEnabled); /** * Set the Voice over WiFi enabled state, but do not persist the setting. diff --git a/telephony/java/com/android/internal/telephony/PhoneConstants.java b/telephony/java/com/android/internal/telephony/PhoneConstants.java index e87d28c6f9e9..d5061a32ba6d 100644 --- a/telephony/java/com/android/internal/telephony/PhoneConstants.java +++ b/telephony/java/com/android/internal/telephony/PhoneConstants.java @@ -141,6 +141,8 @@ public class PhoneConstants { /** APN type for Emergency PDN. This is not an IA apn, but is used * for access to carrier services in an emergency call situation. */ public static final String APN_TYPE_EMERGENCY = "emergency"; + /** APN type for Mission Critical Services */ + public static final String APN_TYPE_MCX = "mcx"; /** Array of all APN types */ public static final String[] APN_TYPES = {APN_TYPE_DEFAULT, APN_TYPE_MMS, @@ -151,7 +153,8 @@ public class PhoneConstants { APN_TYPE_IMS, APN_TYPE_CBS, APN_TYPE_IA, - APN_TYPE_EMERGENCY + APN_TYPE_EMERGENCY, + APN_TYPE_MCX }; public static final int RIL_CARD_MAX_APPS = 8; diff --git a/telephony/java/com/android/internal/telephony/RILConstants.java b/telephony/java/com/android/internal/telephony/RILConstants.java index 77b797956cf5..5205973669ac 100644 --- a/telephony/java/com/android/internal/telephony/RILConstants.java +++ b/telephony/java/com/android/internal/telephony/RILConstants.java @@ -470,6 +470,7 @@ public interface RILConstants { int RIL_REQUEST_START_KEEPALIVE = 144; int RIL_REQUEST_STOP_KEEPALIVE = 145; int RIL_REQUEST_ENABLE_MODEM = 146; + int RIL_REQUEST_GET_MODEM_STATUS = 147; /* The following requests are not defined in RIL.h */ int RIL_REQUEST_HAL_NON_RIL_BASE = 200; diff --git a/test-base/hiddenapi/Android.bp b/test-base/hiddenapi/Android.bp new file mode 100644 index 000000000000..c4e0fab4a1a8 --- /dev/null +++ b/test-base/hiddenapi/Android.bp @@ -0,0 +1,29 @@ +// +// Copyright (C) 2019 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +// Provided solely to contribute information about which hidden parts of the android.test.base +// library are used by apps. The source files are stubs of the actual files in ../src which use the +// UnsupportedAppUsage annotation to tag those methods that are accessible via the hiddenapi. +// Relies on the convention that modules with name <x>-hiddenapi provide hiddenapi information for +// module <x> that is on the bootclasspath. +java_library { + name: "android.test.base-hiddenapi", + compile_dex: true, + + srcs: ["src/**/*.java"], + + libs: ["android.test.base"], +} diff --git a/test-base/hiddenapi/src/android/test/AndroidTestCase.java b/test-base/hiddenapi/src/android/test/AndroidTestCase.java new file mode 100644 index 000000000000..2b9beb160110 --- /dev/null +++ b/test-base/hiddenapi/src/android/test/AndroidTestCase.java @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.test; + +import android.annotation.UnsupportedAppUsage; +import android.content.Context; + +import junit.framework.TestCase; + +/** + * @deprecated Stub only + */ +@SuppressWarnings({ "unchecked", "deprecation", "all" }) +@Deprecated +public class AndroidTestCase extends TestCase { + + /** + * Stub only + */ + @UnsupportedAppUsage + public void setTestContext(Context context) { + throw new RuntimeException("Stub!"); + } + + /** + * Stub only + */ + @UnsupportedAppUsage + public Context getTestContext() { + throw new RuntimeException("Stub!"); + } +} diff --git a/test-base/hiddenapi/src/android/test/InstrumentationTestCase.java b/test-base/hiddenapi/src/android/test/InstrumentationTestCase.java new file mode 100644 index 000000000000..139cd18a176c --- /dev/null +++ b/test-base/hiddenapi/src/android/test/InstrumentationTestCase.java @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.test; + +import android.annotation.UnsupportedAppUsage; + +import junit.framework.TestCase; + +import java.lang.reflect.Method; + +/** + * @deprecated Stub only + */ +@SuppressWarnings({ "unchecked", "deprecation", "all" }) +@Deprecated +public class InstrumentationTestCase extends TestCase { + + /** + * Stub only + */ + @UnsupportedAppUsage + private void runMethod(Method runMethod, int tolerance) throws Throwable { + throw new RuntimeException("Stub!"); + } +} diff --git a/test-base/hiddenapi/src/junit/framework/TestCase.java b/test-base/hiddenapi/src/junit/framework/TestCase.java new file mode 100644 index 000000000000..5a5486108a7a --- /dev/null +++ b/test-base/hiddenapi/src/junit/framework/TestCase.java @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package junit.framework; + +import android.annotation.UnsupportedAppUsage; + +/** + * Stub only + */ +@SuppressWarnings({ "unchecked", "deprecation", "all" }) +public abstract class TestCase extends Assert implements Test { + + /** + * the name of the test case + */ + @UnsupportedAppUsage + private String fName; + + /** + * Stub only + */ + public int countTestCases() { + throw new RuntimeException("Stub!"); + } + + /** + * Stub only + */ + public void run(TestResult result) { + throw new RuntimeException("Stub!"); + } +} diff --git a/test-base/hiddenapi/src/junit/framework/TestSuite.java b/test-base/hiddenapi/src/junit/framework/TestSuite.java new file mode 100644 index 000000000000..368c661dbfa4 --- /dev/null +++ b/test-base/hiddenapi/src/junit/framework/TestSuite.java @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package junit.framework; + +import android.annotation.UnsupportedAppUsage; + +import java.lang.reflect.Method; + +/** + * Stub only + */ +@SuppressWarnings({ "unchecked", "deprecation", "all" }) +public class TestSuite implements Test { + + /** + * Stub only + */ + @UnsupportedAppUsage + private boolean isPublicTestMethod(Method m) { + throw new RuntimeException("Stub!"); + } + + /** + * Stub only + */ + @UnsupportedAppUsage + private boolean isTestMethod(Method m) { + throw new RuntimeException("Stub!"); + } + + /** + * Stub only + */ + public int countTestCases() { + throw new RuntimeException("Stub!"); + } + + /** + * Stub only + */ + public void run(TestResult result) { + throw new RuntimeException("Stub!"); + } +} diff --git a/tests/net/java/com/android/server/ConnectivityServiceTest.java b/tests/net/java/com/android/server/ConnectivityServiceTest.java index c1260263e43e..c25ad5f7bbd5 100644 --- a/tests/net/java/com/android/server/ConnectivityServiceTest.java +++ b/tests/net/java/com/android/server/ConnectivityServiceTest.java @@ -125,6 +125,7 @@ import android.net.NetworkParcelable; import android.net.NetworkRequest; import android.net.NetworkSpecifier; import android.net.NetworkStackClient; +import android.net.NetworkState; import android.net.NetworkUtils; import android.net.ProxyInfo; import android.net.RouteInfo; @@ -156,6 +157,7 @@ import android.util.ArraySet; import android.util.Log; import com.android.internal.net.VpnConfig; +import com.android.internal.net.VpnInfo; import com.android.internal.util.ArrayUtils; import com.android.internal.util.WakeupMessage; import com.android.internal.util.test.BroadcastInterceptingContext; @@ -907,11 +909,19 @@ public class ConnectivityServiceTest { return mConnected; // Similar trickery } - public void connect() { + private void connect(boolean isAlwaysMetered) { mNetworkCapabilities.set(mMockNetworkAgent.getNetworkCapabilities()); mConnected = true; mConfig = new VpnConfig(); - mConfig.isMetered = false; + mConfig.isMetered = isAlwaysMetered; + } + + public void connectAsAlwaysMetered() { + connect(true /* isAlwaysMetered */); + } + + public void connect() { + connect(false /* isAlwaysMetered */); } @Override @@ -4273,48 +4283,91 @@ public class ConnectivityServiceTest { mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR); mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI); - Network[] onlyCell = new Network[]{mCellNetworkAgent.getNetwork()}; - Network[] onlyWifi = new Network[]{mWiFiNetworkAgent.getNetwork()}; + Network[] onlyCell = new Network[] {mCellNetworkAgent.getNetwork()}; + Network[] onlyWifi = new Network[] {mWiFiNetworkAgent.getNetwork()}; + + LinkProperties cellLp = new LinkProperties(); + cellLp.setInterfaceName(MOBILE_IFNAME); + LinkProperties wifiLp = new LinkProperties(); + wifiLp.setInterfaceName(WIFI_IFNAME); // Simple connection should have updated ifaces mCellNetworkAgent.connect(false); + mCellNetworkAgent.sendLinkProperties(cellLp); waitForIdle(); - verify(mStatsService, atLeastOnce()).forceUpdateIfaces(onlyCell); + verify(mStatsService, atLeastOnce()) + .forceUpdateIfaces( + eq(onlyCell), + eq(new VpnInfo[0]), + any(NetworkState[].class), + eq(MOBILE_IFNAME)); reset(mStatsService); // Default network switch should update ifaces. mWiFiNetworkAgent.connect(false); + mWiFiNetworkAgent.sendLinkProperties(wifiLp); waitForIdle(); - verify(mStatsService, atLeastOnce()).forceUpdateIfaces(onlyWifi); + assertEquals(wifiLp, mService.getActiveLinkProperties()); + verify(mStatsService, atLeastOnce()) + .forceUpdateIfaces( + eq(onlyWifi), + eq(new VpnInfo[0]), + any(NetworkState[].class), + eq(WIFI_IFNAME)); reset(mStatsService); // Disconnect should update ifaces. mWiFiNetworkAgent.disconnect(); waitForIdle(); - verify(mStatsService, atLeastOnce()).forceUpdateIfaces(onlyCell); + verify(mStatsService, atLeastOnce()) + .forceUpdateIfaces( + eq(onlyCell), + eq(new VpnInfo[0]), + any(NetworkState[].class), + eq(MOBILE_IFNAME)); reset(mStatsService); // Metered change should update ifaces mCellNetworkAgent.addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_METERED); waitForIdle(); - verify(mStatsService, atLeastOnce()).forceUpdateIfaces(onlyCell); + verify(mStatsService, atLeastOnce()) + .forceUpdateIfaces( + eq(onlyCell), + eq(new VpnInfo[0]), + any(NetworkState[].class), + eq(MOBILE_IFNAME)); reset(mStatsService); mCellNetworkAgent.removeCapability(NetworkCapabilities.NET_CAPABILITY_NOT_METERED); waitForIdle(); - verify(mStatsService, atLeastOnce()).forceUpdateIfaces(onlyCell); + verify(mStatsService, atLeastOnce()) + .forceUpdateIfaces( + eq(onlyCell), + eq(new VpnInfo[0]), + any(NetworkState[].class), + eq(MOBILE_IFNAME)); reset(mStatsService); // Captive portal change shouldn't update ifaces mCellNetworkAgent.addCapability(NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL); waitForIdle(); - verify(mStatsService, never()).forceUpdateIfaces(onlyCell); + verify(mStatsService, never()) + .forceUpdateIfaces( + eq(onlyCell), + eq(new VpnInfo[0]), + any(NetworkState[].class), + eq(MOBILE_IFNAME)); reset(mStatsService); // Roaming change should update ifaces mCellNetworkAgent.addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_ROAMING); waitForIdle(); - verify(mStatsService, atLeastOnce()).forceUpdateIfaces(onlyCell); + verify(mStatsService, atLeastOnce()) + .forceUpdateIfaces( + eq(onlyCell), + eq(new VpnInfo[0]), + any(NetworkState[].class), + eq(MOBILE_IFNAME)); reset(mStatsService); } @@ -4970,6 +5023,202 @@ public class ConnectivityServiceTest { } @Test + public void testIsActiveNetworkMeteredOverWifi() { + // Returns true by default when no network is available. + assertTrue(mCm.isActiveNetworkMetered()); + mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI); + mWiFiNetworkAgent.addCapability(NET_CAPABILITY_NOT_METERED); + mWiFiNetworkAgent.connect(true); + waitForIdle(); + + assertFalse(mCm.isActiveNetworkMetered()); + } + + @Test + public void testIsActiveNetworkMeteredOverCell() { + // Returns true by default when no network is available. + assertTrue(mCm.isActiveNetworkMetered()); + mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR); + mCellNetworkAgent.removeCapability(NET_CAPABILITY_NOT_METERED); + mCellNetworkAgent.connect(true); + waitForIdle(); + + assertTrue(mCm.isActiveNetworkMetered()); + } + + @Test + public void testIsActiveNetworkMeteredOverVpnTrackingPlatformDefault() { + // Returns true by default when no network is available. + assertTrue(mCm.isActiveNetworkMetered()); + mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR); + mCellNetworkAgent.removeCapability(NET_CAPABILITY_NOT_METERED); + mCellNetworkAgent.connect(true); + waitForIdle(); + assertTrue(mCm.isActiveNetworkMetered()); + + // Connect VPN network. By default it is using current default network (Cell). + MockNetworkAgent vpnNetworkAgent = new MockNetworkAgent(TRANSPORT_VPN); + final ArraySet<UidRange> ranges = new ArraySet<>(); + final int uid = Process.myUid(); + ranges.add(new UidRange(uid, uid)); + mMockVpn.setNetworkAgent(vpnNetworkAgent); + mMockVpn.setUids(ranges); + vpnNetworkAgent.connect(true); + mMockVpn.connect(); + waitForIdle(); + // Ensure VPN is now the active network. + assertEquals(vpnNetworkAgent.getNetwork(), mCm.getActiveNetwork()); + + // Expect VPN to be metered. + assertTrue(mCm.isActiveNetworkMetered()); + + // Connect WiFi. + mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI); + mWiFiNetworkAgent.addCapability(NET_CAPABILITY_NOT_METERED); + mWiFiNetworkAgent.connect(true); + waitForIdle(); + // VPN should still be the active network. + assertEquals(vpnNetworkAgent.getNetwork(), mCm.getActiveNetwork()); + + // Expect VPN to be unmetered as it should now be using WiFi (new default). + assertFalse(mCm.isActiveNetworkMetered()); + + // Disconnecting Cell should not affect VPN's meteredness. + mCellNetworkAgent.disconnect(); + waitForIdle(); + + assertFalse(mCm.isActiveNetworkMetered()); + + // Disconnect WiFi; Now there is no platform default network. + mWiFiNetworkAgent.disconnect(); + waitForIdle(); + + // VPN without any underlying networks is treated as metered. + assertTrue(mCm.isActiveNetworkMetered()); + + vpnNetworkAgent.disconnect(); + mMockVpn.disconnect(); + } + + @Test + public void testIsActiveNetworkMeteredOverVpnSpecifyingUnderlyingNetworks() { + // Returns true by default when no network is available. + assertTrue(mCm.isActiveNetworkMetered()); + mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR); + mCellNetworkAgent.removeCapability(NET_CAPABILITY_NOT_METERED); + mCellNetworkAgent.connect(true); + waitForIdle(); + assertTrue(mCm.isActiveNetworkMetered()); + + mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI); + mWiFiNetworkAgent.addCapability(NET_CAPABILITY_NOT_METERED); + mWiFiNetworkAgent.connect(true); + waitForIdle(); + assertFalse(mCm.isActiveNetworkMetered()); + + // Connect VPN network. + MockNetworkAgent vpnNetworkAgent = new MockNetworkAgent(TRANSPORT_VPN); + final ArraySet<UidRange> ranges = new ArraySet<>(); + final int uid = Process.myUid(); + ranges.add(new UidRange(uid, uid)); + mMockVpn.setNetworkAgent(vpnNetworkAgent); + mMockVpn.setUids(ranges); + vpnNetworkAgent.connect(true); + mMockVpn.connect(); + waitForIdle(); + // Ensure VPN is now the active network. + assertEquals(vpnNetworkAgent.getNetwork(), mCm.getActiveNetwork()); + // VPN is using Cell + mService.setUnderlyingNetworksForVpn( + new Network[] { mCellNetworkAgent.getNetwork() }); + waitForIdle(); + + // Expect VPN to be metered. + assertTrue(mCm.isActiveNetworkMetered()); + + // VPN is now using WiFi + mService.setUnderlyingNetworksForVpn( + new Network[] { mWiFiNetworkAgent.getNetwork() }); + waitForIdle(); + + // Expect VPN to be unmetered + assertFalse(mCm.isActiveNetworkMetered()); + + // VPN is using Cell | WiFi. + mService.setUnderlyingNetworksForVpn( + new Network[] { mCellNetworkAgent.getNetwork(), mWiFiNetworkAgent.getNetwork() }); + waitForIdle(); + + // Expect VPN to be metered. + assertTrue(mCm.isActiveNetworkMetered()); + + // VPN is using WiFi | Cell. + mService.setUnderlyingNetworksForVpn( + new Network[] { mWiFiNetworkAgent.getNetwork(), mCellNetworkAgent.getNetwork() }); + waitForIdle(); + + // Order should not matter and VPN should still be metered. + assertTrue(mCm.isActiveNetworkMetered()); + + // VPN is not using any underlying networks. + mService.setUnderlyingNetworksForVpn(new Network[0]); + waitForIdle(); + + // VPN without underlying networks is treated as metered. + assertTrue(mCm.isActiveNetworkMetered()); + + vpnNetworkAgent.disconnect(); + mMockVpn.disconnect(); + } + + @Test + public void testIsActiveNetworkMeteredOverAlwaysMeteredVpn() { + // Returns true by default when no network is available. + assertTrue(mCm.isActiveNetworkMetered()); + mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI); + mWiFiNetworkAgent.addCapability(NET_CAPABILITY_NOT_METERED); + mWiFiNetworkAgent.connect(true); + waitForIdle(); + assertFalse(mCm.isActiveNetworkMetered()); + + // Connect VPN network. + MockNetworkAgent vpnNetworkAgent = new MockNetworkAgent(TRANSPORT_VPN); + final ArraySet<UidRange> ranges = new ArraySet<>(); + final int uid = Process.myUid(); + ranges.add(new UidRange(uid, uid)); + mMockVpn.setNetworkAgent(vpnNetworkAgent); + mMockVpn.setUids(ranges); + vpnNetworkAgent.connect(true); + mMockVpn.connectAsAlwaysMetered(); + waitForIdle(); + assertEquals(vpnNetworkAgent.getNetwork(), mCm.getActiveNetwork()); + + // VPN is tracking current platform default (WiFi). + mService.setUnderlyingNetworksForVpn(null); + waitForIdle(); + + // Despite VPN using WiFi (which is unmetered), VPN itself is marked as always metered. + assertTrue(mCm.isActiveNetworkMetered()); + + // VPN explicitly declares WiFi as its underlying network. + mService.setUnderlyingNetworksForVpn( + new Network[] { mWiFiNetworkAgent.getNetwork() }); + waitForIdle(); + + // Doesn't really matter whether VPN declares its underlying networks explicitly. + assertTrue(mCm.isActiveNetworkMetered()); + + // With WiFi lost, VPN is basically without any underlying networks. And in that case it is + // anyways suppose to be metered. + mWiFiNetworkAgent.disconnect(); + waitForIdle(); + + assertTrue(mCm.isActiveNetworkMetered()); + + vpnNetworkAgent.disconnect(); + } + + @Test public void testNetworkBlockedStatus() { final TestNetworkCallback cellNetworkCallback = new TestNetworkCallback(); final NetworkRequest cellRequest = new NetworkRequest.Builder() diff --git a/tests/net/java/com/android/server/connectivity/tethering/TetheringConfigurationTest.java b/tests/net/java/com/android/server/connectivity/tethering/TetheringConfigurationTest.java index 01b904d8f088..f8cfd8f3aed8 100644 --- a/tests/net/java/com/android/server/connectivity/tethering/TetheringConfigurationTest.java +++ b/tests/net/java/com/android/server/connectivity/tethering/TetheringConfigurationTest.java @@ -24,9 +24,7 @@ import static android.net.ConnectivityManager.TYPE_WIFI; import static android.provider.Settings.Global.TETHER_ENABLE_LEGACY_DHCP_SERVER; import static android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID; -import static com.android.server.connectivity.tethering.TetheringConfiguration.DUN_NOT_REQUIRED; -import static com.android.server.connectivity.tethering.TetheringConfiguration.DUN_REQUIRED; -import static com.android.server.connectivity.tethering.TetheringConfiguration.DUN_UNSPECIFIED; +import static com.android.internal.R.array.config_tether_upstream_types; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -52,6 +50,7 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; +import java.util.Arrays; import java.util.Iterator; @RunWith(AndroidJUnit4.class) @@ -112,74 +111,103 @@ public class TetheringConfigurationTest { .thenReturn(new String[]{ "test_wlan\\d" }); when(mResources.getStringArray(com.android.internal.R.array.config_tether_bluetooth_regexs)) .thenReturn(new String[0]); - when(mResources.getIntArray(com.android.internal.R.array.config_tether_upstream_types)) - .thenReturn(new int[0]); + when(mResources.getIntArray(config_tether_upstream_types)).thenReturn(new int[0]); when(mResources.getStringArray( com.android.internal.R.array.config_mobile_hotspot_provision_app)) .thenReturn(new String[0]); mContentResolver = new MockContentResolver(); mContentResolver.addProvider(Settings.AUTHORITY, new FakeSettingsProvider()); + mHasTelephonyManager = true; mMockContext = new MockContext(mContext); } - @Test - public void testDunFromTelephonyManagerMeansDun() { - when(mResources.getIntArray(com.android.internal.R.array.config_tether_upstream_types)) - .thenReturn(new int[]{TYPE_MOBILE, TYPE_WIFI, TYPE_MOBILE_HIPRI}); - mHasTelephonyManager = true; - when(mTelephonyManager.getTetherApnRequired()).thenReturn(DUN_REQUIRED); - - final TetheringConfiguration cfg = new TetheringConfiguration( - mMockContext, mLog, INVALID_SUBSCRIPTION_ID); - assertTrue(cfg.isDunRequired); - assertTrue(cfg.preferredUpstreamIfaceTypes.contains(TYPE_MOBILE_DUN)); - assertFalse(cfg.preferredUpstreamIfaceTypes.contains(TYPE_MOBILE)); - assertFalse(cfg.preferredUpstreamIfaceTypes.contains(TYPE_MOBILE_HIPRI)); - // Just to prove we haven't clobbered Wi-Fi: - assertTrue(cfg.preferredUpstreamIfaceTypes.contains(TYPE_WIFI)); + private TetheringConfiguration getTetheringConfiguration(int[] legacyTetherUpstreamTypes) { + when(mResources.getIntArray(config_tether_upstream_types)).thenReturn( + legacyTetherUpstreamTypes); + return new TetheringConfiguration(mMockContext, mLog, INVALID_SUBSCRIPTION_ID); } @Test - public void testDunNotRequiredFromTelephonyManagerMeansNoDun() { - when(mResources.getIntArray(com.android.internal.R.array.config_tether_upstream_types)) - .thenReturn(new int[]{TYPE_MOBILE_DUN, TYPE_WIFI}); - mHasTelephonyManager = true; - when(mTelephonyManager.getTetherApnRequired()).thenReturn(DUN_NOT_REQUIRED); - - final TetheringConfiguration cfg = new TetheringConfiguration( - mMockContext, mLog, INVALID_SUBSCRIPTION_ID); + public void testNoTelephonyManagerMeansNoDun() { + mHasTelephonyManager = false; + final TetheringConfiguration cfg = getTetheringConfiguration( + new int[]{TYPE_MOBILE_DUN, TYPE_WIFI}); assertFalse(cfg.isDunRequired); assertFalse(cfg.preferredUpstreamIfaceTypes.contains(TYPE_MOBILE_DUN)); - assertTrue(cfg.preferredUpstreamIfaceTypes.contains(TYPE_MOBILE)); - assertTrue(cfg.preferredUpstreamIfaceTypes.contains(TYPE_MOBILE_HIPRI)); // Just to prove we haven't clobbered Wi-Fi: assertTrue(cfg.preferredUpstreamIfaceTypes.contains(TYPE_WIFI)); } @Test - public void testDunFromUpstreamConfigMeansDun() { - when(mResources.getIntArray(com.android.internal.R.array.config_tether_upstream_types)) - .thenReturn(new int[]{TYPE_MOBILE_DUN, TYPE_WIFI}); - mHasTelephonyManager = false; - when(mTelephonyManager.getTetherApnRequired()).thenReturn(DUN_UNSPECIFIED); + public void testDunFromTelephonyManagerMeansDun() { + when(mTelephonyManager.getTetherApnRequired()).thenReturn(true); + + final TetheringConfiguration cfgWifi = getTetheringConfiguration(new int[]{TYPE_WIFI}); + final TetheringConfiguration cfgMobileWifiHipri = getTetheringConfiguration( + new int[]{TYPE_MOBILE, TYPE_WIFI, TYPE_MOBILE_HIPRI}); + final TetheringConfiguration cfgWifiDun = getTetheringConfiguration( + new int[]{TYPE_WIFI, TYPE_MOBILE_DUN}); + final TetheringConfiguration cfgMobileWifiHipriDun = getTetheringConfiguration( + new int[]{TYPE_MOBILE, TYPE_WIFI, TYPE_MOBILE_HIPRI, TYPE_MOBILE_DUN}); + + for (TetheringConfiguration cfg : Arrays.asList(cfgWifi, cfgMobileWifiHipri, + cfgWifiDun, cfgMobileWifiHipriDun)) { + String msg = "config=" + cfg.toString(); + assertTrue(msg, cfg.isDunRequired); + assertTrue(msg, cfg.preferredUpstreamIfaceTypes.contains(TYPE_MOBILE_DUN)); + assertFalse(msg, cfg.preferredUpstreamIfaceTypes.contains(TYPE_MOBILE)); + assertFalse(msg, cfg.preferredUpstreamIfaceTypes.contains(TYPE_MOBILE_HIPRI)); + // Just to prove we haven't clobbered Wi-Fi: + assertTrue(msg, cfg.preferredUpstreamIfaceTypes.contains(TYPE_WIFI)); + } + } + + @Test + public void testDunNotRequiredFromTelephonyManagerMeansNoDun() { + when(mTelephonyManager.getTetherApnRequired()).thenReturn(false); + + final TetheringConfiguration cfgWifi = getTetheringConfiguration(new int[]{TYPE_WIFI}); + final TetheringConfiguration cfgMobileWifiHipri = getTetheringConfiguration( + new int[]{TYPE_MOBILE, TYPE_WIFI, TYPE_MOBILE_HIPRI}); + final TetheringConfiguration cfgWifiDun = getTetheringConfiguration( + new int[]{TYPE_WIFI, TYPE_MOBILE_DUN}); + final TetheringConfiguration cfgWifiMobile = getTetheringConfiguration( + new int[]{TYPE_WIFI, TYPE_MOBILE}); + final TetheringConfiguration cfgWifiHipri = getTetheringConfiguration( + new int[]{TYPE_WIFI, TYPE_MOBILE_HIPRI}); + final TetheringConfiguration cfgMobileWifiHipriDun = getTetheringConfiguration( + new int[]{TYPE_MOBILE, TYPE_WIFI, TYPE_MOBILE_HIPRI, TYPE_MOBILE_DUN}); + + String msg; + // TYPE_MOBILE_DUN should not be present in all of the combinations. + // TYPE_WIFI should not be affected. + for (TetheringConfiguration cfg : Arrays.asList(cfgWifi, cfgMobileWifiHipri, cfgWifiDun, + cfgWifiMobile, cfgWifiHipri, cfgMobileWifiHipriDun)) { + msg = "config=" + cfg.toString(); + assertFalse(msg, cfg.isDunRequired); + assertFalse(msg, cfg.preferredUpstreamIfaceTypes.contains(TYPE_MOBILE_DUN)); + assertTrue(msg, cfg.preferredUpstreamIfaceTypes.contains(TYPE_WIFI)); + } + + for (TetheringConfiguration cfg : Arrays.asList(cfgWifi, cfgMobileWifiHipri, cfgWifiDun, + cfgMobileWifiHipriDun)) { + msg = "config=" + cfg.toString(); + assertTrue(msg, cfg.preferredUpstreamIfaceTypes.contains(TYPE_MOBILE)); + assertTrue(msg, cfg.preferredUpstreamIfaceTypes.contains(TYPE_MOBILE_HIPRI)); + } + msg = "config=" + cfgWifiMobile.toString(); + assertTrue(msg, cfgWifiMobile.preferredUpstreamIfaceTypes.contains(TYPE_MOBILE)); + assertFalse(msg, cfgWifiMobile.preferredUpstreamIfaceTypes.contains(TYPE_MOBILE_HIPRI)); + msg = "config=" + cfgWifiHipri.toString(); + assertFalse(msg, cfgWifiHipri.preferredUpstreamIfaceTypes.contains(TYPE_MOBILE)); + assertTrue(msg, cfgWifiHipri.preferredUpstreamIfaceTypes.contains(TYPE_MOBILE_HIPRI)); - final TetheringConfiguration cfg = new TetheringConfiguration( - mMockContext, mLog, INVALID_SUBSCRIPTION_ID); - assertTrue(cfg.isDunRequired); - assertTrue(cfg.preferredUpstreamIfaceTypes.contains(TYPE_MOBILE_DUN)); - // Just to prove we haven't clobbered Wi-Fi: - assertTrue(cfg.preferredUpstreamIfaceTypes.contains(TYPE_WIFI)); - // Check that we have not added new cellular interface types - assertFalse(cfg.preferredUpstreamIfaceTypes.contains(TYPE_MOBILE)); - assertFalse(cfg.preferredUpstreamIfaceTypes.contains(TYPE_MOBILE_HIPRI)); } @Test public void testNoDefinedUpstreamTypesAddsEthernet() { - when(mResources.getIntArray(com.android.internal.R.array.config_tether_upstream_types)) - .thenReturn(new int[]{}); - mHasTelephonyManager = false; - when(mTelephonyManager.getTetherApnRequired()).thenReturn(DUN_UNSPECIFIED); + when(mResources.getIntArray(config_tether_upstream_types)).thenReturn(new int[]{}); + when(mTelephonyManager.getTetherApnRequired()).thenReturn(false); final TetheringConfiguration cfg = new TetheringConfiguration( mMockContext, mLog, INVALID_SUBSCRIPTION_ID); @@ -187,8 +215,10 @@ public class TetheringConfigurationTest { assertTrue(upstreamIterator.hasNext()); assertEquals(TYPE_ETHERNET, upstreamIterator.next().intValue()); // The following is because the code always adds some kind of mobile - // upstream, be it DUN or, in this case where we use DUN_UNSPECIFIED, - // both vanilla and hipri mobile types. + // upstream, be it DUN or, in this case where DUN is NOT required, + // make sure there is at least one of MOBILE or HIPRI. With the empty + // list of the configuration in this test, it will always add both + // MOBILE and HIPRI, in that order. assertTrue(upstreamIterator.hasNext()); assertEquals(TYPE_MOBILE, upstreamIterator.next().intValue()); assertTrue(upstreamIterator.hasNext()); @@ -198,10 +228,9 @@ public class TetheringConfigurationTest { @Test public void testDefinedUpstreamTypesSansEthernetAddsEthernet() { - when(mResources.getIntArray(com.android.internal.R.array.config_tether_upstream_types)) - .thenReturn(new int[]{TYPE_WIFI, TYPE_MOBILE_HIPRI}); - mHasTelephonyManager = false; - when(mTelephonyManager.getTetherApnRequired()).thenReturn(DUN_UNSPECIFIED); + when(mResources.getIntArray(config_tether_upstream_types)).thenReturn( + new int[]{TYPE_WIFI, TYPE_MOBILE_HIPRI}); + when(mTelephonyManager.getTetherApnRequired()).thenReturn(false); final TetheringConfiguration cfg = new TetheringConfiguration( mMockContext, mLog, INVALID_SUBSCRIPTION_ID); @@ -217,10 +246,9 @@ public class TetheringConfigurationTest { @Test public void testDefinedUpstreamTypesWithEthernetDoesNotAddEthernet() { - when(mResources.getIntArray(com.android.internal.R.array.config_tether_upstream_types)) + when(mResources.getIntArray(config_tether_upstream_types)) .thenReturn(new int[]{TYPE_WIFI, TYPE_ETHERNET, TYPE_MOBILE_HIPRI}); - mHasTelephonyManager = false; - when(mTelephonyManager.getTetherApnRequired()).thenReturn(DUN_UNSPECIFIED); + when(mTelephonyManager.getTetherApnRequired()).thenReturn(false); final TetheringConfiguration cfg = new TetheringConfiguration( mMockContext, mLog, INVALID_SUBSCRIPTION_ID); @@ -276,9 +304,7 @@ public class TetheringConfigurationTest { when(mResourcesForSubId.getStringArray( com.android.internal.R.array.config_tether_bluetooth_regexs)) .thenReturn(new String[0]); - when(mResourcesForSubId.getIntArray( - com.android.internal.R.array.config_tether_upstream_types)) - .thenReturn(new int[0]); + when(mResourcesForSubId.getIntArray(config_tether_upstream_types)).thenReturn(new int[0]); when(mResourcesForSubId.getStringArray( com.android.internal.R.array.config_mobile_hotspot_provision_app)) .thenReturn(PROVISIONING_APP_NAME); diff --git a/tests/net/java/com/android/server/net/NetworkStatsServiceTest.java b/tests/net/java/com/android/server/net/NetworkStatsServiceTest.java index f89f303a1345..d91d3eb10f87 100644 --- a/tests/net/java/com/android/server/net/NetworkStatsServiceTest.java +++ b/tests/net/java/com/android/server/net/NetworkStatsServiceTest.java @@ -70,7 +70,6 @@ import android.app.usage.NetworkStatsManager; import android.content.Context; import android.content.Intent; import android.net.DataUsageRequest; -import android.net.IConnectivityManager; import android.net.INetworkManagementEventObserver; import android.net.INetworkStatsSession; import android.net.LinkProperties; @@ -163,7 +162,6 @@ public class NetworkStatsServiceTest { private @Mock INetworkManagementService mNetManager; private @Mock NetworkStatsSettings mSettings; - private @Mock IConnectivityManager mConnManager; private @Mock IBinder mBinder; private @Mock AlarmManager mAlarmManager; private HandlerThread mHandlerThread; @@ -205,7 +203,6 @@ public class NetworkStatsServiceTest { Handler.Callback callback = new NetworkStatsService.HandlerCallback(mService); mHandler = new Handler(mHandlerThread.getLooper(), callback); mService.setHandler(mHandler, callback); - mService.bindConnectivityManager(mConnManager); mElapsedRealtime = 0L; @@ -234,7 +231,6 @@ public class NetworkStatsServiceTest { mNetManager = null; mSettings = null; - mConnManager = null; mSession.close(); mService = null; @@ -245,12 +241,12 @@ public class NetworkStatsServiceTest { // pretend that wifi network comes online; service should ask about full // network state, and poll any existing interfaces before updating. expectDefaultSettings(); - expectNetworkState(buildWifiState()); + NetworkState[] states = new NetworkState[] {buildWifiState()}; expectNetworkStatsSummary(buildEmptyStats()); expectNetworkStatsUidDetail(buildEmptyStats()); expectBandwidthControlCheck(); - mService.forceUpdateIfaces(NETWORKS_WIFI); + mService.forceUpdateIfaces(NETWORKS_WIFI, new VpnInfo[0], states, getActiveIface(states)); // verify service has empty history for wifi assertNetworkTotal(sTemplateWifi, 0L, 0L, 0L, 0L, 0); @@ -289,12 +285,12 @@ public class NetworkStatsServiceTest { // pretend that wifi network comes online; service should ask about full // network state, and poll any existing interfaces before updating. expectDefaultSettings(); - expectNetworkState(buildWifiState()); + NetworkState[] states = new NetworkState[] {buildWifiState()}; expectNetworkStatsSummary(buildEmptyStats()); expectNetworkStatsUidDetail(buildEmptyStats()); expectBandwidthControlCheck(); - mService.forceUpdateIfaces(NETWORKS_WIFI); + mService.forceUpdateIfaces(NETWORKS_WIFI, new VpnInfo[0], states, getActiveIface(states)); // verify service has empty history for wifi assertNetworkTotal(sTemplateWifi, 0L, 0L, 0L, 0L, 0); @@ -363,12 +359,12 @@ public class NetworkStatsServiceTest { // pretend that wifi network comes online; service should ask about full // network state, and poll any existing interfaces before updating. expectSettings(0L, HOUR_IN_MILLIS, WEEK_IN_MILLIS); - expectNetworkState(buildWifiState()); + NetworkState[] states = new NetworkState[] {buildWifiState()}; expectNetworkStatsSummary(buildEmptyStats()); expectNetworkStatsUidDetail(buildEmptyStats()); expectBandwidthControlCheck(); - mService.forceUpdateIfaces(NETWORKS_WIFI); + mService.forceUpdateIfaces(NETWORKS_WIFI, new VpnInfo[0], states, getActiveIface(states)); // modify some number on wifi, and trigger poll event @@ -405,12 +401,12 @@ public class NetworkStatsServiceTest { public void testUidStatsAcrossNetworks() throws Exception { // pretend first mobile network comes online expectDefaultSettings(); - expectNetworkState(buildMobile3gState(IMSI_1)); + NetworkState[] states = new NetworkState[] {buildMobile3gState(IMSI_1)}; expectNetworkStatsSummary(buildEmptyStats()); expectNetworkStatsUidDetail(buildEmptyStats()); expectBandwidthControlCheck(); - mService.forceUpdateIfaces(NETWORKS_MOBILE); + mService.forceUpdateIfaces(NETWORKS_MOBILE, new VpnInfo[0], states, getActiveIface(states)); // create some traffic on first network @@ -437,7 +433,7 @@ public class NetworkStatsServiceTest { // disappearing, to verify we don't count backwards. incrementCurrentTime(HOUR_IN_MILLIS); expectDefaultSettings(); - expectNetworkState(buildMobile3gState(IMSI_2)); + states = new NetworkState[] {buildMobile3gState(IMSI_2)}; expectNetworkStatsSummary(new NetworkStats(getElapsedRealtime(), 1) .addIfaceValues(TEST_IFACE, 2048L, 16L, 512L, 4L)); expectNetworkStatsUidDetail(new NetworkStats(getElapsedRealtime(), 3) @@ -446,7 +442,7 @@ public class NetworkStatsServiceTest { .addValues(TEST_IFACE, UID_BLUE, SET_DEFAULT, TAG_NONE, 512L, 4L, 0L, 0L, 0L)); expectBandwidthControlCheck(); - mService.forceUpdateIfaces(NETWORKS_MOBILE); + mService.forceUpdateIfaces(NETWORKS_MOBILE, new VpnInfo[0], states, getActiveIface(states)); forcePollAndWaitForIdle(); @@ -481,12 +477,12 @@ public class NetworkStatsServiceTest { public void testUidRemovedIsMoved() throws Exception { // pretend that network comes online expectDefaultSettings(); - expectNetworkState(buildWifiState()); + NetworkState[] states = new NetworkState[] {buildWifiState()}; expectNetworkStatsSummary(buildEmptyStats()); expectNetworkStatsUidDetail(buildEmptyStats()); expectBandwidthControlCheck(); - mService.forceUpdateIfaces(NETWORKS_WIFI); + mService.forceUpdateIfaces(NETWORKS_WIFI, new VpnInfo[0], states, getActiveIface(states)); // create some traffic @@ -540,12 +536,12 @@ public class NetworkStatsServiceTest { public void testUid3g4gCombinedByTemplate() throws Exception { // pretend that network comes online expectDefaultSettings(); - expectNetworkState(buildMobile3gState(IMSI_1)); + NetworkState[] states = new NetworkState[] {buildMobile3gState(IMSI_1)}; expectNetworkStatsSummary(buildEmptyStats()); expectNetworkStatsUidDetail(buildEmptyStats()); expectBandwidthControlCheck(); - mService.forceUpdateIfaces(NETWORKS_MOBILE); + mService.forceUpdateIfaces(NETWORKS_MOBILE, new VpnInfo[0], states, getActiveIface(states)); // create some traffic @@ -566,14 +562,14 @@ public class NetworkStatsServiceTest { // now switch over to 4g network incrementCurrentTime(HOUR_IN_MILLIS); expectDefaultSettings(); - expectNetworkState(buildMobile4gState(TEST_IFACE2)); + states = new NetworkState[] {buildMobile4gState(TEST_IFACE2)}; expectNetworkStatsSummary(buildEmptyStats()); expectNetworkStatsUidDetail(new NetworkStats(getElapsedRealtime(), 1) .addValues(TEST_IFACE, UID_RED, SET_DEFAULT, TAG_NONE, 1024L, 8L, 1024L, 8L, 0L) .addValues(TEST_IFACE, UID_RED, SET_DEFAULT, 0xF00D, 512L, 4L, 512L, 4L, 0L)); expectBandwidthControlCheck(); - mService.forceUpdateIfaces(NETWORKS_MOBILE); + mService.forceUpdateIfaces(NETWORKS_MOBILE, new VpnInfo[0], states, getActiveIface(states)); forcePollAndWaitForIdle(); @@ -598,12 +594,12 @@ public class NetworkStatsServiceTest { public void testSummaryForAllUid() throws Exception { // pretend that network comes online expectDefaultSettings(); - expectNetworkState(buildWifiState()); + NetworkState[] states = new NetworkState[] {buildWifiState()}; expectNetworkStatsSummary(buildEmptyStats()); expectNetworkStatsUidDetail(buildEmptyStats()); expectBandwidthControlCheck(); - mService.forceUpdateIfaces(NETWORKS_WIFI); + mService.forceUpdateIfaces(NETWORKS_WIFI, new VpnInfo[0], states, getActiveIface(states)); // create some traffic for two apps @@ -657,12 +653,12 @@ public class NetworkStatsServiceTest { public void testDetailedUidStats() throws Exception { // pretend that network comes online expectDefaultSettings(); - expectNetworkState(buildWifiState()); + NetworkState[] states = new NetworkState[] {buildWifiState()}; expectNetworkStatsSummary(buildEmptyStats()); expectNetworkStatsUidDetail(buildEmptyStats()); expectBandwidthControlCheck(); - mService.forceUpdateIfaces(NETWORKS_WIFI); + mService.forceUpdateIfaces(NETWORKS_WIFI, new VpnInfo[0], states, getActiveIface(states)); NetworkStats.Entry entry1 = new NetworkStats.Entry( TEST_IFACE, UID_RED, SET_DEFAULT, TAG_NONE, 50L, 5L, 50L, 5L, 0L); @@ -700,13 +696,13 @@ public class NetworkStatsServiceTest { stackedProp.setInterfaceName(stackedIface); final NetworkState wifiState = buildWifiState(); wifiState.linkProperties.addStackedLink(stackedProp); - expectNetworkState(wifiState); + NetworkState[] states = new NetworkState[] {wifiState}; expectNetworkStatsSummary(buildEmptyStats()); expectNetworkStatsUidDetail(buildEmptyStats()); expectBandwidthControlCheck(); - mService.forceUpdateIfaces(NETWORKS_WIFI); + mService.forceUpdateIfaces(NETWORKS_WIFI, new VpnInfo[0], states, getActiveIface(states)); NetworkStats.Entry uidStats = new NetworkStats.Entry( TEST_IFACE, UID_BLUE, SET_DEFAULT, 0xF00D, 1024L, 8L, 512L, 4L, 0L); @@ -745,12 +741,12 @@ public class NetworkStatsServiceTest { public void testForegroundBackground() throws Exception { // pretend that network comes online expectDefaultSettings(); - expectNetworkState(buildWifiState()); + NetworkState[] states = new NetworkState[] {buildWifiState()}; expectNetworkStatsSummary(buildEmptyStats()); expectNetworkStatsUidDetail(buildEmptyStats()); expectBandwidthControlCheck(); - mService.forceUpdateIfaces(NETWORKS_WIFI); + mService.forceUpdateIfaces(NETWORKS_WIFI, new VpnInfo[0], states, getActiveIface(states)); // create some initial traffic @@ -803,12 +799,12 @@ public class NetworkStatsServiceTest { public void testMetered() throws Exception { // pretend that network comes online expectDefaultSettings(); - expectNetworkState(buildWifiState(true /* isMetered */)); + NetworkState[] states = new NetworkState[] {buildWifiState(true /* isMetered */)}; expectNetworkStatsSummary(buildEmptyStats()); expectNetworkStatsUidDetail(buildEmptyStats()); expectBandwidthControlCheck(); - mService.forceUpdateIfaces(NETWORKS_WIFI); + mService.forceUpdateIfaces(NETWORKS_WIFI, new VpnInfo[0], states, getActiveIface(states)); // create some initial traffic @@ -843,12 +839,13 @@ public class NetworkStatsServiceTest { public void testRoaming() throws Exception { // pretend that network comes online expectDefaultSettings(); - expectNetworkState(buildMobile3gState(IMSI_1, true /* isRoaming */)); + NetworkState[] states = + new NetworkState[] {buildMobile3gState(IMSI_1, true /* isRoaming */)}; expectNetworkStatsSummary(buildEmptyStats()); expectNetworkStatsUidDetail(buildEmptyStats()); expectBandwidthControlCheck(); - mService.forceUpdateIfaces(NETWORKS_MOBILE); + mService.forceUpdateIfaces(NETWORKS_MOBILE, new VpnInfo[0], states, getActiveIface(states)); // Create some traffic @@ -882,12 +879,12 @@ public class NetworkStatsServiceTest { public void testTethering() throws Exception { // pretend first mobile network comes online expectDefaultSettings(); - expectNetworkState(buildMobile3gState(IMSI_1)); + NetworkState[] states = new NetworkState[] {buildMobile3gState(IMSI_1)}; expectNetworkStatsSummary(buildEmptyStats()); expectNetworkStatsUidDetail(buildEmptyStats()); expectBandwidthControlCheck(); - mService.forceUpdateIfaces(NETWORKS_MOBILE); + mService.forceUpdateIfaces(NETWORKS_MOBILE, new VpnInfo[0], states, getActiveIface(states)); // create some tethering traffic @@ -925,12 +922,12 @@ public class NetworkStatsServiceTest { // pretend that wifi network comes online; service should ask about full // network state, and poll any existing interfaces before updating. expectDefaultSettings(); - expectNetworkState(buildWifiState()); + NetworkState[] states = new NetworkState[] {buildWifiState()}; expectNetworkStatsSummary(buildEmptyStats()); expectNetworkStatsUidDetail(buildEmptyStats()); expectBandwidthControlCheck(); - mService.forceUpdateIfaces(NETWORKS_WIFI); + mService.forceUpdateIfaces(NETWORKS_WIFI, new VpnInfo[0], states, getActiveIface(states)); // verify service has empty history for wifi assertNetworkTotal(sTemplateWifi, 0L, 0L, 0L, 0L, 0); @@ -1077,11 +1074,11 @@ public class NetworkStatsServiceTest { expectBandwidthControlCheck(); } - private void expectNetworkState(NetworkState... state) throws Exception { - when(mConnManager.getAllNetworkState()).thenReturn(state); - - final LinkProperties linkProp = state.length > 0 ? state[0].linkProperties : null; - when(mConnManager.getActiveLinkProperties()).thenReturn(linkProp); + private String getActiveIface(NetworkState... states) throws Exception { + if (states == null || states.length == 0 || states[0].linkProperties == null) { + return null; + } + return states[0].linkProperties.getInterfaceName(); } private void expectNetworkStatsSummary(NetworkStats summary) throws Exception { @@ -1090,8 +1087,6 @@ public class NetworkStatsServiceTest { private void expectNetworkStatsSummary(NetworkStats summary, NetworkStats tetherStats) throws Exception { - when(mConnManager.getAllVpnInfo()).thenReturn(new VpnInfo[0]); - expectNetworkStatsTethering(STATS_PER_IFACE, tetherStats); expectNetworkStatsSummaryDev(summary.clone()); expectNetworkStatsSummaryXt(summary.clone()); diff --git a/tests/testables/Android.bp b/tests/testables/Android.bp index f07f09da3f03..0bad7a46abb4 100644 --- a/tests/testables/Android.bp +++ b/tests/testables/Android.bp @@ -25,7 +25,7 @@ java_library { libs: [ "android.test.runner", "android.test.mock", - "android-support-test", + "androidx.test.rules", "mockito-target-inline-minus-junit4", ], diff --git a/tests/testables/src/android/testing/AndroidTestingRunner.java b/tests/testables/src/android/testing/AndroidTestingRunner.java index cf5d4cf2f828..037522042d23 100644 --- a/tests/testables/src/android/testing/AndroidTestingRunner.java +++ b/tests/testables/src/android/testing/AndroidTestingRunner.java @@ -14,13 +14,13 @@ package android.testing; -import android.support.test.internal.runner.junit4.statement.RunAfters; -import android.support.test.internal.runner.junit4.statement.RunBefores; -import android.support.test.internal.runner.junit4.statement.UiThreadStatement; - import android.testing.TestableLooper.LooperFrameworkMethod; import android.testing.TestableLooper.RunWithLooper; +import androidx.test.internal.runner.junit4.statement.RunAfters; +import androidx.test.internal.runner.junit4.statement.RunBefores; +import androidx.test.internal.runner.junit4.statement.UiThreadStatement; + import org.junit.After; import org.junit.Before; import org.junit.Test; diff --git a/tests/testables/src/android/testing/BaseFragmentTest.java b/tests/testables/src/android/testing/BaseFragmentTest.java index 5fa065a9135a..c76b93cbb577 100644 --- a/tests/testables/src/android/testing/BaseFragmentTest.java +++ b/tests/testables/src/android/testing/BaseFragmentTest.java @@ -24,13 +24,14 @@ import android.app.FragmentManagerNonConfig; import android.graphics.PixelFormat; import android.os.Handler; import android.os.Parcelable; -import android.support.test.InstrumentationRegistry; import android.view.LayoutInflater; import android.view.View; import android.view.WindowManager; import android.view.WindowManager.LayoutParams; import android.widget.FrameLayout; +import androidx.test.InstrumentationRegistry; + import org.junit.After; import org.junit.Before; import org.junit.Rule; diff --git a/tests/testables/src/android/testing/TestableInstrumentation.java b/tests/testables/src/android/testing/TestableInstrumentation.java index 3207b486b329..f5862064aa6b 100644 --- a/tests/testables/src/android/testing/TestableInstrumentation.java +++ b/tests/testables/src/android/testing/TestableInstrumentation.java @@ -19,9 +19,10 @@ import android.os.Handler; import android.os.Looper; import android.os.Message; import android.os.TestLooperManager; -import android.support.test.runner.AndroidJUnitRunner; import android.util.Log; +import androidx.test.runner.AndroidJUnitRunner; + import java.util.ArrayList; /** diff --git a/tests/testables/src/android/testing/TestableLooper.java b/tests/testables/src/android/testing/TestableLooper.java index f8d223ab91b6..cec8b4b49f25 100644 --- a/tests/testables/src/android/testing/TestableLooper.java +++ b/tests/testables/src/android/testing/TestableLooper.java @@ -20,9 +20,10 @@ import android.os.Looper; import android.os.Message; import android.os.MessageQueue; import android.os.TestLooperManager; -import android.support.test.InstrumentationRegistry; import android.util.ArrayMap; +import androidx.test.InstrumentationRegistry; + import org.junit.runners.model.FrameworkMethod; import java.lang.annotation.ElementType; diff --git a/tests/testables/src/android/testing/ViewUtils.java b/tests/testables/src/android/testing/ViewUtils.java index 1c6016e16f39..80c2e8ddd907 100644 --- a/tests/testables/src/android/testing/ViewUtils.java +++ b/tests/testables/src/android/testing/ViewUtils.java @@ -16,7 +16,6 @@ package android.testing; import android.content.pm.ApplicationInfo; import android.graphics.PixelFormat; -import android.support.test.InstrumentationRegistry; import android.view.View; import android.view.WindowManager; import android.view.WindowManager.LayoutParams; diff --git a/tests/testables/tests/Android.mk b/tests/testables/tests/Android.mk index 79469e3aa032..16fbb18b0eca 100644 --- a/tests/testables/tests/Android.mk +++ b/tests/testables/tests/Android.mk @@ -27,7 +27,7 @@ LOCAL_SRC_FILES := $(call all-java-files-under, src) \ LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res LOCAL_STATIC_JAVA_LIBRARIES := \ - android-support-test \ + androidx.test.rules hamcrest-library \ mockito-target-inline-minus-junit4 \ testables diff --git a/tests/testables/tests/AndroidManifest.xml b/tests/testables/tests/AndroidManifest.xml index 61f0be613afe..2bfb04fdb765 100644 --- a/tests/testables/tests/AndroidManifest.xml +++ b/tests/testables/tests/AndroidManifest.xml @@ -25,7 +25,7 @@ <uses-library android:name="android.test.runner" /> </application> - <instrumentation android:name="android.support.test.runner.AndroidJUnitRunner" + <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner" android:targetPackage="com.android.testables" android:label="Tests for Testables"> </instrumentation> diff --git a/tests/testables/tests/src/android/testing/DexmakerShareClassLoaderRuleTest.java b/tests/testables/tests/src/android/testing/DexmakerShareClassLoaderRuleTest.java index 2528d090f0ca..13addb195b30 100644 --- a/tests/testables/tests/src/android/testing/DexmakerShareClassLoaderRuleTest.java +++ b/tests/testables/tests/src/android/testing/DexmakerShareClassLoaderRuleTest.java @@ -22,8 +22,8 @@ import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertThat; import static org.junit.Assert.fail; -import android.support.test.filters.SmallTest; -import android.support.test.runner.AndroidJUnit4; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; import org.junit.Before; import org.junit.Test; diff --git a/tests/testables/tests/src/android/testing/TestableContentResolverTest.java b/tests/testables/tests/src/android/testing/TestableContentResolverTest.java index 71afda0748c4..f531369cd423 100644 --- a/tests/testables/tests/src/android/testing/TestableContentResolverTest.java +++ b/tests/testables/tests/src/android/testing/TestableContentResolverTest.java @@ -2,8 +2,9 @@ package android.testing; import android.content.ContentProvider; import android.content.IContentProvider; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; + +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; import org.junit.Assert; import org.junit.Before; diff --git a/tests/testables/tests/src/android/testing/TestablePermissionsTest.java b/tests/testables/tests/src/android/testing/TestablePermissionsTest.java index c56146e19a40..4626de7576e2 100644 --- a/tests/testables/tests/src/android/testing/TestablePermissionsTest.java +++ b/tests/testables/tests/src/android/testing/TestablePermissionsTest.java @@ -20,11 +20,10 @@ import static android.content.pm.PackageManager.PERMISSION_GRANTED; import static org.junit.Assert.assertEquals; import android.Manifest.permission; -import android.content.pm.PackageManager; import android.net.Uri; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.testing.TestableLooper.RunWithLooper; + +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; import org.junit.Rule; import org.junit.Test; diff --git a/tests/testables/tests/src/android/testing/TestableResourcesTest.java b/tests/testables/tests/src/android/testing/TestableResourcesTest.java index dc7cf9554ba5..dd4325c59aa2 100644 --- a/tests/testables/tests/src/android/testing/TestableResourcesTest.java +++ b/tests/testables/tests/src/android/testing/TestableResourcesTest.java @@ -21,9 +21,10 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.fail; import android.content.res.Resources; -import android.support.test.InstrumentationRegistry; import android.test.suitebuilder.annotation.SmallTest; +import androidx.test.InstrumentationRegistry; + import com.android.testables.R; import org.junit.Rule; diff --git a/tests/testables/tests/src/android/testing/TestableSettingsProviderTest.java b/tests/testables/tests/src/android/testing/TestableSettingsProviderTest.java index ac61debd8dc9..0333d514343d 100644 --- a/tests/testables/tests/src/android/testing/TestableSettingsProviderTest.java +++ b/tests/testables/tests/src/android/testing/TestableSettingsProviderTest.java @@ -14,20 +14,22 @@ package android.testing; +import static org.junit.Assert.*; + import android.content.ContentResolver; import android.provider.Settings; import android.provider.Settings.Global; import android.provider.Settings.Secure; -import android.support.test.InstrumentationRegistry; -import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; + +import androidx.test.InstrumentationRegistry; +import androidx.test.runner.AndroidJUnit4; + import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; -import static org.junit.Assert.*; - @SmallTest @RunWith(AndroidJUnit4.class) public class TestableSettingsProviderTest { diff --git a/tools/apilint/apilint.py b/tools/apilint/apilint.py index ef405e4b1343..f967c2fa6bcb 100644 --- a/tools/apilint/apilint.py +++ b/tools/apilint/apilint.py @@ -79,6 +79,7 @@ class Field(): self.value = raw[3].strip(';"') else: self.value = None + self.annotations = [] self.ident = "-".join((self.typ, self.name, self.value or "")) @@ -88,6 +89,18 @@ class Field(): def __repr__(self): return self.raw + +class Argument(object): + + __slots__ = ["type", "annotations", "name", "default"] + + def __init__(self, type): + self.type = type + self.annotations = [] + self.name = None + self.default = None + + class Method(): def __init__(self, clazz, line, raw, blame, sig_format = 1): self.clazz = clazz @@ -118,21 +131,24 @@ class Method(): self.name = raw[1] # parse args - self.args = [] + self.detailed_args = [] for arg in re.split(",\s*", raw_args): arg = re.split("\s", arg) # ignore annotations for now arg = [ a for a in arg if not a.startswith("@") ] if len(arg[0]) > 0: - self.args.append(arg[0]) + self.detailed_args.append(Argument(arg[0])) # parse throws self.throws = [] for throw in re.split(",\s*", raw_throws): self.throws.append(throw) + + self.annotations = [] else: raise ValueError("Unknown signature format: " + sig_format) + self.args = map(lambda a: a.type, self.detailed_args) self.ident = "-".join((self.typ, self.name, "-".join(self.args))) def sig_matches(self, typ, name, args): @@ -154,6 +170,7 @@ class Class(): self.ctors = [] self.fields = [] self.methods = [] + self.annotations = [] if sig_format == 2: V2LineParser(raw).parse_into_class(self) @@ -180,8 +197,10 @@ class Class(): if "implements" in raw: self.implements = raw[raw.index("implements")+1] + self.implements_all = [self.implements] else: self.implements = None + self.implements_all = [] else: raise ValueError("Unknown signature format: " + sig_format) @@ -208,7 +227,7 @@ class Class(): class Package(): - NAME = re.compile("package(?: .*)? ([A-Za-z.]+)") + NAME = re.compile("package(?: .*)? ([A-Za-z0-9.]+)") def __init__(self, line, raw, blame): self.line = line @@ -312,10 +331,10 @@ class V2LineParser(object): method.split = [] kind = self.parse_one_of("ctor", "method") method.split.append(kind) - annotations = self.parse_annotations() + method.annotations = self.parse_annotations() method.split.extend(self.parse_modifiers()) self.parse_matching_paren("<", ">") - if "@Deprecated" in annotations: + if "@Deprecated" in method.annotations: method.split.append("deprecated") if kind == "ctor": method.typ = "ctor" @@ -325,7 +344,7 @@ class V2LineParser(object): method.name = self.parse_name() method.split.append(method.name) self.parse_token("(") - method.args = self.parse_args() + method.detailed_args = self.parse_args() self.parse_token(")") method.throws = self.parse_throws() if "@interface" in method.clazz.split: @@ -335,8 +354,8 @@ class V2LineParser(object): def parse_into_class(self, clazz): clazz.split = [] - annotations = self.parse_annotations() - if "@Deprecated" in annotations: + clazz.annotations = self.parse_annotations() + if "@Deprecated" in clazz.annotations: clazz.split.append("deprecated") clazz.split.extend(self.parse_modifiers()) kind = self.parse_one_of("class", "interface", "@interface", "enum") @@ -348,20 +367,20 @@ class V2LineParser(object): self.parse_matching_paren("<", ">") extends = self.parse_extends() clazz.extends = extends[0] if extends else None - implements = self.parse_implements() - clazz.implements = implements[0] if implements else None + clazz.implements_all = self.parse_implements() # The checks assume that interfaces are always found in implements, which isn't true for # subinterfaces. - if not implements and "interface" in clazz.split: - clazz.implements = clazz.extends + if not clazz.implements_all and "interface" in clazz.split: + clazz.implements_all = [clazz.extends] + clazz.implements = clazz.implements_all[0] if clazz.implements_all else None self.parse_token("{") self.parse_eof() def parse_into_field(self, field): kind = self.parse_one_of(*V2LineParser.FIELD_KINDS) field.split = [kind] - annotations = self.parse_annotations() - if "@Deprecated" in annotations: + field.annotations = self.parse_annotations() + if "@Deprecated" in field.annotations: field.split.append("deprecated") field.split.extend(self.parse_modifiers()) field.typ = self.parse_type() @@ -488,15 +507,16 @@ class V2LineParser(object): def parse_arg(self): self.parse_if("vararg") # kotlin vararg - self.parse_annotations() - type = self.parse_arg_type() + annotations = self.parse_annotations() + arg = Argument(self.parse_arg_type()) + arg.annotations = annotations l = self.lookahead() if l != "," and l != ")": if self.lookahead() != '=': - self.parse_token() # kotlin argument name + arg.name = self.parse_token() # kotlin argument name if self.parse_if('='): # kotlin default value - self.parse_expression() - return type + arg.default = self.parse_expression() + return arg def parse_expression(self): while not self.lookahead() in [')', ',', ';']: @@ -593,7 +613,7 @@ def _parse_stream_to_generator(f): blame = None sig_format = 1 - re_blame = re.compile("^([a-z0-9]{7,}) \(<([^>]+)>.+?\) (.+?)$") + re_blame = re.compile(r"^(\^?[a-z0-9]{7,}) \(<([^>]+)>.+?\) (.+?)$") field_prefixes = map(lambda kind: " %s" % (kind,), V2LineParser.FIELD_KINDS) def startsWithFieldPrefix(raw): @@ -608,11 +628,13 @@ def _parse_stream_to_generator(f): match = re_blame.match(raw) if match is not None: blame = match.groups()[0:2] + if blame[0].startswith("^"): # Outside of blame range + blame = None raw = match.groups()[2] else: blame = None - if line == 1 and raw.startswith("// Signature format: "): + if line == 1 and V2Tokenizer.SIGNATURE_PREFIX in raw: sig_format_string = raw[len(V2Tokenizer.SIGNATURE_PREFIX):] if sig_format_string in ["2.0", "3.0"]: sig_format = 2 @@ -742,6 +764,14 @@ def notice(clazz): noticed[clazz.fullname] = hash(clazz) +verifiers = {} + +def verifier(f): + verifiers[f.__name__] = f + return f + + +@verifier def verify_constants(clazz): """All static final constants must be FOO_NAME style.""" if re.match("android\.R\.[a-z]+", clazz.fullname): return @@ -759,13 +789,13 @@ def verify_constants(clazz): if f.typ in req and f.value is None: error(clazz, f, None, "All constants must be defined at compile time") - +@verifier def verify_enums(clazz): """Enums are bad, mmkay?""" if clazz.extends == "java.lang.Enum" or "enum" in clazz.split: error(clazz, None, "F5", "Enums are not allowed") - +@verifier def verify_class_names(clazz): """Try catching malformed class names like myMtp or MTPUser.""" if clazz.fullname.startswith("android.opengl"): return @@ -780,6 +810,7 @@ def verify_class_names(clazz): error(clazz, None, None, "Don't expose your implementation details") +@verifier def verify_method_names(clazz): """Try catching malformed method names, like Foo() or getMTU().""" if clazz.fullname.startswith("android.opengl"): return @@ -793,9 +824,9 @@ def verify_method_names(clazz): error(clazz, m, "S1", "Method name must start with lowercase char") +@verifier def verify_callbacks(clazz): """Verify Callback classes. - All callback classes must be abstract. All methods must follow onFoo() naming style.""" if clazz.fullname == "android.speech.tts.SynthesisCallback": return @@ -805,14 +836,12 @@ def verify_callbacks(clazz): warn(clazz, None, "L1", "Class should be named FooCallback") if clazz.name.endswith("Callback"): - if "interface" in clazz.split: - error(clazz, None, "CL3", "Callbacks must be abstract class to enable extension in future API levels") - for m in clazz.methods: if not re.match("on[A-Z][a-z]*", m.name): error(clazz, m, "L1", "Callback method names must be onFoo() style") +@verifier def verify_listeners(clazz): """Verify Listener classes. All Listener classes must be interface. @@ -834,6 +863,7 @@ def verify_listeners(clazz): error(clazz, m, "L1", "Single listener method name must match class name") +@verifier def verify_actions(clazz): """Verify intent actions. All action names must be named ACTION_FOO. @@ -865,6 +895,7 @@ def verify_actions(clazz): error(clazz, f, "C4", "Inconsistent action value; expected '%s'" % (expected)) +@verifier def verify_extras(clazz): """Verify intent extras. All extra names must be named EXTRA_FOO. @@ -895,6 +926,7 @@ def verify_extras(clazz): error(clazz, f, "C4", "Inconsistent extra value; expected '%s'" % (expected)) +@verifier def verify_equals(clazz): """Verify that equals() and hashCode() must be overridden together.""" eq = False @@ -907,6 +939,7 @@ def verify_equals(clazz): error(clazz, None, "M8", "Must override both equals and hashCode; missing one") +@verifier def verify_parcelable(clazz): """Verify that Parcelable objects aren't hiding required bits.""" if clazz.implements == "android.os.Parcelable": @@ -925,6 +958,7 @@ def verify_parcelable(clazz): error(clazz, c, "FW3", "Parcelable inflation is exposed through CREATOR, not raw constructors") +@verifier def verify_protected(clazz): """Verify that no protected methods or fields are allowed.""" for m in clazz.methods: @@ -936,6 +970,7 @@ def verify_protected(clazz): error(clazz, f, "M7", "Protected fields not allowed; must be public") +@verifier def verify_fields(clazz): """Verify that all exposed fields are final. Exposed fields must follow myName style. @@ -981,6 +1016,7 @@ def verify_fields(clazz): error(clazz, f, "C2", "Constants must be marked static final") +@verifier def verify_register(clazz): """Verify parity of registration methods. Callback objects use register/unregister methods. @@ -1014,6 +1050,7 @@ def verify_register(clazz): error(clazz, m, "L3", "Listener methods should be named add/remove") +@verifier def verify_sync(clazz): """Verify synchronized methods aren't exposed.""" for m in clazz.methods: @@ -1021,6 +1058,7 @@ def verify_sync(clazz): error(clazz, m, "M5", "Internal locks must not be exposed") +@verifier def verify_intent_builder(clazz): """Verify that Intent builders are createFooIntent() style.""" if clazz.name == "Intent": return @@ -1033,6 +1071,7 @@ def verify_intent_builder(clazz): warn(clazz, m, "FW1", "Methods creating an Intent should be named createFooIntent()") +@verifier def verify_helper_classes(clazz): """Verify that helper classes are named consistently with what they extend. All developer extendable methods should be named onFoo().""" @@ -1081,6 +1120,7 @@ def verify_helper_classes(clazz): warn(clazz, m, None, "If implemented by developer, should be named onFoo(); otherwise consider marking final") +@verifier def verify_builder(clazz): """Verify builder classes. Methods should return the builder to enable chaining.""" @@ -1113,12 +1153,14 @@ def verify_builder(clazz): error(clazz, None, None, "Builder should be final") +@verifier def verify_aidl(clazz): """Catch people exposing raw AIDL.""" if clazz.extends == "android.os.Binder" or clazz.implements == "android.os.IInterface": error(clazz, None, None, "Raw AIDL interfaces must not be exposed") +@verifier def verify_internal(clazz): """Catch people exposing internal classes.""" if clazz.pkg.name.startswith("com.android"): @@ -1153,6 +1195,7 @@ LAYERING_PACKAGE_RANKING = layering_build_ranking([ "android.util" ]) +@verifier def verify_layering(clazz): """Catch package layering violations. For example, something in android.os depending on android.app.""" @@ -1187,6 +1230,7 @@ def verify_layering(clazz): warn(clazz, m, "FW6", "Method argument type violates package layering") +@verifier def verify_boolean(clazz): """Verifies that boolean accessors are named correctly. For example, hasFoo() and setHasFoo().""" @@ -1227,9 +1271,11 @@ def verify_boolean(clazz): error_if_exists(sets, m.name, expected, "has" + target) +@verifier def verify_collections(clazz): """Verifies that collection types are interfaces.""" if clazz.fullname == "android.os.Bundle": return + if clazz.fullname == "android.os.Parcel": return bad = ["java.util.Vector", "java.util.LinkedList", "java.util.ArrayList", "java.util.Stack", "java.util.HashMap", "java.util.HashSet", "android.util.ArraySet", "android.util.ArrayMap"] @@ -1241,6 +1287,23 @@ def verify_collections(clazz): error(clazz, m, "CL2", "Argument is concrete collection; must be higher-level interface") +@verifier +def verify_uris(clazz): + bad = ["java.net.URL", "java.net.URI", "android.net.URL"] + + for f in clazz.fields: + if f.typ in bad: + error(clazz, f, None, "Field must be android.net.Uri instead of " + f.typ) + + for m in clazz.methods + clazz.ctors: + if m.typ in bad: + error(clazz, m, None, "Must return android.net.Uri instead of " + m.typ) + for arg in m.args: + if arg in bad: + error(clazz, m, None, "Argument must take android.net.Uri instead of " + arg) + + +@verifier def verify_flags(clazz): """Verifies that flags are non-overlapping.""" known = collections.defaultdict(int) @@ -1257,6 +1320,7 @@ def verify_flags(clazz): known[scope] |= val +@verifier def verify_exception(clazz): """Verifies that methods don't throw generic exceptions.""" for m in clazz.methods: @@ -1265,17 +1329,19 @@ def verify_exception(clazz): error(clazz, m, "S1", "Methods must not throw generic exceptions") if t in ["android.os.RemoteException"]: - if clazz.name == "android.content.ContentProviderClient": continue - if clazz.name == "android.os.Binder": continue - if clazz.name == "android.os.IBinder": continue + if clazz.fullname == "android.content.ContentProviderClient": continue + if clazz.fullname == "android.os.Binder": continue + if clazz.fullname == "android.os.IBinder": continue error(clazz, m, "FW9", "Methods calling into system server should rethrow RemoteException as RuntimeException") if len(m.args) == 0 and t in ["java.lang.IllegalArgumentException", "java.lang.NullPointerException"]: warn(clazz, m, "S1", "Methods taking no arguments should throw IllegalStateException") + GOOGLE_IGNORECASE = re.compile("google", re.IGNORECASE) +# Not marked as @verifier, because it is only conditionally applied. def verify_google(clazz): """Verifies that APIs never reference Google.""" @@ -1288,6 +1354,7 @@ def verify_google(clazz): error(clazz, t, None, "Must never reference Google") +@verifier def verify_bitset(clazz): """Verifies that we avoid using heavy BitSet.""" @@ -1303,6 +1370,7 @@ def verify_bitset(clazz): error(clazz, m, None, "Argument type must not be heavy BitSet") +@verifier def verify_manager(clazz): """Verifies that FooManager is only obtained from Context.""" @@ -1316,6 +1384,7 @@ def verify_manager(clazz): error(clazz, m, None, "Managers must always be obtained from Context") +@verifier def verify_boxed(clazz): """Verifies that methods avoid boxed primitives.""" @@ -1338,6 +1407,7 @@ def verify_boxed(clazz): error(clazz, m, "M11", "Must avoid boxed primitives") +@verifier def verify_static_utils(clazz): """Verifies that helper classes can't be constructed.""" if clazz.fullname.startswith("android.opengl"): return @@ -1357,6 +1427,7 @@ def verify_static_utils(clazz): error(clazz, None, None, "Fully-static utility classes must not have constructor") +# @verifier # Disabled for now def verify_overload_args(clazz): """Verifies that method overloads add new arguments at the end.""" if clazz.fullname.startswith("android.opengl"): return @@ -1397,6 +1468,7 @@ def verify_overload_args(clazz): error(clazz, m, "M2", "Expected consistent argument ordering between overloads: %s..." % (", ".join(locked_sig))) +@verifier def verify_callback_handlers(clazz): """Verifies that methods adding listener/callback have overload for specifying delivery thread.""" @@ -1448,6 +1520,7 @@ def verify_callback_handlers(clazz): warn(clazz, f, "L1", "Registration methods should have overload that accepts delivery Executor") +@verifier def verify_context_first(clazz): """Verifies that methods accepting a Context keep it the first argument.""" examine = clazz.ctors + clazz.methods @@ -1460,6 +1533,7 @@ def verify_context_first(clazz): error(clazz, m, "M3", "ContentResolver is distinct, so it must be the first argument") +@verifier def verify_listener_last(clazz): """Verifies that methods accepting a Listener or Callback keep them as last arguments.""" examine = clazz.ctors + clazz.methods @@ -1473,6 +1547,7 @@ def verify_listener_last(clazz): warn(clazz, m, "M3", "Listeners should always be at end of argument list") +@verifier def verify_resource_names(clazz): """Verifies that resource names have consistent case.""" if not re.match("android\.R\.[a-z]+", clazz.fullname): return @@ -1504,6 +1579,7 @@ def verify_resource_names(clazz): error(clazz, f, "C7", "Expected resource name in this class to be FooBar_Baz style") +@verifier def verify_files(clazz): """Verifies that methods accepting File also accept streams.""" @@ -1525,6 +1601,7 @@ def verify_files(clazz): warn(clazz, m, "M10", "Methods accepting File should also accept FileDescriptor or streams") +@verifier def verify_manager_list(clazz): """Verifies that managers return List<? extends Parcelable> instead of arrays.""" @@ -1535,6 +1612,7 @@ def verify_manager_list(clazz): warn(clazz, m, None, "Methods should return List<? extends Parcelable> instead of Parcelable[] to support ParceledListSlice under the hood") +@verifier def verify_abstract_inner(clazz): """Verifies that abstract inner classes are static.""" @@ -1543,6 +1621,7 @@ def verify_abstract_inner(clazz): warn(clazz, None, None, "Abstract inner classes should be static to improve testability") +@verifier def verify_runtime_exceptions(clazz): """Verifies that runtime exceptions aren't listed in throws.""" @@ -1587,6 +1666,7 @@ def verify_runtime_exceptions(clazz): error(clazz, m, None, "Methods must not mention RuntimeException subclasses in throws clauses") +@verifier def verify_error(clazz): """Verifies that we always use Exception instead of Error.""" if not clazz.extends: return @@ -1596,6 +1676,7 @@ def verify_error(clazz): error(clazz, None, None, "Exceptions must be named FooException") +@verifier def verify_units(clazz): """Verifies that we use consistent naming for units.""" @@ -1632,10 +1713,11 @@ def verify_units(clazz): error(clazz, m, None, "Percentage must use ints") +@verifier def verify_closable(clazz): """Verifies that classes are AutoClosable.""" - if clazz.implements == "java.lang.AutoCloseable": return - if clazz.implements == "java.io.Closeable": return + if "java.lang.AutoCloseable" in clazz.implements_all: return + if "java.io.Closeable" in clazz.implements_all: return for m in clazz.methods: if len(m.args) > 0: continue @@ -1644,6 +1726,7 @@ def verify_closable(clazz): return +@verifier def verify_member_name_not_kotlin_keyword(clazz): """Prevent method names which are keywords in Kotlin.""" @@ -1669,6 +1752,7 @@ def verify_member_name_not_kotlin_keyword(clazz): error(clazz, f, None, "Field name must not be a Kotlin keyword") +@verifier def verify_method_name_not_kotlin_operator(clazz): """Warn about method names which become operators in Kotlin.""" @@ -1718,6 +1802,7 @@ def verify_method_name_not_kotlin_operator(clazz): unique_binary_op(m, m.name[:-6]) # Remove 'Assign' suffix +@verifier def verify_collections_over_arrays(clazz): """Warn that [] should be Collections.""" @@ -1733,6 +1818,7 @@ def verify_collections_over_arrays(clazz): warn(clazz, m, None, "Method argument should be Collection<> (or subclass) instead of raw array") +@verifier def verify_user_handle(clazz): """Methods taking UserHandle should be ForUser or AsUser.""" if clazz.name.endswith("Listener") or clazz.name.endswith("Callback") or clazz.name.endswith("Callbacks"): return @@ -1757,6 +1843,7 @@ def verify_user_handle(clazz): "or 'queryFooForUser'") +@verifier def verify_params(clazz): """Parameter classes should be 'Params'.""" if clazz.name.endswith("Params"): return @@ -1772,6 +1859,7 @@ def verify_params(clazz): error(clazz, None, None, "Classes holding a set of parameters should be called 'FooParams'") +@verifier def verify_services(clazz): """Service name should be FOO_BAR_SERVICE = 'foo_bar'.""" if clazz.fullname != "android.content.Context": return @@ -1785,6 +1873,7 @@ def verify_services(clazz): error(clazz, f, "C4", "Inconsistent service value; expected '%s'" % (expected)) +@verifier def verify_tense(clazz): """Verify tenses of method names.""" if clazz.fullname.startswith("android.opengl"): return @@ -1794,6 +1883,7 @@ def verify_tense(clazz): warn(clazz, m, None, "Unexpected tense; probably meant 'enabled'") +@verifier def verify_icu(clazz): """Verifies that richer ICU replacements are used.""" better = { @@ -1825,6 +1915,7 @@ def verify_icu(clazz): warn(clazz, m, None, "Type %s should be replaced with richer ICU type %s" % (arg, better[arg])) +@verifier def verify_clone(clazz): """Verify that clone() isn't implemented; see EJ page 61.""" for m in clazz.methods: @@ -1832,8 +1923,12 @@ def verify_clone(clazz): error(clazz, m, None, "Provide an explicit copy constructor instead of implementing clone()") +@verifier def verify_pfd(clazz): """Verify that android APIs use PFD over FD.""" + if clazz.fullname == "android.os.FileUtils" or clazz.fullname == "android.system.Os": + return + examine = clazz.ctors + clazz.methods for m in examine: if m.typ == "java.io.FileDescriptor": @@ -1850,6 +1945,7 @@ def verify_pfd(clazz): error(clazz, f, "FW11", "Must use ParcelFileDescriptor") +@verifier def verify_numbers(clazz): """Discourage small numbers types like short and byte.""" @@ -1872,6 +1968,49 @@ def verify_numbers(clazz): warn(clazz, m, "FW12", "Should avoid odd sized primitives; use int instead") +PRIMITIVES = {"void", "int", "float", "boolean", "short", "char", "byte", "long", "double"} + +@verifier +def verify_nullability(clazz): + """Catches missing nullability annotations""" + + for f in clazz.fields: + if f.value is not None and 'static' in f.split and 'final' in f.split: + continue # Nullability of constants can be inferred. + if f.typ not in PRIMITIVES and not has_nullability(f.annotations): + error(clazz, f, "M12", "Field must be marked either @NonNull or @Nullable") + + for c in clazz.ctors: + verify_nullability_args(clazz, c) + + for m in clazz.methods: + if m.name == "writeToParcel" or m.name == "onReceive": + continue # Parcelable.writeToParcel() and BroadcastReceiver.onReceive() are not yet annotated + + if m.typ not in PRIMITIVES and not has_nullability(m.annotations): + error(clazz, m, "M12", "Return value must be marked either @NonNull or @Nullable") + verify_nullability_args(clazz, m) + +def verify_nullability_args(clazz, m): + for i, arg in enumerate(m.detailed_args): + if arg.type not in PRIMITIVES and not has_nullability(arg.annotations): + error(clazz, m, "M12", "Argument %d must be marked either @NonNull or @Nullable" % (i+1,)) + +def has_nullability(annotations): + return "@NonNull" in annotations or "@Nullable" in annotations + + +@verifier +def verify_intdef(clazz): + """intdefs must be @hide, because the constant names cannot be stored in + the stubs (only the values are, which is not useful)""" + if "@interface" not in clazz.split: + return + if "@IntDef" in clazz.annotations or "@LongDef" in clazz.annotations: + error(clazz, None, None, "@IntDef and @LongDef annotations must be @hide") + + +@verifier def verify_singleton(clazz): """Catch singleton objects with constructors.""" @@ -1906,59 +2045,10 @@ def examine_clazz(clazz): if not is_interesting(clazz): return - verify_constants(clazz) - verify_enums(clazz) - verify_class_names(clazz) - verify_method_names(clazz) - verify_callbacks(clazz) - verify_listeners(clazz) - verify_actions(clazz) - verify_extras(clazz) - verify_equals(clazz) - verify_parcelable(clazz) - verify_protected(clazz) - verify_fields(clazz) - verify_register(clazz) - verify_sync(clazz) - verify_intent_builder(clazz) - verify_helper_classes(clazz) - verify_builder(clazz) - verify_aidl(clazz) - verify_internal(clazz) - verify_layering(clazz) - verify_boolean(clazz) - verify_collections(clazz) - verify_flags(clazz) - verify_exception(clazz) + for v in verifiers.itervalues(): + v(clazz) + if not ALLOW_GOOGLE: verify_google(clazz) - verify_bitset(clazz) - verify_manager(clazz) - verify_boxed(clazz) - verify_static_utils(clazz) - # verify_overload_args(clazz) - verify_callback_handlers(clazz) - verify_context_first(clazz) - verify_listener_last(clazz) - verify_resource_names(clazz) - verify_files(clazz) - verify_manager_list(clazz) - verify_abstract_inner(clazz) - verify_runtime_exceptions(clazz) - verify_error(clazz) - verify_units(clazz) - verify_closable(clazz) - verify_member_name_not_kotlin_keyword(clazz) - verify_method_name_not_kotlin_operator(clazz) - verify_collections_over_arrays(clazz) - verify_user_handle(clazz) - verify_params(clazz) - verify_services(clazz) - verify_tense(clazz) - verify_icu(clazz) - verify_clone(clazz) - verify_pfd(clazz) - verify_numbers(clazz) - verify_singleton(clazz) def examine_stream(stream, base_stream=None, in_classes_with_base=[], out_classes_with_base=None): diff --git a/tools/apilint/apilint_test.py b/tools/apilint/apilint_test.py index c10ef15d02ad..5cb43db0b00d 100644 --- a/tools/apilint/apilint_test.py +++ b/tools/apilint/apilint_test.py @@ -88,20 +88,22 @@ class UtilTests(unittest.TestCase): faulty_current_txt = """ +// Signature format: 2.0 package android.app { public final class Activity { } public final class WallpaperColors implements android.os.Parcelable { - ctor public WallpaperColors(android.os.Parcel); + ctor public WallpaperColors(@NonNull android.os.Parcel); method public int describeContents(); - method public void writeToParcel(android.os.Parcel, int); - field public static final android.os.Parcelable.Creator<android.app.WallpaperColors> CREATOR; + method public void writeToParcel(@NonNull android.os.Parcel, int); + field @NonNull public static final android.os.Parcelable.Creator<android.app.WallpaperColors> CREATOR; } } -""".split('\n') +""".strip().split('\n') ok_current_txt = """ +// Signature format: 2.0 package android.app { public final class Activity { } @@ -109,19 +111,20 @@ package android.app { public final class WallpaperColors implements android.os.Parcelable { ctor public WallpaperColors(); method public int describeContents(); - method public void writeToParcel(android.os.Parcel, int); - field public static final android.os.Parcelable.Creator<android.app.WallpaperColors> CREATOR; + method public void writeToParcel(@NonNull android.os.Parcel, int); + field @NonNull public static final android.os.Parcelable.Creator<android.app.WallpaperColors> CREATOR; } } -""".split('\n') +""".strip().split('\n') system_current_txt = """ +// Signature format: 2.0 package android.app { public final class WallpaperColors implements android.os.Parcelable { method public int getSomething(); } } -""".split('\n') +""".strip().split('\n') @@ -239,6 +242,10 @@ class V2ParserTests(unittest.TestCase): cls = self._cls("class Class {") return apilint.Field(cls, 1, raw, '', sig_format=2) + def test_parse_package(self): + pkg = apilint.Package(999, "package wifi.p2p {", None) + self.assertEquals("wifi.p2p", pkg.name) + def test_class(self): cls = self._cls("@Deprecated @IntRange(from=1, to=2) public static abstract class Some.Name extends Super<Class> implements Interface<Class> {") self.assertTrue('deprecated' in cls.split) diff --git a/tools/hiddenapi/exclude.sh b/tools/hiddenapi/exclude.sh index 4ffcf6846947..18c40546fd02 100755 --- a/tools/hiddenapi/exclude.sh +++ b/tools/hiddenapi/exclude.sh @@ -9,6 +9,7 @@ LOCAL_DIR="$( dirname ${BASH_SOURCE} )" LIBCORE_PACKAGES="\ android.icu \ android.system \ + android.test \ com.android.bouncycastle \ com.android.conscrypt \ com.android.i18n.phonenumbers \ @@ -17,6 +18,7 @@ LIBCORE_PACKAGES="\ dalvik \ java \ javax \ + junit \ libcore \ org.apache.harmony \ org.json \ |